Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Demo of Next.js App Router using experimental Partial Prerendering for hybrid static and dynamic rendering.
The Next.js Partial Prerendering demo is a minimal example project that shows how to combine static edge delivery with dynamic regions in a single route using the experimental PPR flag introduced in Next.js 14.
This is a small Next.js application built on the App Router that demonstrates the experimental Partial Prerendering (PPR) feature. It takes a standard Next.js project and adds the ppr: true flag in next.config.js, then wraps dynamic components in <Suspense> boundaries. The output is a working index route at / that serves a static shell with dynamic holes, showing the core pattern PPR uses to mix instant static responses with fully dynamic capabilities. The demo is published as a public repository with 326 stars and is tagged with nextjs and vercel.
experimental: { ppr: true } inside next.config.js, as shown in the demo.<Suspense> so the route shells out static HTML while dynamic parts render asynchronously.ppr flag to compare behavior with standard static or dynamic rendering.<Suspense> around dynamic content to create static-dynamic hybrid routes.experimental: { ppr: true } to next.config.js.<Suspense> within the App Router layout or page.The demo itself contains only a single route at /, keeping the workflow easy to trace.
No. The demo's README explicitly warns that PPR is an experimental technology not recommended for production. You may run into developer experience issues, especially on larger code bases.
The demo uses the experimental Partial Prerendering feature available in Next.js 14. It relies on the App Router, which is the default in recent Next.js versions.
Yes, the demo is built with the App Router, and PPR is designed to work within the App Router's Suspense and layout model. The demo shows the App Router setup with layouts and component-level data fetching.
Partial Prerendering combines ultra-quick static edge delivery with fully dynamic capabilities. Instead of choosing between static generation and server-side rendering for a whole page, you get a static shell with dynamic holes that render asynchronously, a pattern the Vercel blog suggests could become the default rendering model for web applications.
Because PPR is experimental and not recommended for production, the demo is intended for learning and prototyping rather than as a production starter. For production use, stick to standard Next.js rendering modes until PPR is stable.
