Hi Everyone,
I am developing a Shopify app using the Remix app template. I want to create a drag-and-drop block for the admin side. Can anyone help me with how to create it or suggest a library to use?
I would also like to know how to render this block on the storefront.
Hi @BiDeal-Discount ,
I was exploring the Polaris component https://www.polariscomponents.com/components/sortable-list and I found that they are using the dnd kit. So, are both the same or different? If different then will it work with the Shopify Polaris?
As I can see, you have created many apps, so I hope you will have a better idea about this, and I think you have gone through this process.
Hi @Jay_RW
I actually worked with both of them to develop my apps, with recent project as BiDeal Bundle Volume Discounts I’m using @dnd-kit because they support @dnd-kit/sortable help me easier to do.
Your reference link is very good but let choose which one fitable with you as my comparation below:
react-dnd- Built on the concept of Drag Sources and Drop Targets.
-
Uses a Redux-like model under the hood.
-
More opinionated and comes with structured ways to do things.
-
Supports complex use-cases like dragging between different types, custom backends.
Pros:
-
Mature, stable, with lots of examples.
-
Good for complex enterprise use cases (e.g., Kanban boards).
-
Detailed hooks like useDrag, useDrop.
Cons:
-
HTML5 DnD backend limitations (e.g., no touch support unless using custom backends).
-
API can feel dated or verbose.
@dnd-kit- Fully modular and composable.
-
Provides building blocks: useDraggable, useDroppable, useSensor, useSortable.
-
Doesn’t rely on the HTML5 DnD API — more consistent behavior across devices.
Pros:
-
Modern design, excellent for lists and grids.
-
Sortable list support is powerful and extensible.
-
Better touch and mobile support.
-
Lightweight and fast.
Cons:
? Recommendation- Use @dnd-kit if:
-
You want a modern, performant drag-and-drop system.
-
You’re building sortable lists or need good mobile support.
-
You care about accessibility and consistent cross-device behavior.
-
Use react-dnd if:
-
You’re working on a complex app that relies on drag types or backends.
-
You need a more traditional or stable solution with a longer track record.
-
You prefer opinionated APIs that abstract more complexity.
1 Like