React

The declarative, component-based JavaScript library for building fast, interactive user interfaces on the web and in native apps.

Library
npm
v19.3.1
251,734 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
98 /100 Excellent
Development Activity 100
Maintenance 96
Community 96
Maturity 60
Momentum 40

Technical Analysis

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

React is Meta’s JavaScript library for building user interfaces out of small, composable components. Instead of manually mutating the DOM, you describe what the UI should look like for a given state and React efficiently computes and applies the minimal set of updates, using a fiber-based reconciler and a cooperative scheduler so rendering work can be prioritized and interrupted without blocking the browser.

Because the core react package only defines the component and hooks model, the same code can target very different renderers: react-dom for the browser, react-native-renderer for native apps, and custom renderers built on react-reconciler. This split, plus first-class support for concurrent features, Suspense, and (with the newer React Compiler) automatic memoization, is what has kept React the default choice for teams building anything from a single interactive widget to a full application shell.

What You Get

  • The core react package (createElement, hooks like useState/useEffect/useTransition, Suspense, act) that defines components independent of any renderer.
  • Official renderers — react-dom for the web and react-native-renderer for native — plus react-reconciler for building custom renderers.
  • The scheduler package’s cooperative, priority-based work loop that powers concurrent rendering and keeps the main thread responsive.
  • An experimental React Compiler (in compiler/) that auto-memoizes components at build time, reducing the need for manual useMemo/useCallback.

Common Use Cases

  • Building interactive single-page or multi-page web UIs, typically paired with a bundler or meta-framework like Next.js.
  • Powering cross-platform mobile apps via React Native using the same component model.
  • Rendering server-driven UI (React Server Components / streaming SSR) through react-server and the various react-server-dom-* packages.
  • Authoring custom, non-DOM renderers (canvas, terminal, PDF, etc.) on top of react-reconciler.

Under The Hood

Architecture The monorepo separates the public API package (packages/react — ReactHooks.js, ReactBaseClasses.js, ReactChildren.js, ReactContext.js, jsx-runtime.js) that exposes createElement/hooks and delegates all stateful work to a global “current dispatcher” (ReactSharedInternals) so it stays agnostic of render target; the actual fiber-tree reconciliation and work scheduling lives in packages/react-reconciler, which is instantiated per host by packages/react-dom, react-native-renderer, and react-test-renderer via a “host config” interface, while packages/scheduler provides a cooperative, priority-based work loop (built on MessageChannel/timers) that the reconciler yields to for concurrent rendering; cross-cutting primitives (symbols, ReactTypes, feature flags) sit in packages/shared and are imported by every other package.

Tech Stack The repo is a Yarn workspaces monorepo (workspaces: ["packages/*"], yarn.lock) whose root package.json is private and pulls in a Babel toolchain (@babel/core, numerous plugin-transform-*) plus Rollup plugins (@rollup/plugin-babel, -commonjs, -node-resolve, -replace, -typescript) for bundling; source is still primarily Flow-typed (@flow pragmas, flow-typed.config.json) with an active migration toward TypeScript, and Jest drives testing across two separate CI workflows (runtime_build_and_test.yml, compiler_typescript.yml). A newer compiler/ directory houses the React Compiler, whose implementation is roughly a quarter Rust by byte count alongside the JS/TS runtime.

Code Quality Tests are extensive and colocated — packages/react/src/__tests__ alone holds 25 files, with thousands more across the other 40 packages — and internal invariants are enforced with __DEV__-gated console.error calls that link straight to react.dev documentation (see resolveDispatcher in ReactHooks.js) rather than throwing in hot paths. Naming is consistent (ReactXxx.js), and inline comments frequently explain non-obvious tradeoffs (e.g. why an error is logged instead of thrown, to keep a function inlinable).

API Design The public surface is deliberately small — a handful of top-level exports (createElement, useState, useEffect, etc.) plus dedicated subpath entry points (react/jsx-runtime, react/jsx-dev-runtime, react/compiler-runtime) so bundlers only pull in what’s used. Hooks read as plain function calls with no required boilerplate, dev-mode invariant violations produce actionable, documentation-linked error messages, and the canonical getting-started snippet is a single createRoot(...).render(<X/>) call shown directly in the README.

Used by 653 apps in this directory

TypeScript
91%
AGPL 3.0

OpenPanel

Analytics

7,187

Open-source Mixpanel alternative with session replay, MCP integration, and privacy-first product analytics you fully control.

View details
83
Repo Health
74
Technical
64
Dependency
Built with
TypeScript 91%
Updated 1 weeks ago
Go
36%

OpenPanel

Devops · Hosting Control Panel

764

Docker-powered web hosting control panel that gives every user a fully isolated environment with dedicated web server, database, and networking — VPS-grade security on shared hardware.

View details
87
Repo Health
75
Technical
63
Dependency
Built with
Go 36%
HTML 30%
TypeScript 24%
Updated 1 weeks ago
Rust
91%
MIT

OpenPencil

AI Design Tools

6,464

An open-source, AI-native vector design tool with concurrent agent teams, design-as-code, a built-in MCP server, and multi-model intelligence — a distinct project from the similarly-named Figma-file-reading "open-pencil" editor.

View details
81
Repo Health
70
Technical
75
Dependency
Built with
Rust 91%
Updated 1 weeks ago
Ruby
78%
GPL 3.0

OpenProject

Collaboration · Productivity · Project Management

16,598

The open source project management platform that unifies Gantt charts, agile boards, time tracking, and team collaboration under full self-hosted control.

View details
96
Repo Health
79
Technical
69
Dependency
Built with
Ruby 78%
TypeScript 14%
Updated 1 weeks ago
Ruby
78%
GPL 3.0

OpenProject

Collaboration · Productivity · Project Management

16,598

The open source project management platform that unifies Gantt charts, agile boards, time tracking, and team collaboration under full self-hosted control.

View details
96
Repo Health
79
Technical
69
Dependency
Built with
Ruby 78%
TypeScript 14%
Updated 1 weeks ago
TypeScript
93%
MIT

OpenReel Video

Video Editors

5,442

A browser-based, GPU-accelerated video editor with multi-track timelines, color grading, and 4K export — no uploads, no installs, no watermarks.

View details
72
Repo Health
80
Technical
71
Dependency
Built with
TypeScript 93%
Updated 2 weeks ago
TypeScript
93%
MIT

OpenReel Video

Video Editors

5,442

A browser-based, GPU-accelerated video editor with multi-track timelines, color grading, and 4K export — no uploads, no installs, no watermarks.

View details
72
Repo Health
80
Technical
71
Dependency
Built with
TypeScript 93%
Updated 2 weeks 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 1 weeks 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 1 weeks 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