What React 19 Actually Ships
After three years of React Server Components living in Next.js-land, React 19 brings them into the core framework. Alongside this, the React Compiler (formerly React Forget) reaches stability — automatically memoising components without manual useMemo and useCallback calls. These are the two changes with the most material impact on how we build enterprise React applications.
The React Compiler: Goodbye Manual Memoisation?
The React Compiler analyses your component code at build time and automatically inserts memoisation where it determines a re-render can be avoided. In theory, this means you no longer need to scatter useMemo, useCallback, and React.memo across performance-critical trees.
In practice, from our testing on three production codebases: the compiler reduced unnecessary re-renders by 35–60% on complex data-table-heavy UIs, eliminated the need for ~70% of our manual memoisation, and had no regressions in two of three apps — one app required adjustments because of side-effects in render functions (which the compiler correctly flags as invalid React patterns).
The compiler requires your code to follow React's rules strictly. Think of it as a linter with teeth — it will tell you where your code is semantically invalid, forcing good practices across the codebase.
Server Components: What They Actually Mean for Your Architecture
React Server Components (RSC) render on the server and send HTML — never JavaScript — to the client. They can directly access databases, file systems, and backend services without an API layer. This fundamentally changes the data-fetching model for pages where interactivity is limited.
The mental model shift: RSCs are for data-fetching and static presentation; Client Components are for interactivity. The boundary between them is marked with 'use client' at the top of a file. In practice, most enterprise apps will have a mix — RSC shells with interactive Client Component islands.
What Does NOT Change
The component model, JSX, and the hooks API remain unchanged. Existing React 18 codebases do not need to be rewritten. The migration path is incremental — adopt RSC and the compiler feature-by-feature. For enterprise apps mid-project, our recommendation is: adopt the compiler (it is a build-time change with opt-in per file), and evaluate RSC for new pages/routes only.