# facebookexperimental/Recoil

Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.

Repository: https://github.com/facebookexperimental/Recoil
Canonical: https://ross.abutalabs.com/products/recoil
Homepage: https://recoiljs.org/
Language: JavaScript
License: MIT
License Family: permissive
Archived: true
Last push: 2025-01-01T08:07:34+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2312, "days_push": 609, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: archived
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 19431, forks 1210 (observed 2026-08-28T04:11:28.616736+00:00)

## What it is
Recoil is an experimental state management library for React apps, built around atoms (shared state units) and selectors (pure derived-data functions) forming a data-flow graph. It offers efficient subscriptions, async queries, and cross-app observation features that are hard to achieve with React alone.

## Use cases
- manage shared state across React components
- derive computed state from other state with pure functions
- handle asynchronous queries in React apps
- persist and sync state with external systems like URLs
- observe all state changes for undo or time-travel debugging
- replace React context or useState for cross-component state

## When to choose
- you have a React app needing flexible shared state with minimal boilerplate
- you want derived/async state via a data-flow graph with efficient subscriptions
- you need cross-app state observation for persistence, routing, or undo

## When to avoid
- you need a library with active long-term development and strong community support
- you are starting a new project where alternatives like Zustand, Jotai, or React Query may be better maintained
- you need ES5 browser support

## Facets
- artifact type: library
- maturity: maintenance
- function: state-management, frontend-framework
- domain: web-development, frontend, developer-tools
- platform: browser, cross-platform
- tags: react, atoms, selectors, data-flow-graph, hooks, javascript, nodejs

## Member repositories
- facebookexperimental/Recoil (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:28.616736+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:00:07.152094+00:00, confidence not recorded.
  - readme: https://github.com/facebookexperimental/Recoil (fetched 2026-08-28T04:11:28.616736+00:00, sha 2e351fb32771)
  - homepage: https://recoiljs.org/ (fetched 2026-08-29T07:58:55.381026+00:00, sha 9507c3c9d4f9)
  - site_page: https://recoiljs.org/docs/introduction/installation (fetched 2026-08-29T07:58:55.390092+00:00, sha 18ef4402207d)
  - site_page: https://recoiljs.org/docs/recoil-sync/introduction (fetched 2026-08-29T07:58:55.392543+00:00, sha 1a069e775933)
  - site_page: https://recoiljs.org/docs/refine/Introduction (fetched 2026-08-29T07:58:55.394512+00:00, sha 3141f89d7e21)
  - site_page: https://recoiljs.org/docs/recoil-relay/introduction (fetched 2026-08-29T07:58:55.396225+00:00, sha 1b0b7ee9c44d)
  - site_page: https://recoiljs.org/docs/introduction/getting-started (fetched 2026-08-29T07:58:55.434014+00:00, sha bc1aff10f7c9)
  - site_page: https://recoiljs.org/docs/introduction/core-concepts (fetched 2026-08-29T07:58:55.443812+00:00, sha b0e2e5a5e307)
  - registry_npm: https://registry.npmjs.org/recoil (fetched 2026-08-29T07:58:55.445921+00:00, sha 6ca90aa07930)
- Data as of 2026-08-30T08:39:29.467469+00:00.
