Content
View differences
Updated by Alexander Coles about 17 hours ago
This work package evaluates Atlassian’s **Pragmatic Drag and Drop** as a potential long-term DnD foundation.
Focus areas:
* backlog and board interactions
* extensibility beyond simple sorting
* compatibility with future UI patterns
### Work performed
* Prototype implementations for backlog drag-and-drop
* Exploration of React-based board integration
* Evaluation of API and extensibility model
### Key findings
* Strong **low-level architecture**, suitable as a platform
* Designed for **complex interaction patterns**
* Good support for:
* cross-container dragging
* constraints and rules
* future extensibility
Challenges:
* Requires **more boilerplate** than sortable-style libraries
* Accessibility requires **manual implementation effort**
* Some examples and tooling are **React-centric**
* Higher **initial implementation cost**
### Current assessment
✅ **Strong long-term candidate**
Best suited if we:
* invest in a shared abstraction layer
* want a single DnD platform across the application
### Decision status
➡️ **Primary candidate for further evaluation**
### Linked PRs
* [https://github.com/opf/openproject/pull/22999](https://github.com/opf/openproject/pull/22999)
* [https://github.com/opf/openproject/pull/22752](https://github.com/opf/openproject/pull/22752)
* [https://github.com/opf/openproject/pull/22698](https://github.com/opf/openproject/pull/22698)
* [https://github.com/opf/openproject/pull/22666](https://github.com/opf/openproject/pull/22666)
### Outcome (final)
✅ **Selected.** Pragmatic Drag and Drop won the weighted evaluation in #PT-139 (337 of 380; see there for methodology and per-criterion rationale).
Implementation is underway: the shared `sortable-lists` Stimulus suite (shape decided in #AGILE-292) with Backlogs as first consumer — feature #AGILE-291, PRs https://github.com/opf/openproject/pull/23218 and https://github.com/opf/openproject/pull/24157. The challenges anticipated above are tracked as follow-ups: touch/pointer support #AGILE-293, accessibility #AGILE-323 / #AGILE-324, boilerplate absorbed by the shared abstraction (#DREAM-677).
This evaluation is closed; further work continues under epic #DREAM-672.
Focus areas:
* backlog and board interactions
* extensibility beyond simple sorting
* compatibility with future UI patterns
### Work performed
* Prototype implementations for backlog drag-and-drop
* Exploration of React-based board integration
* Evaluation of API and extensibility model
### Key findings
* Strong **low-level architecture**, suitable as a platform
* Designed for **complex interaction patterns**
* Good support for:
* cross-container dragging
* constraints and rules
* future extensibility
Challenges:
* Requires **more boilerplate** than sortable-style libraries
* Accessibility requires **manual implementation effort**
* Some examples and tooling are **React-centric**
* Higher **initial implementation cost**
### Current assessment
✅ **Strong long-term candidate**
Best suited if we:
* invest in a shared abstraction layer
* want a single DnD platform across the application
### Decision status
➡️ **Primary candidate for further evaluation**
### Linked PRs
* [https://github.com/opf/openproject/pull/22999](https://github.com/opf/openproject/pull/22999)
* [https://github.com/opf/openproject/pull/22752](https://github.com/opf/openproject/pull/22752)
* [https://github.com/opf/openproject/pull/22698](https://github.com/opf/openproject/pull/22698)
* [https://github.com/opf/openproject/pull/22666](https://github.com/opf/openproject/pull/22666)
### Outcome (final)
✅ **Selected.** Pragmatic Drag and Drop won the weighted evaluation in #PT-139 (337 of 380; see there for methodology and per-criterion rationale).
Implementation is underway: the shared `sortable-lists` Stimulus suite (shape decided in #AGILE-292) with Backlogs as first consumer — feature #AGILE-291, PRs https://github.com/opf/openproject/pull/23218 and https://github.com/opf/openproject/pull/24157. The challenges anticipated above are tracked as follow-ups: touch/pointer support #AGILE-293, accessibility #AGILE-323 / #AGILE-324, boilerplate absorbed by the shared abstraction (#DREAM-677).
This evaluation is closed; further work continues under epic #DREAM-672.