Choose a rendering, runtime, and caching strategy on Vercel - Fluid Compute as the default runtime (Edge Functions are deprecated), ISR/PPR, Next.js 16 Cache Components ('use cache', cacheLife, cacheTag, updateTag, revalidateTag), and the Vercel Runtime Cache API (getCache, expireTag, invalidateByTag) with tag-based invalidation. Use when someone asks "should this page be static or server rendered on Vercel", "how do I set up ISR in Next.js", "revalidate this page on demand", or "why is my Vercel page serving stale content" - including streaming vs PPR decisions, caching an API response across regions, and migrating off unstable_cache. Do NOT use to set env vars (use vercel-env-management), wire git/preview/promote deploys (use vercel-deploy-pipeline), route LLM calls (use vercel-ai-gateway), or block bots/rate-limit (use vercel-firewall-and-botid). For pure Core-Web-Vitals/bundle tuning, hand to next-on-vercel-perf.
Click to play with sound.
---
name: Vercel Rendering and Caching
description: Choose a rendering, runtime, and caching strategy on Vercel - Fluid Compute as the default runtime (Edge Functions are deprecated), ISR/PPR, Next.js 16 Cache Components ('use cache', cacheLife, cacheTag, updateTag, revalidateTag), and the Vercel Runtime Cache API (getCache, expireTag, invalidateByTag) with tag-based invalidation. Use when someone asks "should this page be static or server rendered on Vercel", "how do I set up ISR in Next.js", "revalidate this page on demand", or "why is my Vercel page serving stale content" - including streaming vs PPR decisions, caching an API response across regions, and migrating off unstable_cache. Do NOT use to set env vars (use vercel-env-management), wire git/preview/promote deploys (use vercel-deploy-pipeline), route LLM calls (use vercel-ai-gateway), or block bots/rate-limit (use vercel-firewall-and-botid). For pure Core-Web-Vitals/bundle tuning, hand to next-on-vercel-perf.
---
# Vercel Rendering and Caching
This is the rendering-and-caching stage of shipping a Next.js app on Vercel. By the
time you are here the project deploys (vercel-deploy-pipeline) and its env vars are
set (vercel-env-management); now you decide, per route, **where it runs**, **how it
renders**, and **how long its output lives** - then you make invalidation
deliberate instead of accidental. Wrong defaults here are the difference between a
site that serves from cache in single-digit milliseconds and one that re-runs a
function on every request and still serves stale data.
The single most common mistake is carrying forward advice from the platform's
earlier era. Two defaults flipped: **Edge Functions are deprecated** - Fluid
Compute (full Node.js) is the default runtime - and **`unstable_cache` is
replaced** by Next.js 16 Cache Components. This skill encodes the platform
defaults; correct any older instinct against it.
## Workflow
Run these in order. Pick the runtime before the render mode, and the render mode
before reaching for the imperative cache - most routes never need step 4.… install to load the full skill