Sanity CMS: why I chose it for client projects
After evaluating a dozen CMS options, Sanity became my default for headless projects. Here's what convinced us - and what I wish were better.

How do you pick a CMS that you won't regret in three years? If you're choosing a CMS, you probably already know this is a decision with long-term consequences. Remember, your team lives in the CMS daily, and if it's difficult or frustrating, that frustration compounds over months and years. I spent a good chunk of 2022 evaluating options for my headless builds, Contentful, Strapi, Storyblok, Prismic, Hygraph, Payload, and Sanity, and Sanity came out on top. Six projects later, I'm still confident in that choice, though it's not without trade-offs.
What won me over
Sanity's content modelling is genuinely excellent. You define your content schemas in code, JavaScript files that describe your document types, their fields, and their relationships. This means your content model lives in version control alongside your frontend code. When you need to add a field or restructure a document type, you change a file, commit it, and deploy. No clicking through a web UI, no fear of accidentally breaking production.
The editing experience, Sanity Studio, is a React application that you host yourself (usually alongside your frontend). It's fast, customisable, and, crucially, clients actually like using it. The real-time collaboration works well, the media handling is solid, and the structured content approach means editors can't easily break layouts by pasting formatted text from Word.
GROQ, Sanity's query language, was initially off-putting (why not just use GraphQL?) but after using it properly, I'm a convert. It's more concise than GraphQL for most content queries, and the ability to shape your response exactly how your frontend needs it reduces the amount of data transformation you do in application code.
The pricing
Sanity's free tier is generous, more than enough for small sites. The Team plan at £79/month per project gives you more API requests, more storage, and additional Studio users. For clients who need it, the custom plans scale further. Compared to Contentful, which gets expensive quickly once you exceed the free tier, Sanity's pricing feels reasonable for the value.
What I wish were better
The learning curve for developers is steeper than something like WordPress or Strapi. Sanity's approach is powerful but opinionated, and it takes time to internalise the patterns. Documentation is extensive but sometimes assumes knowledge that newcomers don't have.
The hosted media pipeline (Sanity's image and file CDN) is good but not as configurable as dedicated services like Cloudinary. For most projects it's perfectly adequate, but for image-heavy sites with complex transformation needs, you might want to supplement it.
Content migration tooling could be stronger. Moving content between datasets or importing from another CMS requires writing custom scripts using their client libraries. It works, but it's not as smooth as platforms that have dedicated migration interfaces.
Who it's right for
Sanity is best suited for projects where structured content, developer experience, and editorial flexibility all matter. If your client needs a CMS they'll actually enjoy using, and your development team wants full control over the content model and frontend, it's hard to beat.
If you're evaluating CMS options for an upcoming project, I'm happy to share my experience in more detail, just get in touch.

Chris Ryan
Managing Director
17+ years in full-stack web development, most of it leading teams agency-side across e-commerce, CMS platforms, and bespoke applications. Specialises in infrastructure, system integration, and data privacy, with hands-on experience as a Data Protection Officer. Founded Innatus Digital in 2020 to offer the kind of honest, technically-led partnership that he felt was missing from the agency world.