Sanity suits publishers with developers who want a hosted, queryable content store and a customisable editing Studio. The trade-off is that you rent the data layer from Sanity and build the entire site yourself, including preview, sitemaps and redirects. Content releases are an Enterprise feature, and pricing is per seat.
What is Sanity?
Sanity is a headless content platform from Sanity.io with two parts. Sanity Studio is the editing application, an open-source codebase you configure in code. The Content Lake is the hosted data store behind it, reached through query and mutation APIs. The Studio repository’s licence file is MIT and carries a 2016 to 2026 copyright range, which tells you the company has been publishing it for around a decade.
The latest Studio release on GitHub is v6.18.0, published 6 October 2026. A publisher uses Sanity as the content back end for a site built separately. For the headless model in general, see our headless guide.
| Fact | Detail |
|---|---|
| Licence | MIT (Studio code); hosted Content Lake under Sanity’s service terms |
| Latest version | Studio 6.18.0 (6 October 2026) |
| Written in | Studio is an npm package (npm install sanity@latest) |
| Database | Sanity’s hosted Content Lake |
| Hosting | Content hosted by Sanity (SaaS) |
| Price | Free $0; Growth $15 per seat per month; Enterprise custom |
| Made by | Sanity.io |
Who is Sanity best for?
Sanity suits a publisher with a development team that wants to shape the editing interface around its own content model, and that is happy to rent the storage layer. It is a good match when the same content must reach a website, an app and other channels, and when editors want to see changes in context through visual editing.
It is a poor fit if your organisation requires all data on servers it controls, because the Content Lake is a hosted service. It also asks more of developers than a traditional CMS: schemas, queries and the front end are all code.
Editorial workflow
Sanity separates states clearly. A published document is what public queries see. A draft holds unpublished edits to a single document, and a version holds edits inside a content release. The documentation says neither drafts nor versions are served to unauthenticated requests. Queries pick a perspective, so a production site asks for published and a preview site asks for drafts.
Roles depend on the plan. The roles documentation says every plan has Administrator and Viewer, while Growth and Enterprise add Editor, Developer and Contributor. Fully custom roles, including those that restrict access to content with GROQ filters, are Enterprise features. The pricing page also lists comments, task management and scheduled drafts on Growth.
Content Releases group changes across many documents and schedule them as ASAP, at a set time, or undecided. The documentation says this is available on certain Enterprise plans, so a publisher planning a coordinated launch on Growth should ask Sanity what is included.
What the front end must handle: preview. Visual editing is not automatic. The documentation lists what your front end must implement: a secure draft-mode endpoint, stega encoding in the client, an overlay system, integration with the Live Content API, and router integration for click-to-edit. Plan this as real development work.
SEO, structured data and feeds
Sanity is a content store, and the documents we read describe no built-in sitemap, structured-data or redirect feature. Those belong to your front end:
- Sitemaps: query published documents by GROQ and generate XML, with lastmod from your own date field. The drafts documentation advises modelling a custom
publishedAtfield, because_updatedAton a published document changes with any mutation. - Structured data: build
ArticleorNewsArticleJSON-LD from schema fields you define for author, dates and images. - Redirects: store redirect pairs as documents if you wish, but the server, CDN or framework must apply them with proper status codes.
- Titles, descriptions, canonicals, Open Graph: add them as fields and render them in the head. For social previews, the image documentation advises pinning the format with
fm=jpg, since crawlers are less tolerant of modern formats. - Rebuilds and cache refresh: webhooks fire on create, update and delete of published documents and ignore drafts by default, so they suit static rebuilds or revalidation.
- Feeds: RSS or Atom generated by the front end.
Media, multilingual and performance
Images are served from Sanity’s CDN with URL parameters for width, height, crop, focal point and format. Supported output formats include JPEG, PNG, WebP and AVIF, and auto=format picks by browser. Small images scale up by default, so use fit=max where you do not want that.
Sanity describes two localisation models. Field-level keeps one document with every language, which must be published together. Document-level creates one document per language linked by references, which can be published independently and suits translations that arrive at different times. Plugins named in the documentation include @sanity/document-internationalization, and both models can coexist.
For delivery, the opt-in API CDN caches read queries across five regions and cached responses skip rate limiting. The documentation recommends it for browser-side fetching and the uncached API for static builds that need the freshest data.
Hosting and requirements
The content API is hosted by Sanity, so there is no database for you to run. The Studio is installed as an npm package, so your developers need a Node.js toolchain. The free plan restricts you to public datasets, and private datasets arrive with Growth. We did not find a self-hosted option for the Content Lake in the pages we read.
Extending Sanity
Sanity exposes the GROQ query language and webhooks, plus the visual editing and Live Content API features described above. The Studio is customised in code, and localisation relies on named plugins. The documentation also mentions Sanity Functions as an alternative to external webhook endpoints. We have not verified the size of the plugin ecosystem, so we give no count.
What Sanity costs
The pricing page lists a Free plan at $0 with up to 20 seats, 2 public datasets and 10k documents. Growth is $15 per seat per month with 25k documents and pay-as-you-go overages. Enterprise is custom, with SSO, audit trails and an SLA.
Add-ons listed under Growth include dedicated support at $799 per month, increased quota at $299 per month and extra datasets at $999 per dataset per month. Per-seat pricing means every editor and developer counts, so a newsroom of 30 costs more than the headline figure suggests. Budget for front-end development and hosting too; see the cost guide.
Where Sanity falls short
- Hosted data. The Content Lake is a service you rent. Read the terms, export options and termination clauses.
- Seat-based pricing. Costs rise with headcount, and the free plan has only two roles.
- Document limits. The free and Growth plans list 10k and 25k documents. Large archives need a conversation with sales.
- Enterprise-gated features. Content Releases and custom roles sit on Enterprise plans.
- Front-end work. Visual editing, SEO output and redirects all need custom code.
- A query language to learn. GROQ is specific to Sanity.
The verdict for publishers
Sanity is a strong option for a publisher with developers who want a flexible content model and a polished, customisable editing experience, and who accept a hosted data layer. The documented draft and version model is clear, and the image pipeline and webhooks cover common delivery needs.
It is less suitable for small teams without developers, for organisations that must self-host, and for newsrooms that need staged approval or coordinated releases without paying Enterprise prices. Compare it with other headless systems and the self-hosted options on the comparison hub. This profile is based on vendor documentation, not a hands-on install; see how we test.
Questions people ask
Is Sanity open source?
Partly. The Studio repository is MIT-licensed, according to its LICENSE file. Your content lives in Sanity's hosted Content Lake, which is a commercial service governed by Sanity's terms. See our [licence guide](/license.php) for how that differs from a fully self-hosted system.
How much does Sanity cost for a small news site?
The pricing page lists a Free plan at $0 with up to 20 seats and 10k documents, and Growth at $15 per seat per month with 25k documents. A site with many archive articles can pass the document limit, so count your content before choosing.
Can Sanity schedule articles?
Scheduled drafts are listed on the Growth plan. Content Releases, which group and schedule changes across documents, are described as available on certain Enterprise plans.
Does Sanity handle sitemaps, redirects and structured data?
Not as a finished feature of the content store. Sanity stores the fields and serves them by API; your front end generates sitemaps, JSON-LD and redirects. The documents we read describe webhooks to trigger rebuilds, not an SEO module.
What is GROQ?
GROQ is Sanity's own query language. It lets a developer filter documents, follow references and return only the needed fields in one request. Developers new to Sanity need to learn it.
Sources
- The sanity-io/sanity repository is licensed under the MIT Licence, held by Sanity.io, covering 2016-2026. — source, checked 10 October 2026.
- The latest Sanity Studio release on GitHub is v6.18.0, published 6 October 2026. — source, checked 10 October 2026.
- Sanity's pricing page lists a Free plan at $0 (up to 20 seats, 2 public datasets, 10k documents), Growth at $15 per seat per month (25k documents, private or public datasets, pay-as-you-go overages) and Enterprise at custom pricing. — source, checked 10 October 2026.
- Per the pricing page, Free includes 2 permission roles (Admin, Viewer); Growth adds Editor, Developer and Contributor roles plus comments, task management and scheduled drafts; Enterprise adds SSO, audit trails, an SLA and custom roles. — source, checked 10 October 2026.
- Sanity keeps Published, Draft (one per document, ID prefix drafts.) and Version (inside a content release, ID prefix versions.) states; neither drafts nor versions are served to unauthenticated requests, and queries choose a published or drafts perspective. — source, checked 10 October 2026.
- Content Releases lets teams group changes across documents and schedule them (ASAP, At Time, Undecided), and the documentation says the feature is available on certain Enterprise plans. — source, checked 10 October 2026.
- All Sanity plans include Administrator and Viewer roles; Growth and Enterprise add Editor, Developer and Contributor; fully custom roles with GROQ-filtered content resources are Enterprise features. — source, checked 10 October 2026.
- Visual editing needs front-end work: a draft-mode preview endpoint, stega encoding in the client, an overlay system, Live Content API integration and router integration for click-to-edit. — source, checked 10 October 2026.
- The Sanity API CDN is an opt-in caching layer across five global regions; cached responses skip rate limiting, and the documentation recommends the uncached API for static builds that need the freshest data. — source, checked 10 October 2026.
- Sanity webhooks fire on create, update and delete, ignore draft and version changes by default, and can trigger rebuilds or cache revalidation. — source, checked 10 October 2026.
- Sanity image URLs support resizing, focal-point cropping and format conversion including JPEG, PNG, WebP and AVIF, with auto=format choosing a format by browser. — source, checked 10 October 2026.
- Sanity documents two localisation approaches: field-level (one document, many languages, published together) and document-level (one document per language, linked by references, published independently), using plugins such as @sanity/document-internationalization. — source, checked 10 October 2026.
- GROQ is Sanity's query language for filtering, joining across references and returning only the fields requested. — source, checked 10 October 2026.