Dynamic APIs rely on information that can only be known at request time (and not ahead of time during prerendering). Using any of these APIs signals the developer's intention and will opt the whole route into dynamic rendering at the request time.
Static is default in App Router for better performance, it is default behavior for fetch requests
Dynamic data/ dynamic functions automatically opts routes into dynamic rendering. Add options to fetch or use dynamic functions
Streaming works best with App Router and React Suspense, Use Suspense boundaries with async components
Incremental Static Regeneration (ISR) offers a hybrid approach: Combine static and dynamic parts
You need to add a blog post page that never changes after publishing. How would you set it up in Next.js to get the best performance?
A product detail page must always show the latest price from an API. Which rendering mode would you choose and why?
Your team notices that a news feed page loads slowly because the API returns a huge list. How could you use streaming in Next.js to improve perceived performance?
During a sprint you switch a page from static generation to server‑side rendering and the build time drops dramatically, but the page now has higher latency. Walk me through the trade‑offs you’d evaluate.
We have a high‑traffic e‑commerce site with a mix of catalog pages (mostly static) and personalized recommendations (dynamic). How would you architect the rendering strategy across the site to balance CDN cache hit rates and freshness?
A recent deployment caused a memory leak in a server‑rendered page that streams data. How would you debug the issue and decide whether to fall back to static generation for that route?
Our legacy monolith serves HTML for SEO, but we want to migrate to Next.js gradually. Describe a migration plan that leverages static, dynamic, and streaming rendering to minimize risk and maintain SEO.
Cross‑team, we need a shared rendering policy for all new pages. What guidelines would you establish for choosing between static, dynamic, and streaming, and how would you enforce them in CI/CD and documentation?