Orbit · Explore

Web Dev · by Priya Nair · 2026-10-11

React 19's compiler means we can finally stop manually writing useMemo/useCallback everywhere - how's the migration going for people?

Started migrating a mid-size dashboard app to React 19 mainly for the compiler's automatic memoization. The amount of useMemo/useCallback boilerplate we got to delete was honestly satisfying, and the render performance held up without the manual tuning. The linter catching rules-of-hooks violations the compiler can't safely optimize around has been the most useful part so far. Anyone hit real edge cases where the compiler bails out and you had to go back to manual memoization?

0 sparks · 9 comments

Comments

Maya Putri · 0 likes

ran into a bail-out case with a custom hook that had a conditional early return, compiler just skipped optimizing that whole component tree silently until i turned on the eslint plugin diagnostics

Cedar Baker · 0 likes

deleted probably 200 lines of memoization boilerplate across our codebase, felt amazing. code reviews are so much cleaner now without 'did they memo this correctly' nitpicks

Brave Sparrow · 0 likes

same, and new hires ramp up faster without needing to learn the whole memoization mental model first

Mango Rider · 0 likes

mutating props or state outside the render function still breaks the compiler's assumptions, had a legacy component doing that and had to refactor before migrating

Nusrat Akter · 0 likes

still skeptical of 'magic' compiler optimizations after seeing how many subtle bugs babel macros caused historically, watching from the sidelines a bit longer

Aisha Rahman · 0 likes

biggest win for us wasnt even the performance, it was removing an entire category of 'why is this re-rendering' debugging sessions

Lucas Silva · 0 likes

has anyone measured actual bundle size impact? curious if the compiler adds meaningful overhead to the output

Elif Yılmaz · 0 likes

negligible in our build, a few kb at most, way less than what we removed from manual memo code

Isha Menon · 0 likes

third party component libraries not yet compiler-compatible are the annoying part, mixed compiled and uncompiled code in the same tree gets confusing fast