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

TypeScript
92%
MIT

GB Studio

Design Tools · Developer Tools · Game Development

9,434

Drag-and-drop retro Game Boy game creator that compiles real ROMs — no coding required.

View details
88
Repo Health
83
Technical
72
Dependency
Built with
TypeScript 92%
Updated 1 weeks ago
TypeScript
63%
MIT

Ghost

Blogging · CMS

55,598

Open source headless Node.js CMS for professional publishing, paid memberships, and newsletters with a fully owned audience.

View details
96
Repo Health
85
Technical
64
Dependency
Built with
TypeScript 63%
JavaScript 35%
Updated 6 days ago
TypeScript
47%
AGPL 3.0

Grafana

Analytics · Monitoring

77,469

The open-source observability platform that unifies metrics, logs, and traces from any data source into dynamic, queryable dashboards.

View details
95
Repo Health
91
Technical
63
Dependency
Built with
TypeScript 47%
Go 47%
Updated 5 days ago
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 5 days ago
Rust
60%
MIT

Handy

Productivity · Voice AI

34,484

Free, offline, open-source speech-to-text that pastes directly into any app on Windows, macOS, and Linux.

View details
88
Repo Health
78
Technical
71
Dependency
Built with
Rust 60%
TypeScript 30%
Updated 5 days ago
TypeScript
71%
Other

highlight.io

Analytics · Developer Tools · Monitoring

9,384

Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.

View details
76
Repo Health
78
Technical
65
Dependency
Built with
TypeScript 71%
Go 16%
Updated 6 days ago
TypeScript
99%
MIT

GraphQL Hive

Developer Tools · Devops · Monitoring

483

Open-source GraphQL schema registry and observability platform with breaking change detection, federation support, and CI/CD integration for teams of any size.

View details
90
Repo Health
81
Technical
68
Dependency
Built with
TypeScript 99%
Updated 6 days ago
Go
69%
MIT

hoop

Monitoring · Security

836

A wire-protocol gateway that enforces data masking, command blocking, approval workflows, and full session recording for engineers and AI agents accessing production infrastructure.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
Go 69%
Clojure 13%
Updated 5 days ago
TypeScript
96%
Other

Infisical

Devops · Security

29,961

The open-source platform for secrets, certificates, privileged access, and AI agent security — all in one self-hostable system.

View details
91
Repo Health
84
Technical
64
Dependency
Built with
TypeScript 96%
Updated 5 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