PPR снимает выбор «вся страница static или dynamic». Build-time static shell + дыры в <Suspense> + stream dynamic частей в одном HTTP-ответе.
Разбор
До PPR один cookies() отравлял весь route — 90% static product page (layout, nav, описание) платило за 10% dynamic (корзина, персональная цена).
PPR переносит границу static/dynamic с route на component. <Suspense> boundary — шов между baked и live: вне boundary — prerender в shell с CDN; внутри — hole с fallback, real content стримится с сервера. Пользователь сразу видит цельную страницу, dynamic куски догружаются.
Что сказать
Фраза, которая «щёлкает»: PPR = static shell + streamed dynamic holes, один request.
Итог
PPR — компромисс CDN-скорости и per-request персонализации без второго round-trip и без полного dynamic render.