Event delegation in action:
v2: 100 draggable elements = 300 event listeners
v3: 100 draggable elements = 3 event listeners (total)
Memory usage stays flat as you scale. No more hitting browser event listener limits.
Plugin system design:
Each plugin handles one behavior. Plugin errors are isolated - if one fails, others keep working.
Write a 10-line plugin for magnetic snapping, another for momentum scrolling. Compose exactly what you need.
Only pay for(in bytes) what you use:
Basic dragging is small. Each plugin adds only its own weight. Import just what you use instead of paying for the whole library upfront.
Framework support:
Svelte, React, Vue, SolidJS, Vanilla JS
Same plugin system across all of them. Core is a peer dependency so it's deduplicated properly in meta-frameworks.