5 solution docs
Sanity blog solution docs
A real editorial CMS your writers can use, with the schema still living in your repo.
Pick Sanity blog and all 5 land in docs/solutions/blog-sanity/, next to the rules and skills that reference them.
Every Sanity blog doc in the registry
Tags: app-router · caching · data-modelling · draft-mode · groq · images · isr · lqip · next-image · performance · preview · projections · queries · references · revalidate · sanity · webhooks
Draft mode is on, and the page still shows published content
Draft mode only bypasses caches for reads that know about it. One direct client.fetch, or a token-less client, and the editor sees yesterday's copy.
sanity · draft-mode · caching · app-router
GROQ projections that stop your blog index fetching every article body
*[_type == "post"] returns whole documents, drafts of fields included. Project explicitly, dereference in the query, and slice every list.
sanity · groq · performance · queries
Sanity images without the 4MB original and the layout jump
asset->url hands the browser the raw upload. Build a transform URL with a width, and use the LQIP Sanity already generated as the blur placeholder.
sanity · images · performance · lqip
Modelling references in Sanity without an N+1 on every page
A reference is a pointer, not an embed. Dereference inside the projection, model the direction that reads well, and never resolve in a loop.
sanity · groq · references · data-modelling
Webhook revalidation or a revalidate timer: pick one
A 60-second timer rebuilds pages nobody asked for and still makes editors wait. Tag every read, invalidate on publish, and stop guessing.
sanity · caching · revalidate · webhooks