react-select

The flexible, accessible Select control for React with multi-select, async, and creatable options.

Library
npm
v5.10.2
28,020 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
56 /100 Fair
Development Activity 16
Maintenance 32
Community 76
Maturity 60
Momentum 40

Technical Analysis

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

React-Select is the de facto Select control for React, providing a powerful dropdown/combobox component that works out of the box while remaining deeply customizable. It supports single and multi-value selection, searchable filtering, option grouping, async data loading, and user-creatable options.

Built with a modular architecture and an Emotion-powered styling API, react-select lets you override any inner component, control state through props, and tailor look and behavior to your design system. It ships full TypeScript types and accessibility support, making rich select experiences straightforward to build.

What You Get

  • A single, drop-in Select component with searchable, keyboard-navigable options
  • Multi-select, option grouping, and clearable/searchable behavior via simple boolean props
  • Async and creatable variants (AsyncSelect, CreatableSelect) for loading and adding options on the fly
  • A component-injection API to replace or wrap any inner element (Control, Menu, Option, etc.)
  • An Emotion-based styling API plus a themeable default design and full TypeScript types

Common Use Cases

  • Building searchable dropdowns and comboboxes in forms and dashboards
  • Multi-select tag/chip inputs for filtering and categorization
  • Async-loaded pickers that fetch options from an API as the user types
  • Creatable inputs that let users add new options inline (tags, labels, emails)

Under The Hood

Architecture

The library is a Yarn-workspaces monorepo whose published react-select package centers on a single large controlled component in src/Select.tsx (~2,250 lines) that owns focus, keyboard navigation, filtering, and menu state. src/index.ts re-exports a stateManager-wrapped default plus AsyncSelect, CreatableSelect, hooks (useStateManager, useAsync, useCreatable), and a rich set of prop/type exports; inner UI lives in src/components/* (Control, Menu, Option, MultiValue, indicators) with accessibility helpers in src/internal and src/accessibility. Higher-level behaviors (async loading, creatable) are layered as composable wrappers over the base component rather than baked into it.

Tech Stack

Written in TypeScript and built with Preconstruct, react-select declares React/React-DOM 16.8–19 as peer dependencies and pulls in Emotion (@emotion/react, @emotion/cache) for styling, @floating-ui/dom for menu positioning, react-transition-group for animation, memoize-one for memoized computation, and use-isomorphic-layout-effect for SSR-safe effects. Tooling includes Babel, ESLint, Prettier, Jest, and Cypress, with Storybook and a docs site in the workspace.

Code Quality

The codebase is strongly typed with extensive generics (Option, IsMulti, Group extends GroupBase) threaded through the public API for precise inference. It carries a real test suite — Jest unit/snapshot tests under packages/react-select/src/__tests__ (Select, Async, AsyncCreatable, Creatable, StateManaged) plus Cypress end-to-end coverage — and separates concerns cleanly across small component and internal helper modules. The main Select.tsx is large, which concentrates complexity, but naming and module boundaries are consistent.

API Design The developer experience is a key strength: a single import Select from 'react-select' yields a working searchable dropdown, and common behaviors are toggled with intuitive boolean props (isMulti, isSearchable, isClearable). Power users get a component-injection API to override any inner element and a structured Emotion styles API for theming, so the library scales from trivial usage to deep customization. Comprehensive docs at react-select.com and full TypeScript types keep boilerplate minimal.

Used by 42 apps in this directory

Python
100%
Other

OpenBB

Analytics · Databases · Invoicing Finance

74,601

The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics

View details
80
Repo Health
80
Technical
65
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
92%
Other

OpenHands

AI Code Assistants · AI Development

91,695

The self-hosted developer control center for running AI coding agents — locally, in Docker, on VMs, or across cloud backends — with automation workflows for GitHub, Slack, and more.

View details
91
Repo Health
82
Technical
67
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
54%
Other

OpenReplay

Analytics

13,042

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
91
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 54%
Go 13%
Updated 6 days ago
JavaScript
90%
Other

OpenSign

Digital Signiture

7,163

Self-host a full-featured DocuSign alternative with unlimited e-signatures, multi-signer workflows, and cryptographic PDF signing.

View details
83
Repo Health
61
Technical
69
Dependency
Built with
JavaScript 90%
Updated 6 days ago
Elixir
55%
Other

Operately

AI Assistants · Collaboration · Productivity

592

The open source company operating system that unifies OKRs, projects, and team execution with built-in accountability cadences.

View details
86
Repo Health
80
Technical
74
Dependency
Built with
Elixir 55%
TypeScript 44%
Updated 6 days ago
TypeScript
96%
MIT

Payload CMS

Blogging · CMS · Developer Tools

45,458

The open-source, Next.js-native headless CMS that lives inside your /app folder and gives you a full TypeScript backend instantly.

View details
92
Repo Health
88
Technical
65
Dependency
Built with
TypeScript 96%
Updated 5 days ago
Go
82%
AGPL 3.0

PeerDB

Data Engineering · Databases

3,309

Postgres-native ETL that streams change data capture in real time to Snowflake, BigQuery, ClickHouse, S3, and Kafka — up to 10x faster than general-purpose pipelines, managed through a familiar Postgres SQL interface.

View details
89
Repo Health
76
Technical
66
Dependency
Built with
Go 82%
TypeScript 12%
Updated 5 days ago
TypeScript
51%
ZLIB

Portainer

Devops

38,707

A lightweight, open-source web UI that puts Docker, Kubernetes, and Podman management within reach of any team—no CLI expertise required.

View details
93
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 51%
Go 38%
Updated 6 days ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

364

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
64
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 8 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