Sanity vs Contentful
Sanity
Best for structured content at scale
Priced per editor by the month, with the content model written as code and no charge for locales.
$15 / seat / mo
Growth, billed monthly
Contentful
Best for enterprise governance
A flat paid plan that stops at twenty users and three locales, then hands you to sales.
$300 / mo
Lite, up to 20 users
Sanity is cheaper for almost any team under twenty editors, and the reason is structural rather than promotional. Growth costs $15 a seat each month, so five editors cost $75. Contentful's first paid plan is a flat $300, however few people use it.
Twenty editors is where the two meet at $300, and it is also where Contentful's self-serve plan ends. Lite allows twenty users and three locales, with no add-on for either. The twenty-first person or the fourth language means an Enterprise quote.
Contentful earns that quote when governance is the actual requirement: SSO, EU data residency, custom roles and an uptime SLA. Sanity also keeps SSO and an SLA on Enterprise, so that list sends both of them to sales.
The workload most likely to turn the arithmetic around is heavy uncached traffic. Past the allowances, Sanity bills uncached requests at $40 a million and Contentful at $5. If your pages query the live API rather than a cache, model that before headcount.
- 01Contentful's usage terms bar its Free plan from commercial use, so a business site starts at $300 a month.
- 02Five editors cost $75 a month on Sanity Growth and $300 on Contentful Lite, four times more.
- 03Contentful Lite stops at 20 users and 3 locales with no add-on for either; Sanity does not charge for locales.
- 04Contentful's $300 plan still holds 10,000 records, the same as Free, and more room costs $850 a month.
- 05Sanity's API does not check writes against your schema, so content written outside Studio is only as valid as your own code.
Sanity vs Contentful looks like a choice between two hosted content platforms with similar feature lists. On a spec sheet, it mostly is. Both store structured content, serve it through a CDN and offer GraphQL, live preview and an MCP server. Both also keep single sign-on behind an enterprise contract.
Where they differ is in what makes the bill move. Sanity charges for each person who edits. Contentful charges for a plan, and the plan decides how many people, languages and projects you get before the price stops being published.
That makes this a headcount and localisation decision before it is a feature decision. It is the axis this page is built on. The sections on the content model and the editor come after it, because they matter most once the price has narrowed the field.
Every price below is the US price in dollars, read from sanity.io/pricing and contentful.com/pricing through a US connection on 17 September 2026. Plan limits come from each vendor's own documentation, read the same day. Nothing is converted from another currency.
For disclosure: this site runs on Payload, the featured pick in the headless CMS directory, which Figma has owned since 17 June 2025. Neither vendor on this page pays for placement, and no link here is an affiliate link.
Sanity vs Contentful, side by side
Every value in the first block comes from the same record that drives the directory listing, so this table cannot disagree with the cards. Accented tags are capabilities one side has and the other does not.
The same workload, priced both ways
Eight workloads, each priced at the plan it actually requires on both platforms. The trap in most comparisons is setting the free tiers against each other. Contentful's Free plan is not licensed for a commercial site, and Sanity's Free plan makes every editor an administrator.
Plan prices are the US prices in USD, read from sanity.io/pricing and contentful.com/pricing through a US connection on 17 September 2026. Sanity's overage is $1 per 250,000 CDN requests and $1 per 25,000 uncached ones. Contentful's is $5 per started million calls, and cached CDN responses are not counted, so its figure moves with your cache hit rate. Lite's user maximum and the commercial restriction come from Contentful's usage terms of 14 August 2026.
Sanity's pricing FAQ says it charges in US dollars, and any card works if the issuer will convert the charge. Contentful's usage terms set overage at $5 per million API calls in US dollars. Every price on this page is what a buyer in the US sees. Nothing is converted at an exchange rate, because a converted figure is not a price either vendor charges.
Where the pricing page and the invoice come apart
Not a list of limitations, which every comparison already carries. These are the five places where the published price is not the price you end up paying.
- Contentful
Free is not licensed for a live business site
Contentful's usage limits are dated 14 August 2026. They say the Free plan may only be used to test and learn the product, and may not support commercial use cases. So the working entry price for a company site is Lite at $300 a month, not $0. Treating the free tier as a launch plan risks suspension under Contentful's own terms.
- Contentful
The $300 plan adds people, not room for content
Lite includes one Starter space, which carries the same 25 content types, 2 environments and 10,000 records as the Free plan. The upgrade buys users, roles, one more locale, API volume and support. More room for content is the Lite Space at $850 a month, which takes the bill to $1,150. Lite allows only one of them.
- Contentful
Twenty users and three locales are ceilings, not starting points
Contentful's usage terms cap Lite at 20 users and list extra users as not available. The pricing page caps Lite at 3 locales. Neither limit has an add-on. The next step for either is Enterprise, which publishes no price. A team that expects to pass either number is pricing an enterprise contract from the first day.
- Sanity
Sanity's document quota is a wall, and drafts count against it
Sanity meters requests, assets and bandwidth on Growth, but not documents. At 25,000, counted across every dataset and including drafts, editors cannot create anything new, not even a draft. The fix is the $299 monthly quota add-on, a flat step rather than a rate. A staging dataset that mirrors production counts twice, which halves the room you thought you had.
- Both
Single sign-on turns either plan into a quote
Neither vendor sells SSO on a self-serve plan. Sanity lists SAML single sign-on on Enterprise only, and Contentful's plan table ticks SSO for Enterprise alone. If your security team requires it, the $15 seat and the $300 plan both stop mattering. The real comparison becomes two sales conversations with no published numbers on either side.
Where each self-serve plan runs out
Both vendors publish a free plan, one paid plan and a quote. The useful question is not which paid plan is cheaper. It is which of your requirements pushes you past the paid plan, because after that point neither vendor publishes a number.
On Contentful the list is short and close. The twenty-first user, the fourth locale, a third space, SSO, EU data residency, custom roles and an uptime SLA all sit on Enterprise. Workflows exist on Lite only inside the $850 Lite Space.
On Sanity the list starts further out. Growth runs to 50 seats and charges nothing for locales. Extra datasets cost $999 a month each, the price of 66 seats. SSO, custom roles, content releases, the audit log, an uptime SLA, invoicing and annual payment all need Enterprise.
That is why a Sanity vs Contentful comparison built on feature ticks misleads. Most of the ticks are shared. The difference is how many ordinary growth steps each plan absorbs before it asks for a sales call. Hiring an editor is one. Adding a market is another.
Write down your editor count and your language count for eighteen months from now. If either passes twenty users or three languages, you are comparing Sanity Growth with a Contentful quote, not with Lite.
How each one counts a request
Both vendors meter delivery, and they meter different things. The definitions are worth ten minutes before you model traffic, because the same site can look cheap on one and expensive on the other.
Sanity counts every HTTP request to its API CDN hostname and, separately, every request to its uncached API hostname. OPTIONS requests, failed requests and traffic from Sanity's own Studio and Dashboard are not billed. Requests made from inside a Sanity Function count like any other.
Contentful counts calls to its Delivery, Preview and Management APIs together, against one monthly allowance. Its usage terms say cached CDN responses generate no additional calls, so a high cache hit rate works as a direct discount.
The overage shapes differ too. Sanity bills $1 per 250,000 CDN requests and $1 per 25,000 uncached ones, so an uncached request costs ten times as much. Contentful bills $5 per started million, and its terms say it sets no cap on extra calls.
What happens at the limit differs most on the free plans. Sanity emails administrators at 80% and 100% of quota, and a Free project then stops serving content until someone upgrades or the month resets at midnight UTC. A Growth project keeps serving content past its request quota, and the excess is simply invoiced. Contentful's Free plan uses hard caps in the same spirit.
Find out what share of your requests will be cache hits. On Contentful a hit costs nothing. On Sanity every CDN request counts, and an uncached one costs ten times as much.
Schema in a pull request, or schema in the platform
Sanity keeps the content model in your repository. Schema types are code inside the Studio configuration, usually TypeScript, so a change is reviewed and deployed like any other code. Nobody adds a field from a settings screen.
The cost of that design is stated in Sanity's own documentation, updated 6 August 2026. The Content Lake is schemaless, and validation rules run only in Studio. Writes through the HTTP API, the client library, migrations or imports are accepted without any check.
So every script, integration or agent that writes content has to validate for itself. Sanity's CLI can check a whole dataset against the schema after the fact, which makes a sensible last step for any bulk import.
Contentful keeps the model in the platform. Admins edit content types in the web app. Teams that want the model in git write migration scripts for the Contentful CLI instead. Either way, the model is a server-side object the API knows about.
That has a practical consequence. Since 14 November 2024, Contentful's Management API refuses to publish an entry with an empty required field, even when the field is hidden. Environments and an environment alias come with every plan, so a model change can be tested on a copy first.
Who should be able to change the model? If the answer is a developer, through code review, Sanity's design fits. If an admin must be able to add a field this afternoon, Contentful's does.
Languages are a plan limit on one and a data shape on the other
Contentful treats a locale as a platform setting and counts it. Free allows two and Lite three, with no add-on for a fourth. Its plan table puts localised workflows and previewing by locale on Enterprise as well.
Sanity does not charge for locales at all. Its pricing FAQ says you can create as many as you like. The limit is unique attributes per dataset: 2,000 on Free and 10,000 on Growth.
That limit is where the real constraint hides. Sanity stores a translation as data inside a document. Its localisation guide shows that one object key per language adds a new attribute for every language. Arrays of language and value pairs avoid that, which is why its recommended plugin uses them.
Sanity also leaves the pattern to you. Field-level translation keeps every language in one document, so they publish together. Document-level translation gives each language its own document and its own publish button, joined by references.
The trade is plain. Contentful gives you localisation that works the day you enable it, then caps it. Sanity gives you as many languages as your attribute budget allows. In return, a developer has to choose the pattern, the plugin and the fallback query.
Five editors in four languages costs $75 a month on Sanity Growth. On Contentful it is past Lite's limit, so it is an Enterprise quote with no published price.
What editors get before anyone signs a contract
Sanity's Free plan already includes real-time collaborative editing, presence, live preview, visual editing and the Presentation tool for page building. Growth adds comments, tasks and scheduled drafts, and keeps draft history for 90 days instead of 3.
The catch is that Studio is a React application your team owns. It can be customised almost without limit, and somebody has to maintain it, upgrade it and fix it when a plugin breaks. Sanity will host a deployed Studio for free, but it does not maintain your code.
Contentful's plan table ticks live preview, the rich text editor, versioning, bulk editing, comments on entries and the tasks app on every plan. Lite adds comments on fields, presence indicators and the Launch app for releases.
The visual page builder is a different story. Contentful Studio, its drag-and-drop canvas, is sold only with Enterprise plans, and so are Timeline and localised workflows. Workflows on Lite exist only inside the $850 Lite Space.
One inconsistency is worth checking in a trial. Contentful's plan table ticks scheduled publishing and the tasks app on Free, while the Lite card lists both as things Lite adds. I would not plan around either reading until you have seen the Free editor yourself.
Every new Sanity project starts on a Growth trial. If nobody adds a card before it ends, the project drops to Free, private datasets become public and non-admin members become viewers.
What changed at Contentful on 1 September
Salesforce announced its agreement to buy Contentful on 1 June 2026. It completed the deal on 1 September 2026, according to the editor's note on Salesforce's own announcement. Contentful's pricing page now carries a banner saying it is officially part of Salesforce.
Salesforce says Contentful will be integrated natively across Customer 360 while preserving the composability developers expect. Co-founder Sascha Konietzke wrote on the same day that customers "remain our top priority". He committed to "the same level of innovation, flexibility, and enterprise-grade support".
Neither post says anything about pricing, contract terms or how long the self-serve plans will run. That is not evidence of a change. It is a reason to get renewal and price-protection terms in writing before signing a multi-year contract this year.
I found no comparable ownership event at Sanity to disclose. The practical advice is the same for both vendors. Keep content access behind a thin layer of your own code, because the query language and the SDK cost most to replace.
Pick each one when
Sanity
- Fewer than twenty people edit, and more of them only need to read.
- You need a fourth language without signing an enterprise contract.
- A developer will own the content model and wants it reviewed in pull requests.
Contentful
- Procurement wants SSO, EU data residency and an SLA, so a quote was coming anyway.
- Most of your traffic hits the API uncached, where $5 a million beats $40.
- An admin must be able to change the content model without a code deploy.
How this plays out once it is running
Most teams reach the Contentful vs Sanity decision after trying both free tiers, so start with the question those tiers hide. Is this a commercial site? If so, Contentful's real entry price is $300 a month. Sanity's is $0 for a team happy to make every editor an administrator.
Then count people, in two groups. Sanity charges only for people who edit, because the Viewer role takes no seat. Contentful caps Lite at twenty users and names no role outside that count. On its published terms, reviewers, legal and the marketing lead all take places.
Then count languages. A third market is fine on Lite. A fourth is an Enterprise conversation on Contentful and a modelling decision on Sanity, and those two have very different lead times.
Then look at traffic, which is where Contentful's pricing is kinder. Its overage is $5 a million, cached CDN hits are not counted, and extra bandwidth is $0.15 a GB against Sanity's $0.30. Sanity charges $40 a million for uncached requests past 250,000. At 2 million uncached requests a month, Contentful is cheaper from sixteen editors upward.
The pattern I would guard against is a team choosing on the editor demo and meeting the ceilings a year later. Sanity vs Contentful is settled faster with three numbers for next year: editors, languages and uncached requests. Price both plans against those.
The counter-case is real. If the organisation needs SSO, EU data residency, custom roles and a signed SLA, both vendors send you to sales. Contentful's governance tooling and partner network are what that money buys. There, choosing Sanity or Contentful stops being a question the published prices on this page can answer.
What neither Sanity nor Contentful does
- Neither one tells you what to publish. Both store and deliver whatever you model. Neither will say which twenty pages deserve to exist, and that is the decision that actually moves results.
- Neither sells single sign-on, custom roles or an uptime SLA on a self-serve plan. The moment a security review asks for any of them, both published price lists stop applying.
- Neither prices the cost of leaving. Content exports from both. Queries, rich text renderers and editor customisations are rewrites on either side, and neither vendor puts a number on that work.
- Neither checks whether content is any good. Sanity's API does not validate writes against the schema. Contentful's enforces field rules, which is not the same as knowing a page is accurate, current or worth reading.
- Neither replaces the person who owns the model. A clean schema decays when nobody decides what each new content type is for. That is as true at $15 a seat as at $300 a month.
Related comparisons
Sanity vs Strapi
One will never let you hold the database. The other will, and its MIT grant has conditions about exactly that.
- Headless CMS
- Platform vs specialist
SE Ranking vs Semrush
One bundles programmatic access into its cheapest plan. The other sells it on a plan more than four times the price.
- SEO APIs
- Platform vs platform
Exa vs Tavily
Both hand an agent page text with every search. One charges for each result past ten, the other for the call, and your settings decide which is cheaper.
- SEO APIs
- Specialist vs specialist
FAQ
Frequently asked
Can I run a commercial website on Contentful's Free plan?
Not under Contentful's own terms. Its usage limits, dated 14 August 2026, say the Free plan may only be used to test and learn the product. They add that it may not support commercial use cases. The first plan licensed for a live business site is Lite at $300 a month. I found no equivalent restriction in Sanity's terms.At what team size does Sanity Growth cost the same as Contentful Lite?
At twenty editors. Sanity Growth is $15 a seat a month, so twenty seats cost $300, which is Contentful Lite's flat price. Below twenty, Sanity is cheaper. Above twenty, Lite is no longer available, because it allows twenty users at most. The comparison then becomes Sanity Growth against a Contentful Enterprise quote.Is Sanity cheaper than Contentful for a small team?
For almost any team under twenty editors, yes. Five editors cost $75 a month on Sanity Growth against $300 on Contentful Lite. Sanity pricing vs Contentful pricing only reverses for heavy uncached traffic. Past the allowances, Sanity charges $40 per million uncached requests and Contentful $5. At 2 million uncached requests a month, Contentful is cheaper from sixteen editors.Do read-only reviewers count as users on Sanity and Contentful?
Not on Sanity. Its pricing page says users with the Viewer role do not consume seats and are always free, on every plan. Contentful's pricing page and usage terms name no equivalent exemption, and Lite allows twenty users in total. For a team with many reviewers, that difference can decide the plan before any feature does.How many languages can I publish in on Contentful Lite?
Three. Contentful's Free plan allows two locales and Lite allows three, and neither has an add-on for more. A fourth language means Enterprise, which has no published price. Sanity does not charge for locales, within a limit of 10,000 unique attributes per dataset on Growth.Which of Sanity and Contentful validates content written through the API?
Contentful, partly. Since 14 November 2024 its Management API refuses to publish an entry with an empty required field. Sanity's documentation says validation rules run only in Studio, and the Content Lake accepts API writes, migrations and imports without checking them. Its CLI can validate a whole dataset afterwards, which is worth running after any bulk import.What does Contentful's $300 Lite plan leave out?
Room for more content, for a start. Lite's included Starter space holds 25 content types, 2 environments and 10,000 records, the same as Free. More room is an $850 Lite Space. Lite also excludes SSO, EU data residency, custom roles, localised workflows, Contentful Studio and an uptime SLA, all of which sit on Enterprise.Can I pay annually for Sanity Growth or Contentful Lite?
Not for Sanity Growth. Sanity's pricing FAQ says self-serve plans are paid monthly only, with no minimum term, and annual payment and invoicing need Enterprise. Contentful's billing FAQ says Free and Lite are paid by card and invoiced each month, and it describes no annual option for Lite.What happens when Sanity's Free plan runs out of requests, compared with Contentful's?
On Sanity, requests stop. Its documentation says API and CDN requests fail with HTTP 402 once a Free project uses its monthly quota. The site then stops loading content until the month resets or someone upgrades. Studio keeps working. Contentful's Free plan also stops at its caps rather than billing overage.Did Contentful's prices move after Salesforce bought it?
Nothing on the pricing page says so. The deal completed on 1 September 2026. The US page read on 17 September still shows Free at $0 and Lite at $300 a month. Neither Salesforce's announcement nor the Contentful co-founder's post mentions pricing or contract terms, so get renewal terms in writing before a long commitment.