Sanity CMSStructured content for composable experiences
Sanity is a composable content platform with a real-time editing studio and a powerful query language (GROQ). We build Sanity-powered projects — custom studio configurations, structured content models, and integrations with Next.js, Remix, and e-commerce platforms.
Sanity is a composable content platform trusted by companies like Figma, Shopify, and National Geographic. Unlike traditional CMS platforms, Sanity separates content from presentation completely — your content lives in Sanity's hosted content lake, and you query it with GROQ or GraphQL from any frontend. Sanity Studio is an open-source React app that you customize and deploy alongside your site. We use Sanity for projects that need structured content modeling, real-time collaboration, and the flexibility to power multiple frontends (web, mobile, kiosk) from a single content source.
Quick start
npm create sanity@latest -- --project-id <ID> --dataset production
# Follow the prompts to set up your Studio
# cd my-studio && npm run dev
# Studio runs at http://localhost:3333Read the full documentation at www.sanity.io/docs
Sanity Studio
A fully customizable React-based editing environment — custom input components, live preview, and workspace plugins.
GROQ query language
Sanity's own query language for filtering, joining, and projecting content — more expressive than REST parameters, easier than GraphQL.
Real-time collaboration
Multiple editors work on the same document simultaneously — changes sync in real-time like Google Docs.
Live preview
See content changes reflected on your frontend instantly — draft content previewed in context before publishing.
Content versioning
Full revision history with the ability to compare, restore, and schedule content changes across documents.
Hosted content lake
Sanity hosts your content in a globally distributed content lake — no database management, instant API access.
Common problems
GROQ learning curve
Sanity's query language is powerful but unfamiliar to most developers. Complex projections and joins take time to master compared to SQL or REST filtering.
Pricing at scale
Sanity's free tier is generous, but API usage charges can grow quickly for high-traffic sites with many real-time queries. CDN caching and static generation help control costs.
Studio customization complexity
Building custom input components, validation rules, and workflow plugins for Sanity Studio requires deep React knowledge and understanding of Sanity's plugin API.
Vendor lock-in
Content lives in Sanity's hosted content lake. Unlike self-hosted CMS options, migrating away requires exporting all content and media assets.
Best practices
Use Sanity's Portable Text for rich content
Portable Text stores rich text as structured data, not HTML. This lets you render the same content differently across web, mobile, and email.
Set up live preview with Next.js Draft Mode
Connect Sanity's real-time listener to Next.js Draft Mode so editors see changes instantly without deploying. Use Sanity's Visual Editing for in-context editing.
Define a content model before building the Studio
Plan your document types, references, and content structure before writing schema code. Changing models after content is created requires migrations.
Cache GROQ queries aggressively
Use ISR or static generation for public pages. Reserve real-time GROQ queries for preview mode and authenticated experiences to keep API costs low.
Frequently asked questions
Related technologies
Related services
Looking for end-to-end delivery? These services complement Sanity projects.
Ready to start your Sanity project?
Tell us what you're building with Sanity. We'll respond within 24 hours.
We limit intake each month so every project gets the focus it deserves.