react-select
The flexible, accessible Select control for React with multi-select, async, and creatable options.
Repository Health
Technical Analysis
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
Selectcomponent 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
Joplin
Note Taking
The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.
Karakeep
Bookmarks Archiving
Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.
Keep
Automation · Devops · Monitoring
The open-source AIOps and alert management platform that unifies 130+ monitoring tools into a single pane of glass with AI-powered correlation, deduplication, and workflow automation.
LimeSurvey
Forms Surveys
The world's most flexible open-source survey platform with 900+ templates, conditional logic, 80+ languages, and full GDPR compliance for any scale.
Linkwarden
Bookmarks Archiving · Knowledge Management
Self-hosted collaborative bookmark manager that captures full-page archives, enables annotation, and keeps your knowledge accessible forever.
Mastodon
Social Media
Run your own federated social network on the open ActivityPub standard with no ads, no algorithms, and no corporate control over your community.
Mattermost
Collaboration · Devops · Team Chat
Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.
Nginx Proxy Manager
Developer Tools · Networking · Security
Manage Nginx reverse proxies and free Let's Encrypt SSL through a beautiful web interface — no Nginx expertise required.
OneUptime
Monitoring
The complete open-source observability platform that replaces PagerDuty, Datadog, Sentry, and StatusPage with a single self-hostable system.