Writing · 07.10.25 · 2 min

React Compiler v1.0: automatic memoization in production

Editorial translation of the official React Compiler 1.0 announcement.

React Compiler v1.0: automatic memoization in production

Source: React Compiler v1.0 · Lauren Tan, Joe Savona, Mofei Zhang · October 7, 2025

The React team shipped React Compiler 1.0. It optimizes components and hooks through automatic memoization on React and React Native—without rewrites. Battle-tested at Meta; the culmination of nearly a decade of compiler work from Prepack through Hooks design to CFG-based HIR rewrites.

React Compiler 1.0

How it works

A build-time Babel plugin (largely decoupled from Babel long-term). It lowers AST to HIR, analyzes data flow and mutability, and memoizes render values granularly—including after conditional returns where manual useMemo cannot help.

Validation passes encode the Rules of React; diagnostics surface primarily via eslint-plugin-react-hooks.

Install

npm install --save-dev --save-exact babel-plugin-react-compiler@latest

Compatible with React 17+; pre-19 apps need react-compiler-runtime and minimum target config.

Production results

Meta Quest Store: ~12% faster initial loads and navigations; some interactions 2.5x+ faster; neutral memory.

ESLint integration

Upgrade to eslint-plugin-react-hooks@latest with the recommended preset. Remove legacy eslint-plugin-react-compiler. Rules cover set-state-in-render, set-state-in-effect, refs, and more.

What about useMemo / useCallback?

The compiler often matches or beats manual memoization. Keep them as escape hatches for precise effect dependencies. Don't remove existing memoization without testing.

New apps

Enabled by default in Expo SDK 54+. Opt-in templates in create-vite and create-next-app.

Existing apps: follow the incremental adoption guide.

swc (experimental)

Faster Next.js 15.3.1+ builds with the compiler enabled. Vite users enable via vite-plugin-react; oxc support incoming.

Upgrading

Memoization strategy may evolve between compiler versions—pin exact versions if Rules of React violations hide under weak tests.

For React-heavy frontends, Compiler 1.0 is the clearest step to reduce manual memoization burden.

React Compiler v1.0: automatic memoization in production — Aziz Osmanoğlu