Revalidation Basics

This page perfoms a fetch on the server to get a random article from Wikipedia. The fetched data is then cached with a tag named "randomWiki" and a maximum age of 60 seconds.

const url = 'https://en.wikipedia.org/api/rest_v1/page/random/summary';

async function RandomArticleComponent() {
const randomArticle = await fetch(url, {
next: { revalidate: 60, tags: ['randomWiki'] }
});
// ...render
}

After the set time has passed, the first request for this page would trigger its rebuild in the background. When the new page is ready, subsequent requests would return the new page - see stale-white-revalidate.

Alternatively, if the cache tag is explicitly invalidated by revalidateTag('randomWiki', 'max'), any page using that tag would be rebuilt in the background when requested. The 'max' cacheLife profile (new in Next.js 16) enables background revalidation for long-lived content.

In real-life applications, tags are typically invalidated when data has changed in an external system (e.g., the CMS notifies the site about content changes via a webhook), or after a data mutation made through the site.

For this functionality to work, Next.js uses the fine-grained caching headers available on Netlify - but you can use these features on basically any Netlify site!

Stan Prentice

NZ international rugby league player

Stan Prentice was an Auckland rugby league player who represented New Zealand in 5 test matches from 1928 to 1935. He was Kiwi #192 when he debuted against England in 1928 when he played in all 3 [...]

From Wikipedia