What problem does it solve?
It solves the slow “whole-page hydration” problem where users must wait for large bundles and slow components to finish loading before the UI becomes interactive.
Core Features & Use Cases
- Selective hydration with React 18: Enables interactive parts of the page to hydrate as soon as they arrive, rather than waiting for the entire app bundle.
- Streaming SSR using React 18 APIs: Uses renderToPipeableStream (Node) or renderToReadableStream (edge) to start sending HTML earlier.
- Suspense-based isolating of slow components: Wraps heavy data-fetching sections in Suspense so sibling UI can stream and hydrate independently.
Example use case: A dashboard page where “Comments” requires slow data fetching—hydrate the rest of the page immediately, then stream and hydrate the Comments area later.
Quick Start
Wrap the slow, data-fetching component inside a Suspense boundary and switch your SSR rendering to renderToPipeableStream or renderToReadableStream so the page can stream and hydrate interactively via hydrateRoot.