Sortable

Reorderable drag-and-drop lists for modern browsers and touch devices, with no jQuery or framework required

Library
npm
v1.15.7
31,201 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
52 /100 Fair
Development Activity 4
Maintenance 20
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
75 /100 Good
Architecture 74
Code Quality 75
Innovation 68
Learning Curve 82

Sortable is a JavaScript library for building reorderable drag-and-drop lists, using the native HTML5 drag-and-drop API with a touch-device fallback. It requires no jQuery or framework, works with any element type (not just ul/li), and supports dragging items between separate lists via a shared group configuration, along with CSS-based animations, drag handles, auto-scrolling, and multi-item drag selection.

Beyond the core library, Sortable ships an official plugin system (AutoScroll, MultiDrag, Swap, OnSpill) that can be cherry-picked to keep bundle size small, and the broader SortableJS organization maintains framework-specific wrappers for React, Vue, Angular, Ember, Meteor, Knockout, and Polymer. With over 31,000 GitHub stars and tens of millions of weekly npm downloads, it is one of the most widely used drag-and-drop libraries in the JavaScript ecosystem.

What You Get

  • Native HTML5 drag-and-drop with a touch-device fallback, requiring no jQuery or UI framework
  • Cross-list dragging via a shared group option, with fine control over pull/put behavior and cloning
  • A cherry-pickable plugin system (AutoScroll, MultiDrag, Swap, OnSpill) to keep bundle size minimal
  • Rich lifecycle events (onStart, onEnd, onAdd, onUpdate, onSort, onMove, onClone) for fine-grained integration
  • Official framework wrappers maintained by the SortableJS org for React, Vue, Angular, Ember, Meteor, Knockout, and Polymer
  • TypeScript type definitions available via @types/sortablejs

Common Use Cases

  • Building drag-and-drop reorderable task boards or kanban columns (e.g. dragging cards between ‘To Do’ and ‘Done’ lists)
  • Letting users reorder items in a settings or admin list (e.g. reordering navigation menu items or form fields)
  • Implementing multi-select drag operations to move several list items at once via the MultiDrag plugin
  • Adding drag-and-drop reordering to a framework app (React, Vue, Angular) through one of the official wrapper packages

Under The Hood

Architecture - Sortable is centered on a single core module (src/Sortable.js, ~2,000 lines) that manages drag state, DOM manipulation, and event dispatch, supported by smaller focused modules for animation (Animation.js), cross-browser detection (BrowserInfo.js), event dispatching (EventDispatcher.js), and a PluginManager.js that lets optional plugins (AutoScroll, MultiDrag, Swap, OnSpill) register themselves into the core drag lifecycle without bloating the base bundle. Tech Stack - Vanilla JavaScript with no runtime dependencies, distributed as UMD/ESM/CJS builds (including modular core-only and complete-with-plugins bundles) via npm, Bower, and CDNs; built with Rollup and tested via CircleCI with SauceLabs cross-browser testing. Code Quality - The project maintains a dedicated tests/ suite and has been continuously refined since 2013 with 178 contributors; as a mature, widely-adopted library it has seen its core drag/drop edge cases (nested lists, touch delay, swap thresholds) heavily battle-tested in production across thousands of downstream apps, though recent commit activity has slowed as the API has stabilized. API Design - The API centers on a single Sortable.create(el, options) call with a large, well-documented options object and named lifecycle callbacks, making basic usage nearly zero-config while still exposing deep configurability (swap thresholds, direction detection, custom onMove logic) for complex drag-and-drop scenarios.

Used by 17 apps in this directory

Python
45%
GPL 3.0

MaxKB

AI Development · Knowledge Management

23,022

Build enterprise-grade AI agents with RAG, workflows & multi-modal support

View details
92
Repo Health
68
Technical
66
Dependency
Built with
Python 45%
Vue 37%
TypeScript 17%
Updated 6 days ago
TypeScript
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,340

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
91
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 5 days ago
JavaScript
88%
GPL 3.0

NodeBB

Community

15,242

Modern Node.js forum software with real-time WebSockets, multi-database support, and a plugin ecosystem — the community platform built for the open web and the Fediverse.

View details
97
Repo Health
78
Technical
70
Dependency
Built with
JavaScript 88%
Go Template 11%
Updated 5 days ago
Python
38%
Other

Open WebUI

AI Agents · AI Assistants

156,607

The extensible, privacy-first AI platform that runs Ollama, OpenAI, and any LLM backend behind a polished, feature-packed web interface.

View details
92
Repo Health
75
Technical
66
Dependency
Built with
Python 38%
Svelte 35%
JavaScript 19%
Updated 5 days ago
PHP
58%
AGPL 3.0

Nextcloud Server

Collaboration · File Storage

37,265

Your own private cloud: self-hosted file sync, collaboration, and communication with no vendor lock-in.

View details
95
Repo Health
77
Technical
81
Dependency
Built with
PHP 58%
JavaScript 32%
Updated 5 days ago
TypeScript
63%
AGPL 3.0

undb

Databases · No Code Platforms

2,975

Self-hosted no-code database and BaaS that lets you manage structured data visually with multi-database support, formula fields, and auto-generated OpenAPI endpoints.

View details
58
Repo Health
66
Technical
65
Dependency
Built with
TypeScript 63%
Svelte 35%
Updated 1 months ago
Go
66%
AGPL 3.0

Vikunja

Project Management

5,833

Self-hosted task management with natural-language quick-add, multiple views, and a fully documented REST API — your tasks, your infrastructure, zero lock-in.

View details
86
Repo Health
81
Technical
65
Dependency
Built with
Go 66%
TypeScript 24%
Updated 5 days ago
Python
57%
Apache 2.0

Zulip

Team Chat

26,102

Topic-based team chat that brings the structure of email threads to real-time messaging, so distributed teams never lose context across hundreds of concurrent conversations.

View details
96
Repo Health
86
Technical
60
Dependency
Built with
Python 57%
TypeScript 19%
JavaScript 11%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers