# Changelog, May and June 2026: Cache Components and Markdown for agents

Two big months: Next.js Cache Components via next-sanity v13, Markdown content negotiation, a shared blocks package and agent skills. Here it is.

![Neon yellow and orange light streaks crossing a dark dotted grid](https://cdn.sanity.io/images/s6kuy1ts/production/57efbed4ccc2c41cd2bb2821848afe69b12edd57-4096x2596.png?w=1600&fm=webp&q=80&auto=format)

If you only read one of these posts, read this one. May and June reshaped how the starter caches, renders and talks to agents.

## Cache Components via next-sanity v13

The starter adopted Next.js Cache Components through next-sanity v13, and the Sanity ecosystem was aligned to match. Live tag invalidation was restored for regular visitors, and realtime draft preview now uses `updateTag`. Fresh installs also stopped failing on an empty `generateStaticParams`.

## Markdown for agents

Pages can be served as Markdown, with components kept out of the output. Page-builder surfaces were co-located and the serialiser moved to `@portabletext/markdown`. Agents get clean text, and unknown blocks degrade to nothing.

## Shared packages

Blocks moved into a `sanity-blocks` package and Tailwind config into its own package, with an env example so the template works from a fresh clone. A root type-check task now runs through Turborepo.

## Agent skills

Sanity agent skills and Vercel Labs skills now ship in the repo, so coding agents start with the right conventions.

## Smaller wins

- The SEO site title now comes from Settings instead of being hard-coded.
- The Studio deploys via `appId` rather than the deprecated `studioHost`.
- The FAQ uses native `details` and `summary`, with hardened JSON-LD.
- Open Graph images use a simpler site name and title layout.
- A central container standardises widths across nav, sections and blog.
- Image placeholders are pixelated rather than blurred.
- A cleanup removed manual memoisation and dead code, and fixed accessibility issues.

Serve humans HTML, serve agents Markdown, and cache both properly.
