Built for agentic development.
Built for agentic development.
AGENTS.md and a dozen scoped skills load the conventions before the first prompt, so Claude Code or Cursor builds inside the decisions instead of proposing a new architecture per run. Two MCP servers ship in the repo: one reads the running app, one drives a real Chrome. The agent checks its own work.
The shipped site stays legible to agents: an editable llms.txt drafted from your content, and a token-light Markdown twin of every page on the same URL. A feature you can put in your own proposals.
Document roles, factory functions, singletons. Every schema looks the same, so every editor knows where to go. You never model the structure from scratch again.
The three fields nobody gets right the first time. A link field that handles every kind of link. A media field that returns image, Mux, Rive, and Lottie in one shape, dimensions included, so layout never shifts. A page builder with guardrails. Typed, composed everywhere.
CDN bypassed in production, Data Cache doing the work, webhooks invalidating on publish, draft mode wired in. Stale content after publish stops being a midnight problem.
Every document type where editors expect it. Pages own their routes, singletons stay locked, no hunting. Clients stop emailing to ask where their homepage lives.
Per-page metadata from schema, sitemap driven by Sanity, OpenGraph with auto-cropped images, robots.txt included. Nothing bolted on the week before launch.
Basic auth, spam-protected forms, redirects managed in Sanity, analytics, view transitions. The plumbing you reconfigure every project, already wired.
An interactive setup script provisions the Sanity project, mints tokens, wires CORS and the revalidation webhook, and writes your .env. Migration scripts back up production and move content between environments. The first run is handled, not documented.
trusted by 35+ engineers
/$$$$$$$$ /$$ /$$ /$$$$$$ /$$
|__ $$__/| $$ | $$ /$$__ $$ | $$
| $$ | $$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ |__/ \ $$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$
| $$ | $$__ $$ /$$__ $$ | $$__ $$ /$$__ $$| $$ /$$/|_ $$_/ /$$$$$/ /$$__ $$ |____ $$| $$ | $$ /$$_____/
| $$ | $$ \ $$| $$$$$$$$ | $$ \ $$| $$$$$$$$ \ $$$$/ | $$ |___ $$ | $$ | $$ /$$$$$$$| $$ | $$| $$$$$$
| $$ | $$ | $$| $$_____/ | $$ | $$| $$_____/ >$$ $$ | $$ /$$ /$$ \ $$ | $$ | $$ /$$__ $$| $$ | $$ \____ $$
| $$ | $$ | $$| $$$$$$$ | $$ | $$| $$$$$$$ /$$/\ $$ | $$$$/ | $$$$$$/ | $$$$$$$| $$$$$$$| $$$$$$$ /$$$$$$$/
|__/ |__/ |__/ \_______/ |__/ |__/ \_______/|__/ \__/ \___/ \______/ \_______/ \_______/ \____ $$|_______/
/$$ | $$
| $$$$$$/
\______/
/$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$
|____ $$ /$$__ $$ /$$__ $$ | $$ | $$ /$$__ $$| $$ | $$ /$$__ $$ /$$_____/
/$$$$$$$| $$ \__/| $$$$$$$$ | $$ | $$| $$ \ $$| $$ | $$| $$ \__/| $$$$$$
/$$__ $$| $$ | $$_____/ | $$ | $$| $$ | $$| $$ | $$| $$ \____ $$
| $$$$$$$| $$ | $$$$$$$ | $$$$$$$| $$$$$$/| $$$$$$/| $$ /$$$$$$$//$$
\_______/|__/ \_______/ \____ $$ \______/ \______/ |__/ |_______/|__/
/$$ | $$
| $$$$$$/
\______/