Building the HTML once, at build time, so every request gets it instantly.
Static Site Generation pre-renders a page's HTML once at build time, rather than per request. In the App Router, this is actually the default — any route that doesn't read request-specific data (cookies, headers, search params) or call a dynamic function is automatically rendered statically, with no extra configuration needed to opt in.
generateStaticParams lets you pre-render specific values for a dynamic route at build time — every blog post slug, every product ID — turning a whole set of dynamic pages into static ones. Incremental Static Regeneration, controlled via the revalidate option, extends this further: a statically generated page can be regenerated in the background after a set time interval, without requiring a full site rebuild, combining SSG's speed with data that's allowed to go stale and quietly refresh.
What you'll walk away knowing