Stale-while-revalidate tags and faster ISR
Revalidating pages by tag now works the way Vercel’s does, from Next.js and from any other framework, and prerendered pages are faster and cheaper to keep fresh.
Serve stale while a tag regenerates
revalidateTag("product:123", "max"), with a cache life profile, marks the tagged pages stale instead of deleting them. The next request gets the stale page while Easel regenerates it, and the requests after it get the new one. revalidateTag(tag, { expire: 0 }) and revalidatePath still expire pages, so the next request waits for a fresh render.
From any framework, invalidateByTag and dangerouslyDeleteByTag from @vercel/functions now reach every cached response with the tag, including build output. invalidateBySrcImage and dangerouslyDeleteBySrcImage do the same for optimized images.
Faster, more precise ISR
- Warm regions after a deploy. When a deployment goes live, every edge region loads it and caches its home page, so the first visitor in each region doesn’t wait for a cold load. Warm-up requests aren’t logged or billed.
- One render, every output. A regenerated Next.js page now stores every output from one render, including partial prerendering state, so it’s served from the cache until its next revalidate time.
- Purges hit only what changed. An ISR write purges only the page it rewrote, not the rest of the deployment.
- Pages keep their own lifetime. A generated page keeps its own revalidate time, and build output is served fresh until then.
No charge for unchanged pages
A regeneration that produces the same page as the one stored still refreshes its revalidate time, but bills no Cache Write Units, as on Vercel.
See Revalidation for each call and how it behaves.