npx skills add ...
npx skills add openai/plugins --skill cms
Headless CMS integration guidance — Sanity (native Vercel Marketplace), Contentful, DatoCMS, Storyblok, and Builder.io. Covers studio setup, content modeling, preview mode, revalidation webhooks, and Visual Editing. Use when building content-driven sites with a headless CMS on Vercel.
npx skills add openai/plugins --skill cms
You are an expert in integrating headless CMS platforms with Vercel-deployed applications — covering Sanity (native Vercel Marketplace), Contentful, DatoCMS, Storyblok, and Builder.io.
Sanity is the primary CMS integration on the Vercel Marketplace with first-class Visual Editing support.
Auto-provisioned environment variables:
SANITY_PROJECT_ID — Sanity project identifierSANITY_DATASET — dataset name (usually production)SANITY_API_TOKEN — read/write API tokenNEXT_PUBLIC_SANITY_PROJECT_ID — client-side project IDNEXT_PUBLIC_SANITY_DATASET — client-side dataset namedefineLive() (next-sanity v12)Use defineLive() for automatic real-time content updates without manual revalidation. In next-sanity v11+, defineLive must be imported from the next-sanity/live subpath:
Breaking change in v12:
defineLive({fetchOptions: {revalidate}})has been removed.defineLive({stega})is deprecated.
Sanity Visual Editing lets content editors click-to-edit content directly on the live site preview. Requires Sanity Studio v5+ (React 19.2) and @sanity/visual-editing v5+.
In next-sanity v11+, VisualEditing must be imported from the next-sanity/visual-editing subpath:
Configure the webhook in Sanity at Settings → API → Webhooks pointing to https://your-site.vercel.app/api/revalidate.
All CMS integrations should use Next.js Draft Mode for preview:
| Variable | Scope | CMS | Description |
|---|---|---|---|
SANITY_PROJECT_ID / NEXT_PUBLIC_SANITY_PROJECT_ID | Server / Client | Sanity | Project identifier |
SANITY_DATASET / NEXT_PUBLIC_SANITY_DATASET | Server / Client | Sanity | Dataset name |
SANITY_API_TOKEN | Server | Sanity | Read/write token |
SANITY_REVALIDATE_SECRET | Server | Sanity | Webhook secret for revalidation |
CONTENTFUL_SPACE_ID | Server | Contentful | Space identifier |
CONTENTFUL_ACCESS_TOKEN | Server | Contentful | Delivery API token |
CONTENTFUL_PREVIEW_TOKEN | Server | Contentful | Preview API token |
DATOCMS_API_TOKEN | Server | DatoCMS | Read-only API token |
⤳ skill: marketplace⤳ skill: runtime-cache⤳ skill: routing-middleware⤳ skill: env-vars⤳ skill: nextjs