Sanity is the headless content operating system for teams who treat content like code. Real-time collaborative Studio, GROQ queries, and APIs that ship as fast as you do.
Three pillars that turn a content team into an engineering org — without making the editors feel like engineers.
Define your schema in code. Every field, every reference, every variant gets a typed contract that flows from Studio to your frontend with zero glue.
One open-source query language, projected against your schema. Sub-50ms reads at the edge, no over-fetch, no GraphQL ceremony.
Twelve editors in one document. Realtime presence, comments tied to fields, branch previews — the Figma model for content.
Sanity is the only headless CMS where the editor surface is generated from your TypeScript — not the other way around.
Write a schema once. The editing experience — with validation, presence, previews and references — appears for free.
One query, one round-trip, exactly the shape your component needs.
Free for solo developers, transparent for teams, custom only when you need it.
Spin up a Studio, query with GROQ, and ship in the next hour. No credit card. No demo to schedule.
A pure-neutral gray ramp punctured by coral CTA, electric-blue interaction, and neon-green status. Depth lives in surface color — not shadow.
| Role | Family | Size | Weight | Line ht. | Tracking | Preview |
|---|---|---|---|---|---|---|
| Display / Hero | Space Grotesk | 112px | 400 | 1.00 | -4.48px | Structured |
| Hero Secondary | Space Grotesk | 72px | 400 | 1.05 | -2.88px | Structured |
| Section Heading | Space Grotesk | 48px | 400 | 1.08 | -1.68px | Structured |
| Heading Medium | Space Grotesk | 32px | 425 | 1.24 | -0.32px | Structured |
| Body Large | Space Grotesk | 18px | 400 | 1.50 | -0.18px | Real-time content workspace |
| Body | Space Grotesk | 16px | 400 | 1.50 | normal | Real-time content workspace |
| Caption | Space Grotesk | 13px | 400-500 | 1.40 | -0.13px | Caption metadata |
| Micro Label | Space Grotesk | 11px | 600 | 1.0 | normal (UC) | PLATFORM_01 |
| Code Body | IBM Plex Mono | 15px | 400 | 1.50 | normal | defineType({ ... }) |
| Code Micro | IBM Plex Mono | 11px | 500 | 1.30 | 0.7px (UC) | DS_REF / 00 |
| Component | Background | Border | Radius | Sample |
|---|---|---|---|---|
| Primary CTA (pill) | #f36458 | none | 99999px | Get started |
| Secondary (dark pill) | #0b0b0b | 1px #212121 | 99999px | $ npm install |
| Outlined (light pill) | #ffffff | 1px #0b0b0b | 99999px | View docs |
| Ghost / Subtle | #212121 | 1px #212121 | 5px | Settings |
| Uppercase Label | transparent | 1px #212121 | 5px | PUBLISHED |
| Dark Card | #212121 | 1px #353535 | 6px | Card surface |
| Input (focused) | #0b0b0b | 1px #0052ef + 2px ring | 3px | Editable field |
| Mono tag | transparent | none | — | DS_REF / 00 |