The best solution is to roll it out by hand, not using a library and not using the Drag-and-Drop API.
- https://github.com/SortableJS/Sortable
- Uses Drag-and-Drop API, so doesn’t let you customize the cursor
- https://github.com/bevacqua/dragula
- Doesn’t work on mobile
- Drag-and-Drop API
- https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API
- https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations
- https://github.com/SortableJS/Sortable/wiki/Sorting-with-the-help-of-HTML5-Drag'n'Drop-API
- https://codepen.io/webgeeker/pen/KBzrxE
- https://codepen.io/crouchingtigerhiddenadam/pen/qKXgap
- https://jsfiddle.net/cLb3hxtf/1/
- Doesn’t let you customize the cursor
- https://github.com/desandro/draggabilly