Overview
Sanity is a headless content platform designed for structured content and real-time collaboration. It provides tools for defining content models, storing content in a centralized Content Lake, and delivering it via APIs to various frontends and applications. The core philosophy behind Sanity is that content should be structured and portable, allowing it to be reused across different channels — from websites and mobile apps to smart devices and IoT experiences. This approach contrasts with traditional CMS platforms that often couple content with its presentation layer.
Developers use Sanity to construct custom content schemas, enabling precise control over data types and relationships. The platform includes Sanity Studio, a customizable open-source content editor built with React, which allows content teams to manage, edit, and publish content. A notable feature of Sanity Studio is its real-time collaboration capabilities, allowing multiple users to work on the same content simultaneously with live updates. This facilitates workflows for content teams that require concurrent editing and review processes.
The content stored within Sanity's Content Lake is accessible via two primary APIs: a GraphQL API and the GROQ (Graph-Relational Object Queries) API. GROQ is a specialized query language developed by Sanity that enables complex filtering, projection, and joining of content data directly from the API. This provides developers with flexibility in fetching exactly the data needed for their applications, optimizing performance and reducing bandwidth. Sanity is often chosen for projects requiring highly customized content experiences, complex content relationships, and scalable content delivery across multiple platforms. Its extensibility and developer-focused toolset contribute to its suitability for dynamic, modern web and mobile applications.
Key features
- Structured Content and Schemas: Define custom content models with fields, types, and validation rules, ensuring data consistency and reusability across platforms.
- Content Lake: A real-time, global content store that serves as a single source of truth for all digital content, supporting high availability and scalability.
- Sanity Studio: A customizable, open-source content editing environment built on React. It offers real-time collaboration, live previews, and an extensible plugin architecture to tailor workflows.
- GROQ Query Language: A powerful, declarative query language for fetching and transforming content from the Content Lake via an API, enabling complex data retrieval with a single query.
- GraphQL API: Provides a standard GraphQL endpoint for querying content, offering an alternative to GROQ for developers familiar with GraphQL.
- Image Asset Pipeline: Handles image uploads, transformations, and optimization on the fly, delivering responsive images tailored to specific display requirements.
- Real-time Collaboration: Enables multiple content editors to work on the same document simultaneously, with changes reflected in real-time, improving team productivity.
- Webhooks and Integrations: Supports automated workflows by triggering external services or actions upon content changes, facilitating integration with build processes, notifications, or other systems via Sanity webhooks.
- Incremental Content Delivery: Designed to deliver content efficiently, supporting strategies like static site generation (SSG) and server-side rendering (SSR) for optimal performance.
- Version Control and History: Content changes are tracked, allowing users to review past versions and revert to previous states as needed.
Pricing
Sanity offers a tiered pricing model that scales with usage metrics such as the number of users, datasets, assets, and API requests. A free developer plan is available for initial development and small projects.
| Plan | Description | Monthly Price (as of 2026-05-27) |
|---|---|---|
| Developer | Free tier with limited usage for personal projects and testing. Includes 3 users, 1 dataset, 10,000 API requests/month, 5GB assets. | Free |
| Growth | Designed for growing teams and projects. Includes 10 users, 3 datasets, 100,000 API requests/month, 50GB assets. Additional usage billed. | $99/month |
| Enterprise | Custom pricing for large organizations requiring advanced features, dedicated support, and higher usage limits. Includes custom users, datasets, API requests, and enterprise-grade compliance. | Custom |
For detailed and up-to-date pricing information, refer to the Sanity pricing page.
Common integrations
- Next.js: Often used for server-side rendering (SSR) and static site generation (SSG) with Sanity content, leveraging Next.js data fetching.
- Gatsby: Integrates with Sanity via source plugins to pull content into Gatsby's build process for static site generation, as detailed in the Gatsby quickstart guide.
- React / Vue: Sanity content can be consumed directly by React or Vue applications using client libraries for dynamic content display.
- Vercel / Netlify: Popular deployment platforms for projects using Sanity as a backend, often triggered by Sanity webhooks for continuous deployment.
- Shopify / BigCommerce: Integrating e-commerce platforms with Sanity to manage product content, editorial content, and marketing assets in a unified system.
- Algolia / MeiliSearch: Connecting Sanity with search services to provide full-text search capabilities over structured content.
- Zapier / Make (formerly Integromat): For connecting Sanity with a wide range of third-party services for automation and workflow orchestration.
Alternatives
- Contentful: A cloud-based headless CMS offering a content platform with a focus on API-first content delivery and developer tools.
- Strapi: An open-source headless CMS that is self-hostable, providing developers with control over their data and infrastructure.
- Hygraph: A GraphQL-native headless CMS that emphasizes a unified content API and a robust content federation approach.
Getting started
To initialize a new Sanity project and create a minimal studio, you can use the Sanity CLI. This example demonstrates setting up a new project with a basic schema and deploying the studio locally.
# Install the Sanity CLI globally
npm install -g @sanity/cli
# Create a new Sanity project
sanity init
# Follow the prompts:
# - Select an output folder: (e.g., my-sanity-project)
# - Choose a project template: "Clean project with no predefined schemas"
# - Create a new Sanity project: Yes
# - Project name: (e.g., My Awesome Project)
# - Dataset name: production (default)
# - Choose a project studio template: "Clean project with no predefined schemas"
# Navigate into your new project directory
cd my-sanity-project
# Start the Sanity Studio locally
sanity start
After running sanity start, the Sanity Studio will typically be accessible in your web browser at http://localhost:3333. You can then begin defining your content schemas and adding content.