Sanity

Free tierUpdated 2026-04

A visual content editor your whole team can use — without touching code.

🟡Intermediate20 minutes to set upTry Sanity

What is Sanity?

Sanity is a headless content management system (CMS). The "headless" part means it stores and delivers your content but has no opinion about how it looks on screen — that is your frontend's job. Sanity handles the structured data: blog posts, product descriptions, author profiles, page sections, whatever your project needs.

Two pieces make up Sanity. First, Sanity Studio — a customisable web-based editor that you deploy and hand off to your content team. It is clean, real-time, and feels closer to Notion than a traditional WordPress dashboard. Second, the Content Lake — Sanity's hosted database where all that structured content lives, available via API from any frontend.

Why use it?

The main reason to choose Sanity over simpler options like MDX files is team collaboration. If you are building something where non-developers need to create and edit content — a marketing team updating a landing page, authors publishing blog posts, an operations team managing a product catalogue — Sanity gives them a proper tool without requiring code access.

It is also the right choice when your content is deeply structured. Sanity lets you define precise schemas: a Blog Post has a title, a slug, a list of authors (each a reference to an Author document), a cover image with alt text, and a rich-text body. That structure ensures consistency and makes querying reliable.

The GROQ query language is Sanity-specific and takes an afternoon to learn, but it is expressive and handles complex relational queries cleanly.

Free vs Paid

FeatureFreeGrowth ($15/mo)Enterprise
Projects3UnlimitedUnlimited
Datasets per project2UnlimitedUnlimited
API requests250K/mo1M+/moCustom
Bandwidth10GB/mo100GB/moCustom
Admin users3UnlimitedUnlimited
GROQ-powered webhooksNoYesYes

For a small project or early prototype, three free projects covers most needs comfortably.

Step-by-step setup

  1. Go to sanity.io and create a free account
  2. In your terminal, run npm create sanity@latest — this scaffolds a new Sanity project with Studio
  3. Follow the prompts: choose your project name, dataset name (production), and a starter template (Blog is a good starting point)
  4. Once created, cd into the folder and run npm run dev — your Studio opens at localhost:3333
  5. Log into the Studio and create a test document — click around to get a feel for the editor
  6. In your frontend project (e.g. Next.js), install the client: npm install @sanity/client
  7. Create a sanity.ts or sanity.js config file with your project ID and dataset name (both shown in your Sanity dashboard)
  8. Write your first GROQ query to fetch content and render it on a page

Your content team can now publish through the Studio while your frontend fetches the data via API.

Common questions

Is Sanity better than WordPress for a new project? For a developer-led project where someone on the team can set up the schema, yes — Sanity's developer experience is significantly better. WordPress makes more sense if the client already knows it or needs a large ecosystem of plugins.

Can I migrate from a Markdown/MDX blog to Sanity later? Yes. Sanity has import tools and the community has migration scripts. Many projects start with MDX files and move to Sanity when the content team grows. Build with MDX first and migrate when collaboration becomes the bottleneck.

What is Portable Text? Portable Text is Sanity's format for rich text (like the body of a blog post). Instead of raw HTML, it stores content as structured JSON that you render with a library. This means you control the styling completely and can embed custom components mid-document.

Do I need to deploy Studio separately? Sanity Studio can be deployed as a standalone app (to Vercel, Netlify, or Sanity's own hosting) or embedded directly into your Next.js app at a route like /studio. The embedded approach keeps everything in one repository.