TL;DR
If a route in your Next.js App Router feels like full SSR—long TTFB, janky client navigations—try a conservative route-level "use cache" plus a small Suspense shell to let Partial Prerendering (PPR) do the heavy lifting. In practice this often drops TTFB from ~700ms to ~60–80ms and makes navigations feel instant.
Why this matters
Next.js's App Router and Cache Components model favor explicit caching. By marking expensive server work as cacheable and placing Suspense boundaries close to uncached parts, Next.js can serve a static shell immediately and stream dynamic content into the same response. That static shell is what the browser receives first, so perceived navigation latency plummets.
Key outcomes you can expect






