Incremental Static Regeneration (ISR)
A cached static page that Next.js rebuilds after it goes stale, so content updates without rendering every visit.
What it is
Incremental Static Regeneration is Next.js's middle ground between a frozen static build and rendering on every request. A page is generated as static output and cached, then becomes eligible for regeneration after a revalidation interval. Visitors keep getting the cached page while Next.js produces and stores a newer version.
Use it for catalogs, articles, and other public pages that need CDN-fast responses but can be a few minutes behind the source. In the App Router, 'export const revalidate = 300' sets a five-minute interval, while revalidatePath and revalidateTag let a CMS webhook invalidate content after an edit.
The interval is not a cron schedule. It says when cached output may become stale; traffic or an explicit invalidation triggers the refresh. A failed regeneration leaves the last successful page in place, which is resilient but can hide a broken data source. Monitor regeneration errors, and use on-demand invalidation when editors expect a publish button to take effect right away.
Ask AI for it
Implement this catalog with Next.js App Router ISR: prerender known product paths with generateStaticParams, set 'export const revalidate = 300' on each product route, and tag the product fetch with next.tags. Add a signed CMS webhook route that calls revalidateTag for the changed product, keep the last successful page available when regeneration fails, and log every failed refresh.