All InsightsNext.js Partial Prerendering
Next.js 15 Partial Prerendering (PPR): Designing Pages with Static Shell + Dynamic Holes
Learn how PPR works, how to place Suspense boundaries correctly, and how to avoid accidental full-dynamic routes.
Brief
Search intent
Informational (implementation + performance)
Target audience
Web leads, Architects, Product engineers
Estimated difficulty
Medium
Funnel stage
Consideration
Meta title
Next.js 15 PPR: Static Shell, Dynamic Holes (Production Guide)
Meta description
Learn how PPR works, how to place Suspense boundaries correctly, and how to avoid accidental full-dynamic routes.
URL
/insights/nextjs-15-partial-prerendering-static-shell-dynamic-holes
Related services
External references
- Vercel/Next.js discussions on PPR
- Production PPR writeups
Suggested graphics
- Render timeline (TTFB/LCP) chart
- Boundary placement diagram
- Route caching audit checklist
FAQ
- What breaks PPR (cookies/headers/searchParams usage)?
- How is PPR different from streaming without PPR?
- When should you not use PPR?
CTA
This is a brief/stub page (not a full article yet). If you want these expanded into authoritative articles, we can turn each brief into a publish-ready piece with diagrams + examples.
Performance audit for your Next.js app