react-beautiful-dnd

Beautiful and accessible drag and drop for lists with React

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

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
53/100Fair
Development Activity0
Maintenance44
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
85/100Excellent
Architecture88
Code Quality90
Innovation85
Learning Curve75

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 24 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Low Code Platforms · Databases

15,526

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
53
Repo Health
77
Technical
60
Dependency
Built with
TypeScript72%
Java22%
Updated 9 months ago
TypeScript
96%
Other

Amplication

Developer Tools · AI Code Assistants · Automation

16,010

Create production-ready backend services with your organization's standards baked in — generating NestJS, Prisma, and GraphQL code that you own and control.

View details
61
Repo Health
84
Technical
60
Dependency
Built with
TypeScript96%
Updated 1 months ago
JavaScript
95%
MIT

AnythingLLM

Developer Tools · Automation · AI Assistants

64,914

The all-in-one AI platform for private document chat, no-code agents, and local LLMs with zero setup friction.

View details
91
Repo Health
78
Technical
68
Dependency
Built with
JavaScript95%
Updated today
TypeScript
53%
Other

Chaskiq

CRM · Customer Support

3,560

Self-hosted live chat, video calls, help center, and marketing automation — a full-stack Intercom alternative you run on your own infrastructure.

View details
60
Repo Health
66
Technical
68
Dependency
Built with
TypeScript53%
Ruby36%
Updated 1 months ago
Java
48%
Apache 2.0

ClearFlask

Product Management · Community

448

Open-source feedback management and roadmap tool that lets product teams collect, prioritize, and respond to user input — with AI-powered summarization and full self-hosting control.

View details
83
Repo Health
73
Technical
63
Dependency
Built with
Java48%
TypeScript47%
Updated 2 weeks ago
TypeScript
94%
AGPL 3.0

Element Web

Team Chat · Collaboration

13,387

A polished, self-hostable Matrix client for secure, decentralized messaging and collaboration that puts your organization in full control of its data.

View details
96
Repo Health
83
Technical
67
Dependency
Built with
TypeScript94%
Updated today
TypeScript
89%
Other

FastGPT

AI Agents · AI Development

29,387

Build, debug, and deploy knowledge-based AI agents with a visual workflow editor, RAG retrieval, and support for any OpenAI-compatible LLM.

View details
93
Repo Health
84
Technical
70
Dependency
Built with
TypeScript89%
Updated today
TypeScript
54%
Other

Focalboard

Productivity · Project Management · Collaboration

26,409

Self-hosted, open source project management with Kanban, table, gallery, and calendar views — a privacy-first alternative to Trello, Notion, and Asana.

View details
58
Repo Health
82
Technical
67
Dependency
Built with
TypeScript54%
Go40%
Updated 3 months ago
TypeScript
97%
Other

GrowthBook

Developer Tools · Analytics · Monitoring

8,138

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
66
Dependency
Built with
TypeScript97%
Updated today

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

Search