mrkeyoor.com_
Sat 17 Oct 13:33 UTC
Webevaluationupdated 26 Aug 2026

react review

React is a JavaScript library for building component-based interfaces on the web and in native apps through React Native. It solves the problem of keeping a screen in sync with changing application state, while leaving routing, data loading, deployment, and most project structure to other tools.

+293stars / 7d
Verdict

Our React run installed 1,800 packages and passed 6,925 of 6,957 tests, but its source build stopped because java was missing, so using React is much easier than contributing to React itself. Choose it for a long-lived interactive product when ecosystem depth and team familiarity outweigh the extra framework decisions. For a small widget or a team that wants one prescribed full stack, compare Preact or a framework-led option first.

We ran it

Lab card: what happened when we ran reactScreenshot of react (react.dev)
Install✓ · 203s1800 packages · 1358 MB
Build✗ · 8s
Tests✗ · 233s6925 passed · 9 failed · 23 skipped of 6957 (jest)
Repo7206 files~827,740 lines of source · 40.4 MB · 23 CI workflows

Answers from our run

Does react build from source?

Dependencies installed in 203 seconds (1800 packages), and the build failed. We cloned commit 6c3bd60 into a clean Debian container with 3 CPUs and no project-specific setup.

Do react's tests pass?

No. The project's own test command finished in 233 seconds and reported 6925 passed, 9 failed, 23 skipped (jest).

Who should not use react?

Teams seeking an all-in-one web framework: the official installation guide recommends starting new React apps with a framework because React alone does not provide routing or data fetching.

What are the alternatives to react?

Preact, Vue, Solid. Our React run installed 1,800 packages and passed 6,925 of 6,957 tests, but its source build stopped because java was missing, so using React is much easier than contributing to React itself.

Setup3/5App use is familiar; source build needed Java and 1,358 MB
Docs5/5The official learning path and API reference cover app development well
Community5/5247,905 stars with a push on August 26, 2026
Maturity5/5React 19.2.8 is released and the project has extensive CI

Discussed on

  1. hnFacebook updates React Patent grant93 points
  2. hnLet's dig into the inner workings of facebook/react9 points

Who it’s for

Product teams building interactive web interfaces with a large hiring and package ecosystem.
Developers who want components and state management without adopting one prescribed application stack.
Existing sites that need to introduce interactive sections gradually.
Framework users whose framework uses React as its rendering layer.

Who it’s NOT for

Teams seeking an all-in-one web framework: the official installation guide recommends starting new React apps with a framework because React alone does not provide routing or data fetching.
Contributors expecting a small source checkout: our measured commit contained 7,206 files and about 827,740 source lines before installing 1,800 packages.
Build environments limited to Node tooling: our source build invoked the Java Closure Compiler and failed when java was missing from the path.
Teams requiring a clean upstream test run on this exact commit and sandbox: 9 of 6,957 tests failed across 3 suites.
Custom-element-heavy apps unwilling to test browser attributes closely: open issue 34663 reports inconsistent handling of form and aria-invalid on custom elements.

Setup reality

Our sandbox installed 1,800 Yarn packages in 203 seconds and used 1,358 MB. The build failed after 8 seconds because its Closure Compiler command could not spawn java. Tests ran for 233 seconds: 6,925 passed, 9 failed, and 23 were skipped out of 6,957.

Using React from npm is a different job from building its source repository. An application still needs a build tool or framework, plus choices for routing and data loading. React itself needs no hosted credential or external service.

Contributing to the 7,206-file monorepo requires Yarn workspaces and the repository's custom scripts. A Node-only container was insufficient for our build because Java was absent. The failed tests were confined to 3 of 325 suites, but the supplied log does not establish their causes.

React handles interface state, while the application shell stays yours

React turns application state into components and updates the rendered interface when that state changes. The public API centers on components, props, hooks, and roots. JSX is optional, although it is the normal authoring style shown in the documentation. That model works for a single interactive panel inside an existing page, a browser application, server-rendered output through a framework, or native interfaces through React Native.

The boundary matters more than the feature list. React does not choose routing, data access, authentication, deployment, or a directory layout for you. Its installation guide recommends a framework for new applications, while the README also documents gradual adoption. That makes React flexible inside an established engineering organization. It can leave a new team comparing several packages before the first product screen exists.

The ecosystem is large because React leaves major choices outside core

A React component is portable across many React-based stacks, and the library has enough adoption that design systems, test tools, editors, and hosting platforms usually account for it. GitHub showed 247,905 stars when we fetched the repository. Popularity does not prove fit, but it lowers hiring and integration risk for teams that expect the same interface code to live for years.

The cost appears in decision count. A production app commonly needs a framework or separate answers for navigation, server rendering, forms, caching, and requests. React's own docs make that division clear. Teams with strong platform conventions can treat the library as a stable rendering layer. A two-person project may spend more time selecting and joining supporting parts than it would with a more directed framework.

What happened when we ran it

Our run at commit 6c3bd60 installed 1,800 Yarn packages in 203 seconds. Dependencies occupied 1,358 MB, compared with a 40.4 MB checkout containing 7,206 files and roughly 827,740 source lines. Installation succeeded in the fresh Debian container with 3 CPUs and 8 GB of RAM. Those figures describe work on React itself, not adding the published react package to an application.

The source build failed after 8 seconds. Its final log showed the Google Closure Compiler command trying to launch Java, followed by spawn java ENOENT and the direct question, Is java in the path? Java was absent from this Node 22 image. The evidence supports one narrow conclusion: a fresh Node-only container did not contain every system tool needed by this build path.

Tests continued for 233 seconds and finished with exit code 1. Jest reported 6,925 passed, 9 failed, and 23 skipped out of 6,957 tests. All 302 snapshots passed. The failures came from React Flight Turbopack DOM Node, React Cache, and React Multi Child Text suites. The log tail names those suites but does not show enough detail to assign a cause.

Source contribution needs more machinery than application use

The checkout is a Yarn 1 workspace monorepo rather than a typical app created from a starter. Its package scripts wrap custom Jest, Rollup, Flow, lint, release, and error-code tooling. Our scan found 23 CI workflow files and no Dockerfile. It also found no top-level tests directory because tests sit alongside package code. Contributors should follow repository scripts instead of applying assumptions from a conventional Node project.

For application developers, the normal route is far lighter. Install the released packages or let a recommended framework manage them, then use the React documentation for components and hooks. No API credential is required. That difference explains why millions of developers can use React without ever installing 1,800 repository dependencies, running the internal release-channel builds, or supplying Java to the Closure Compiler.

React 19.2.8 is current, and open reports still matter

GitHub recorded a push on August 26, 2026, and the latest release was React 19.2.8, published July 21, 2026. The repository showed 1,274 combined issues and pull requests. That combined number is evidence of activity and scale, not a count of confirmed defects. The latest release notes describe a decoding performance improvement for React Server Components.

Current reports are still worth checking against an application's unusual edges. Issue 34663 describes custom elements receiving common attributes differently from native elements, including aria-invalid. Issue 37374 supplies a reproduction where a re-entrant act() call leaves updates pending in tests on React 19.2.8. Both reports were open when fetched, so teams using custom elements or nested testing-library behavior should reproduce their own case before treating either report as resolved.

React is the safe default only when its open architecture helps

React earns a place on a shortlist for an interactive product that needs a deep component ecosystem, broad staffing options, and freedom to pick its surrounding stack. The MIT license, current push activity, React 19.2.8 release, and 23 CI workflows support a high maturity score. The 6,925 passing tests in our sandbox also show substantial exercised behavior, even though the complete suite did not pass.

The source repository is a poor first contribution target for anyone expecting a small JavaScript package. Our 1,358 MB dependency footprint, missing-Java build failure, and 233-second failed test run make that plain. Application adoption is a separate decision and usually much easier. Use React when your team values its ecosystem enough to own the remaining architecture choices; otherwise, test a narrower library or a more directed framework before committing.

Alternatives

ProjectWhat it isPick it when
Preact gh↗A smaller React-compatible UI library with a similar component model.pick this instead when bundle size matters more than exact compatibility with the full React ecosystem.
Vue gh↗A progressive web UI framework with templates, reactivity, and an official companion ecosystem.pick this instead when your team prefers template syntax and more first-party choices around application structure.
Solid gh↗A reactive UI library that updates DOM nodes without a virtual DOM diff.pick this instead when fine-grained reactivity appeals and a smaller ecosystem is acceptable.

What people are saying

  1. [github-trending] react/react
  2. [hackernews] Octane – React's programming model, compiled

Sources

  1. React repository README
  2. React installation guide
  3. React 19.2.8 release
  4. Custom element attribute issue 34663
  5. Re-entrant act issue 37374

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →