# Sanity Next Revalidate

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-aiengkenn-agent-skills-sanity-next-revalidate`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [AIEngKenn](https://agentstack.voostack.com/s/aiengkenn)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [AIEngKenn](https://github.com/AIEngKenn)
- **Source:** https://github.com/AIEngKenn/agent-skills/tree/main/skills/sanity-next-revalidate

## Install

```sh
agentstack add skill-aiengkenn-agent-skills-sanity-next-revalidate
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Sanity Next.js Revalidation

Make **Publish in Studio** update the **Next.js** site reliably.

## Ask first

- Next App Router or Pages?  
- Hosting (Vercel / other)?  
- Existing webhook? Secret header name?  
- Using `fetch` tags, `unstable_cache`, or only `revalidate` seconds?

## Recommended pattern (App Router)

### 1. Tag fetches

```ts
fetch(sanityUrl, { next: { tags: ["sanity"] } });
// or sanityFetch wrapper that tags by document type
```

### 2. Route handler

`app/api/revalidate/sanity/route.ts` (or similar):

- Verify `SANITY_REVALIDATE_SECRET` (header or query)  
- Parse webhook body (`_type`, `_id`, slug)  
- Call `revalidateTag("sanity")` and/or type-specific tags  
- Optionally `revalidatePath` for known routes  
- Return 401 on bad secret, 200 on success  

### 3. Sanity webhook

- Dataset: production  
- Trigger: create / update / delete (and ideally published documents)  
- Filter: optional by `_type`  
- URL: `https://yoursite.com/api/revalidate/sanity?secret=…`  
- Projection: minimal `_id,_type,slug`  

### 4. Env

- `SANITY_REVALIDATE_SECRET` — server only  
- Never expose write token to the browser  

## Debugging “I published but site unchanged”

1. Did they click **Publish** (not only Save)?  
2. Webhook deliveries in Sanity manage → success?  
3. Handler logs 200? Secret mismatch?  
4. Fetch using tags that the handler revalidates?  
5. ISR/`revalidate: N` still serving stale edge cache — wait or purge  
6. Wrong dataset (staging content vs prod site)?  

## Anti-patterns

- Revalidate every path on every webhook (slow/expensive) without tags  
- Secret in client bundle  
- Relying only on `revalidate: 60` for editorial sites that need instant updates  

## Deliverable

Webhook config · route handler path · tags used · test Publish checklist.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [AIEngKenn](https://github.com/AIEngKenn)
- **Source:** [AIEngKenn/agent-skills](https://github.com/AIEngKenn/agent-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-aiengkenn-agent-skills-sanity-next-revalidate
- Seller: https://agentstack.voostack.com/s/aiengkenn
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
