Hybrid technique combining static shells prerendered at build time with dynamic content streamed via Suspense. Best for Hybrid apps, Optimal performance scenarios, and Modern pages that mix static UI with dynamic data.
PPR combines static shell with dynamic content streaming. Requires React 19 and RSC. Introduced in Next.js 14.1 (experimental), stable in 15+.
// next.config.js
export default {
experimental: {
ppr: true, // or cacheComponents: true
},
};
import { Suspense } from "react";
export default function Page() {
return (
<div>
<StaticHeader />
<Suspense fallback={<Skeleton />}>
<DynamicContent />
</Suspense>
</div>
);
}