Headline: Partial Prerendering (PPR) in Next.js serves a static HTML shell from the CDN edge instantly, then streams Suspense-wrapped dynamic children from the origin in the same HTTP response. No full-page ISR staleness, no full-page origin latency. I shipped it on two production routes — here is the model.

Key takeaways

PPR serves a static HTML shell from the CDN edge, then streams dynamic Suspense children from the origin in the same response.

The static shell is built at build time — outside <Suspense> renders statically; inside renders dynamically per request.

PPR replaces the ISR vs. dynamic tradeoff for pages that are mostly static with isolated personalized sections.