React 19.3 was released on September 9, including stable View Transitions and Fragment Refs. A key addition is the `react-dom browser()` API, which allows components to formally opt out of server-side rendering (SSR). The documentation for this API is now available in the Canary channel.
The `browser()` API addresses a common problem in SSR where components accessing browser-specific objects like `localStorage` or `window` cannot produce meaningful HTML on the server. Previously, developers used workarounds such as `mounted` flags or `typeof window !== 'undefined'` checks, which could lead to hydration mismatches.
When `use(browser())` is called during server rendering, the component suspends, and the nearest Suspense boundary's fallback is rendered. In the browser, it returns `undefined`, allowing the component to render normally after hydration. This API must be called from a Client Component and be within a Suspense boundary to prevent server render failures. React also added an `onBrowserBailout` callback with an optional `reason` argument for reporting skipped server rendering.
The new API has been well-received by developers, who note it provides a cleaner solution for client-only components compared to previous methods. It also offers a more integrated approach than framework-specific solutions like Next.js's `next/dynamic` or Astro's `client:only` directive, which are tied to their respective bundlers.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
React 19.3 shipped with a new `react-dom browser()` API, allowing components to formally opt out of server-side rendering. This API provides a standardized method for handling components that rely on browser-specific objects like `window` or `localStorage`, which previously required awkward workarounds.