React Compiler Is Becoming Infrastructure, Not Just an Optimization Experiment

By Swayam Swarup Panda

Eighteen months after entering public beta, React Compiler has quietly become the default assumption in new React projects. A look at what changed, what's still debated, and whether useMemo is finally dead.

Eighteen months in, a fair time to check in

React Compiler entered public beta alongside React 19 at the end of 2024, running in production at Meta from the start with the team's explicit endorsement to adopt it. It hit its first stable 1.0 release in October 2025. Eighteen months on from the beta, it's worth asking honestly: did it actually deliver, and has it changed how people write React day to day?

The short answer is yes, more thoroughly than a lot of build-time optimizations manage to. In new projects started in 2026, the compiler is increasingly just assumed to be there — partnered directly into starter templates from Expo, Vite, and Next.js, rather than something you bolt on afterward.

What it actually does

React Compiler is a build-time tool that performs automatic memoization across your component tree. The pitch is straightforward: stop writing useMemo, useCallback, and manual React.memo wrapping by hand, and let the compiler figure out what needs memoizing based on your actual code, not your guess about your code.

In practice, that means components that used to look like a maze of dependency arrays now just... read like normal JavaScript. You write the logic, the compiler figures out what's expensive enough to cache and inserts the memoization at build time.

Where the friction still shows up

The rollout hasn't been friction-free. The most commonly cited issue is library compatibility — packages like React Hook Form, which occasionally bend React's rules in ways that work fine without the compiler but trip up its static analysis. Because the compiler isn't universally adopted yet, not every popular library has had time to adjust for it, which means some existing codebases hit unexpected edge cases turning it on for the first time.

The React team's incremental adoption guide exists specifically for this reason — gating strategies, compatibility checks, and tooling that let you enable the compiler gradually across a large codebase instead of flipping a switch and hoping.

The cultural shift underneath the tooling

The more interesting change might be behavioral rather than technical. Developers are starting to treat a stray useMemo in 2026 the way they'd treat a manual for loop where .map() would do — usually fine, occasionally still necessary, but no longer the default instinct. That's a real shift in how a widely-used library expects you to write code, and it took about a year and a half of beta, production battle-testing at Meta, and a full stable release to get there.

Is it worth adopting now

If you're starting a new React project in 2026, there's very little reason not to enable it from day one — most starter tooling does this for you already. If you're retrofitting a large existing codebase, the incremental adoption path is the right way in: don't flip it on everywhere at once, and budget time to deal with the handful of libraries that haven't caught up yet.

Follow me to keep in touch

Where I share my creative journey, design experiments, and industry thoughts.

Create a free website with Framer, the website builder loved by startups, designers and agencies.