A headless CMS with realtime editing and a fully customisable Studio.
Sanity is a headless CMS whose editing Studio you configure yourself as a React application and which synchronises content in realtime between everyone editing. Instead of forcing content into rigid HTML fields, it models it as structured documents and uses Portable Text to store rich text as clean, processable data rather than markup. You query through GROQ, an expressive query language that gives you exactly the shape of data the frontend needs. The result is editorial environments that feel just like the project they fill.
More in the documentationWe use Sanity when your content needs to be structured and the editing Studio should follow your model exactly, not the other way around. With GROQ we fetch precisely the data each page needs, without dragging along superfluous fields. The realtime synchronisation is handy when several people work on the same content at once.
import { createClient } from "@sanity/client";
const client = createClient({ projectId, dataset: "production", apiVersion: "2024-01-01" });
const posts = await client.fetch(
'*[_type == "post" && defined(slug.current)] | order(publishedAt desc){ title, "slug": slug.current }',
);Good to know
Store rich text as Portable Text, not as pre-rendered HTML. That keeps your content free of markup and lets you reuse it later in any frontend, app or even as plain text, without maintaining it again.
More tools we work with in the same area.
WordPress
The most widely used CMS, flexibly extensible, including with ACF.
Strapi
A headless CMS for API-driven content and full frontend freedom.
Contentful
A cloud-based headless CMS for structured, multilingual content.
Payload
A TypeScript-native headless CMS right next to your code.
Contens CMS
An enterprise CMS backed by years of experience in the public sector.
You don't have to decide that, it's our job. Tell us about your plans.