पाठ 3 / 25
Rendering Strategies at a Glance
Static, dynamic and streaming.
When is the HTML produced?
Static rendering produces HTML at build time (or when revalidated) and serves it to everyone: fastest and cheapest, ideal for content that is the same for all users. Dynamic rendering produces HTML on each request: needed for personalised or request-specific content (cookies, headers, search params, always-fresh data). Streaming sends parts of a page as they become ready, showing a shell quickly while slower data loads. Next.js decides per route based on what the code uses, and the build output tells you which kind each route is.
The route table from the demo's build
I built the demo store with next build (Next.js 16.3.8), started it with next start and requested pages with curl; the output is copied from that run, trimmed to the relevant lines. Static routes are marked ○, routes prerendered from generateStaticParams ●, and routes rendered per request ƒ. The API route and /time/dynamic are dynamic; the product pages were prerendered at build time.
npx next build
Output:
Route (app) ┌ ○ / ├ ○ /_not-found ├ ○ /admin ├ ƒ /api/products ├ ○ /counter ├ ○ /guestbook ├ ○ /login ├ /products/[id] │ ├ ● /products/1 │ ├ ● /products/2 │ └ ● /products/3 ├ ƒ /time/dynamic └ ○ /time/static ƒ Proxy (Middleware) ○ (Static) prerendered as static content ● (SSG) prerendered as static HTML (uses generateStaticParams) ƒ (Dynamic) server-rendered on demand
Read the build output
After every significant change, check the route table: a page that unexpectedly turned dynamic is a performance regression.
त्वरित जाँच: What does ○ (Static) mean in the build output?
- It only runs in the browser
- It renders on every request
- It failed to build
- The route was prerendered as static content at build time
Answer
The route was prerendered as static content at build time — Static HTML is served to every visitor.