mrkeyoor.com_
Tue 01 Sept 17:39 UTC
Webevaluationupdated 26 Aug 2026

react review

React is a JavaScript library for building interactive user interfaces from reusable components. It helps teams describe how a screen should look for each application state, then updates the rendered interface as that state changes. The same component model can support browser, server-rendered, and React Native applications.

+450stars / 7d
Verdict

Our build failed after 9 seconds because java was unavailable, even though all 6,934 executed tests passed. React remains an excellent default for complex, long-lived interfaces when its ecosystem and flexible component model are assets. Use a framework built on React for most new production applications, and approach the core repository itself as contributor infrastructure rather than a quick-start app dependency.

We ran it

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

Answers from our run

Does react build from source?

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

Do react's tests pass?

Yes: 6934 of 6957 passed when we ran the project's own test command (jest). Some failures need services or credentials a bare container does not have.

Who should not use react?

Small static sites where plain HTML and a little JavaScript are simpler

What are the alternatives to react?

Vue, Svelte, Preact. Our build failed after 9 seconds because java was unavailable, even though all 6,934 executed tests passed.

Setup3/5App adoption is easy; the source build needed Java
Docs5/5Clear learning paths, examples, API reference, and guides
Community5/5247,898 stars and a push on the review date
Maturity5/5MIT licensed, established, and backed by 6,934 passing tests

Discussed on

  1. hnPort React Compiler to Rust124 points
  2. hnShow HN: React-Most – Declarative Monadic Reactive State Container for React47 points
  3. hnPort React compiler to Rust (merged)4 points

Who it’s for

Product teams building substantial interactive web applications
Developers who want component-based UI with explicit state management
Organizations that need a widely adopted UI foundation with strong documentation
Teams sharing concepts between web interfaces and React Native apps

Who it’s NOT for

Small static sites where plain HTML and a little JavaScript are simpler
Teams seeking an all-in-one framework with routing, data loading, and deployment decisions included
Contributors who expect the source repository to build in a bare Node container without extra system tooling
Developers who strongly prefer template-first components or minimal client-side runtime code

Setup reality

Our run installed 1,800 packages successfully in 301 seconds, using 1,358 MB on disk; 6,934 tests passed, 0 failed, and 23 were skipped out of 6,957 in 234 seconds. The build then failed after 9 seconds because the Closure Compiler plugin tried to spawn java and received ENOENT. The README makes learning and application adoption look approachable, but building React itself is a different proposition: on a fresh Debian container, the repository needs a system dependency that the shown README installation guidance does not mention.

React is a UI foundation, not a complete application framework

React describes itself plainly as a JavaScript library for building user interfaces, and that narrow definition still matters. Its core idea is to describe a view for each state, split the interface into encapsulated components, and compose those pieces into larger screens. That solves a real maintenance problem: interactive pages become easier to reason about when rendering follows application state instead of scattered DOM instructions. JSX provides the familiar HTML-like authoring style shown in the README, although the project explicitly says JSX is optional.

The repository is popular and actively maintained. It had 247,898 GitHub stars when reviewed, its latest listed release was v19.2.8 on July 21, 2026, and its last push was August 26, 2026, the review date. Those dates together are stronger evidence of health than release cadence alone. The 1,276 open issues are substantial, but issue count needs context for a foundational project with a huge user base. It signals a busy maintenance surface and a potentially noisy contributor experience, not abandonment.

What happened when we ran it

Our run used commit 35e64cf inside an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The repository contained 7,206 files, roughly 827,748 lines of source, and occupied 40.4 MB when checked out. Installation succeeded in 301 seconds, bringing in 1,800 packages and consuming 1,358 MB on disk. That is contributor-scale machinery, not the footprint a product team should confuse with installing React as an application dependency.

Tests were the strongest result: Jest reported 6,934 passed, 0 failed, and 23 skipped out of 6,957, completing in 234 seconds. The repository also exposed 23 CI workflow files and monorepo workspaces. We measured no conventional tests directory and no Dockerfile, so contributors should expect the project’s own layout and automation conventions rather than a generic Node repository structure. The passing suite is persuasive evidence that the checked-out revision was internally sound in our environment.

The build failed after 9 seconds. The final log shows the Rollup Closure Compiler plugin invoking the Java compiler jar, then receiving spawn java ENOENT because java was not in the path. That is the boundary of the evidence: the log demonstrates a missing executable, not a defect in React or proof that installing Java is the only preparation required. Still, it exposes a documentation gap for source contributors. The README’s installation section focuses on using React in projects, while a fresh source build needs system-level tooling beyond the Node and Yarn path visible there.

Its strengths are composability, adoption, and unusually clear learning paths

The component model remains React’s practical advantage. A team can build small stateful units, pass rich JavaScript data through them, and compose them without storing application state in the DOM. The declarative approach makes updates predictable: developers state the intended interface and React handles the relevant rendering work. The README also supports gradual adoption, from adding React to an existing project to starting a new application, so a migration does not inherently require rewriting an entire interface at once.

Its documented reach is broader than browser-only rendering. The README points to server rendering with Node and mobile development through React Native, while keeping React itself neutral about the rest of the technology stack. The official learning material is divided into a Quick Start, tutorial, Thinking in React, state management, escape hatches, and an API reference. At version 19.2.8, that combination of conceptual teaching and precise reference material makes the library easier to introduce across teams than projects that offer only generated API pages.

React’s maturity is also visible in the contribution surface. The repository links a code of conduct, a contribution guide, and labeled good-first issues. There are dedicated runtime build-and-test and compiler TypeScript workflows advertised in the README. The MIT license is simple for commercial use. None of this eliminates the complexity of contributing to a codebase of roughly 827,748 source lines, but it does provide explicit entry points rather than leaving new contributors to reverse-engineer expectations.

The rough edges begin where React deliberately stops

React does not claim to choose routing, data fetching, authentication, styling, caching, or deployment for you. That flexibility is useful for experienced teams, but it moves architectural choices into the surrounding stack. Newcomers asking how to build a whole production application can follow the documentation’s start-a-new-project guidance, yet the core README itself is not an end-to-end operating manual. Teams should budget for framework selection, conventions, dependency governance, and upgrades rather than treating a component library as a finished platform.

The source repository is also heavy. Our 301-second install and 1,358 MB dependency footprint are reasonable for a major compiler-and-runtime monorepo, but inconvenient for casual contribution or constrained CI. The missing Java executable stopped the build quickly, and the top-level README excerpt did not prepare us for that prerequisite. With 1,276 open issues, prospective contributors must also search carefully before filing reports and should expect triage to be more complex than in a small project.

It belongs inside a framework-shaped production stack

For most new web products, React should sit at the view layer inside a framework or established company platform that supplies routing, server rendering, data boundaries, builds, and deployment. Existing applications can adopt it more selectively, mounting components where interaction complexity justifies them. React Native is the adjacent path when shared concepts and skills across web and mobile matter, although the README does not promise identical rendering across those targets.

Choose React when a long-lived interface, broad hiring pool, strong documentation, and ecosystem compatibility outweigh the cost of assembling the surrounding architecture. Consider Vue for template-oriented teams, Svelte for a compiler-led approach, Preact when a smaller React-like runtime is central, or Angular when one integrated framework should make more decisions. The clearest conclusion from our box is balanced: 6,934 passing tests show serious engineering discipline, while the failed build shows that developing React itself is not the same easy setup as consuming it.

Alternatives

ProjectWhat it isPick it when
Vue gh↗A progressive component framework with template-oriented single-file components.Pick this instead when your team prefers HTML-like templates and a more guided component format.
Svelte gh↗A compiler-driven UI framework that shifts more work to the build step.Pick this instead when you want compiler-centered components and less framework runtime in the browser.
Preact gh↗A compact React-like library with a familiar component and hooks model.Pick this instead when bundle size is a leading constraint and React compatibility is useful.
Angular gh↗A full web application framework with an opinionated, integrated toolset.Pick this instead when a large team wants more architecture and application features decided together.

What people are saying

  1. [velocity-scout] jondot/awesome-react-native
  2. [velocity-scout] react/react-native
  3. [github-trending] react/react
  4. [hackernews] Octane – React's programming model, compiled

Sources

  1. React GitHub repository
  2. React documentation

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →