Skip to solution
mediumSystem Design

How does Next.js decide between static and dynamic rendering at build time?

1.0k views
01

Understand the problem

Automatic detection based on APIs and data usage.

nextjsrenderingstaticdynamic
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Nudge consolestandby

Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.

03

Study the solution

At build, Next.js analyzes each route: if it uses no dynamic functions and only cached data, it's prerendered statically; if it uses cookies/headers/searchParams or uncached fetches, it's marked dynamic. Segment config can force either mode.

Solution ready — 2 min read

Classified // press E to declassify

04

Read the code

Reading the build output
$ next build
Route (app)                     Size
○ /                             (Static)   prerendered as static HTML
● /blog/[slug]                  (SSG)      prerendered via generateStaticParams
ƒ /dashboard                    (Dynamic)  server-rendered on demand
# ○ StaticSSG  ƒ Dynamic — check this to catch accidental dynamic routes
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.

Transmission complete // awaiting log

KEEP THE
STREAK ALIVE.

Dossier 19 of 95 decoded in the Next.js track. One more won't hurt.

Back to track