Sanity is a Content Operating System that turns content into structured, reusable data. We give developers complete control over how content is modeled, managed, and delivered.
🚀 Get started • 📚 Documentation • 💬 Community • 🎓 Learn • 📦 Exchange
- Content Lake: Real-time database for structured content - query with GROQ, access via HTTP APIs from any language
- Schema-as-code: Define content models in TypeScript/JavaScript, version control them, get automatic type generation
- Real-time: Live queries, collaborative editing, instant previews built-in
- Customizable: React-based Studio you can customize completely, plus App SDK for organization-wide applications
- Framework agnostic: Works with Next.js, Remix, Astro, or any framework
- AI-ready: Structured content with rich context that AI can use effectively
See code examples
// schemaTypes/articleType.ts
import { defineType, defineField } from "sanity";
export const articleType = defineType({
name: "article",
type: "document",
fields: [
defineField({
name: "title",
type: "string",
validation: (Rule) => [
Rule.required(),
Rule.max(80).warning(
"Titles over 80 characters may be truncated in search results"
),
],
}),
defineField({
name: "excerpt",
type: "text",
validation: (Rule) =>
Rule.custom((value, context) => {
// Cross-field validation
const isFeatured = context.document?.featured;
return isFeatured && !value
? "Featured articles need an excerpt"
: true;
}),
}),
],
});
import { defineQuery } from "groq";
export const ARTICLES_QUERY = defineQuery(`*[_type == "article"] {
_id,
title,
"author": author->name,
"categories": categories[]->title,
"wordCount": length(pt::text(body))
}[0...10]`);
GraphQL is also available if you prefer it.
npm create sanity@latest
This creates a Sanity project with Studio and connects you to the Content Lake. You'll get:
- A customizable content management interface
- Real-time APIs for your content
- Automatic TypeScript types
- Generous free tier with hosting and bandwidth included (no credit card required)
Pricing: Start free, pay-as-you-go for overages. View pricing →
Sanity powers content operations for teams at Figma, Spotify, Shopify, Riot Games, Linear, Cloudflare, Netlify, Replit, PUMA, Nike, Supreme, Condé Nast, AT&T, Samsung, and thousands more.
- 🔍 Contribute: Browse our open source repositories and help build the platform
- 💬 Connect: Join our community with thousands of developers
- 🎓 Learn: Free courses and guides to master Sanity
- 📝 Stay updated: Read our blog for releases and best practices
- 🔌 Extend: Browse plugins and starters on Sanity Exchange
- 💼 Join us: We're hiring engineers to build the future of content
- sanity: The core Sanity toolkit, Studio, and CLI
- next-sanity: Sanity toolkit for Next.js
- GROQ: Specification for the GROQ query language
- groq-js: JavaScript implementation of GROQ
- visual-editing: Tools for live visual editing with Sanity
- document-internationalization: Plugin for translating documents across languages
We welcome contributions to our open source projects. Check each repository's CONTRIBUTING.md for guidelines, or report bugs in the relevant issue tracker.
Built by developers, for developers. We treat content as a strategic asset and give technical teams the tools to work without constraints.