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.



