react-beautiful-dnd

Beautiful and accessible drag and drop for lists with React

Library
npm
v13.1.1
33,906 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
53 /100 Fair
Development Activity 0
Maintenance 44
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
85 /100 Excellent
Architecture 88
Code Quality 90
Innovation 85
Learning Curve 75

react-beautiful-dnd (rbd) is Atlassian’s drag-and-drop library purpose-built for lists in React — vertical, horizontal, and movement between lists. It focuses on a natural, physical feel with beautiful motion, first-class keyboard and screen-reader accessibility, and high performance, all behind a small declarative API of DragDropContext, Droppable, and Draggable components.

Unlike general-purpose drag-and-drop toolkits, rbd is a higher-level abstraction specialized for reorderable lists, so common patterns like sortable lists, kanban boards, and multi-list movement take very little code. Note that the project is now archived and deprecated by Atlassian in favor of Pragmatic drag and drop, but it remains widely used with millions of weekly downloads.

What You Get

  • Three composable components (DragDropContext, Droppable, Draggable) that add drag and drop without extra wrapper DOM nodes
  • Built-in accessibility with full keyboard dragging and screen-reader announcements out of the box
  • Support for vertical lists, horizontal lists, and movement between multiple independent lists
  • Mouse, touch, and keyboard sensors plus a sensor API for scripted or custom drag experiences
  • Auto-scrolling, combining items, virtual list support, and server-side-rendering compatibility

Common Use Cases

  • Building sortable, reorderable lists such as to-do lists or ranked preferences
  • Implementing kanban boards with cards that move between columns
  • Reordering rows in semantic tables or items in configuration panels
  • Creating accessible drag-and-drop interfaces that work for keyboard and screen-reader users

Under The Hood

Architecture - rbd is built around a single Redux store per DragDropContext (src/state/create-store.js) driven by a chain of middleware (drop, lift, auto-scroll, dimension-marshal, style-marshal, focus) that turns raw sensor input into reordering impact. The public components in src/view (drag-drop-context, droppable, draggable) connect to that store via react-redux, while marshals like dimension-marshal and use-sensor-marshal coordinate measuring elements and starting drags; geometry is computed with css-box-model and axis abstractions (src/state/axis.js) so vertical and horizontal lists share logic.

Tech Stack - The library is written in JavaScript with Flow type annotations (see the pervasive // @flow headers and src/types.js). Runtime dependencies are deliberately small: react-redux and redux for state, memoize-one for selector memoization, raf-schd for requestAnimationFrame scheduling, css-box-model for box geometry, and use-memo-one. It builds with Rollup (rollup.config.js) and Babel into CJS and ESM bundles, with Storybook and Cypress for demos and browser testing.

Code Quality - Code quality is high and battle-tested: the repo contains roughly 238 spec files under test/ covering state middleware, integration, accessibility, and server-side rendering, run via Jest. It uses invariant/dev-warning helpers for defensive runtime checks, Flow for static typing, and ESLint/Stylelint/Prettier for consistency. The modular one-concern-per-file layout in src/state and src/view keeps the reducer and view logic well separated.

API Design - The public API is small and ergonomic — three components plus a handful of hooks and utilities (resetServerContext, sensor hooks) exported from src/index.js — using render props that hand you provided/snapshot objects so you stay in control of markup and styling. Documentation is extensive (a full docs/ tree plus a free course), which lowers the barrier despite the inherent complexity of accessible drag and drop.

Used by 25 apps in this directory

TypeScript
98%
Other

GrowthBook

Ab Testing Experimentation · Analytics · Developer Tools

8,527

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
63
Dependency
Built with
TypeScript 98%
Updated 6 days ago
TypeScript
96%
AGPL 3.0

Kan

Project Management

5,825

An open-source, self-hostable Kanban board built as a modern Trello alternative with team workspaces, board permissions, and Trello import.

View details
86
Repo Health
78
Technical
67
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
39%
Apache 2.0

Label Studio

AI Development · Data Engineering

28,540

Label Studio is an open-source, multi-type data labeling platform that lets teams annotate images, text, audio, video, and time series data with a configurable XML-based UI and export annotations in formats ready for any ML framework.

View details
93
Repo Health
87
Technical
64
Dependency
Built with
TypeScript 39%
JavaScript 27%
Python 25%
Updated 1 weeks ago
Python
55%
MIT

LibrePhotos

File Storage

8,111

Self-hosted photo library with AI-powered face recognition, semantic search, and automatic event albums — no cloud required.

View details
84
Repo Health
78
Technical
66
Dependency
Built with
Python 55%
TypeScript 43%
Updated 6 days ago
JavaScript
42%
Other

LimeSurvey

Forms Surveys

3,778

The world's most flexible open-source survey platform with 900+ templates, conditional logic, 80+ languages, and full GDPR compliance for any scale.

View details
86
Repo Health
62
Technical
62
Dependency
Built with
JavaScript 42%
PHP 36%
CSS 12%
Updated 6 days ago
TypeScript
51%
Other

Mattermost

Collaboration · Devops · Team Chat

39,418

Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.

View details
96
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 51%
Go 40%
Updated 6 days ago
TypeScript
99%
Other

NocoBase

Low Code Platforms · No Code Platforms

24,686

Open-source AI + no-code platform that lets coding agents and people collaborate to build business systems fast on proven infrastructure.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
TypeScript 99%
Updated 6 days ago
TypeScript
96%
Apache 2.0

OneUptime

Monitoring

7,751

The complete open-source observability platform that replaces PagerDuty, Datadog, Sentry, and StatusPage with a single self-hostable system.

View details
91
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
96%
Apache 2.0

Pezzo

AI Development · Monitoring

3,278

Open-source LLMOps platform for prompt management, AI observability, intelligent caching, and real-time cost tracking across LLM providers.

View details
59
Repo Health
75
Technical
66
Dependency
Built with
TypeScript 96%
Updated 2 months 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