Strapi vs Contentful vs Sanity—Headless CMS Licensing & SaaS Cost — what do I need to change?
Content-driven platforms must choose between Strapi (open-core MIT license, self-hosted ops burden), Contentful (SaaS-only with a $300/month Lite tier, hard API caps, and no self-hosting), and Sanity (managed cloud, GROQ-first, $15/seat/month Growth tier). License model, deployment architecture, and total cost vary dramatically across the three options.
Blockers
- Lock-in via capability/saas-only
- Lock-in via protocol/groq
- Lock-in via capability/mutation-api
Who this is for
- cost-sensitive
- enterprise
- small-team
- low-ops
- compliance
- high-scale
Candidates
Strapi
As of 2026-03-16, Strapi v5 follows an open-core model: the Community tier is free under the MIT license (self-hosted, unlimited entries, REST and GraphQL APIs, community support). The Growth tier costs $45/month for 3 seats (+$15/month per additional seat) and adds Strapi AI, live preview, releases, and content history. The Enterprise tier (custom pricing) adds SSO, review workflows, audit logs, and SOC 2 compliance. Strapi Cloud is a separate managed hosting product with plans from a free Developer tier through Essential, Pro ($75/month), and Scale ($375/month).
When to choose
Best for cost-sensitive + small-team or enterprise teams that require full data ownership, no per-seat API charges at the CMS layer, and freedom to deploy on any infrastructure. The MIT-licensed Community tier is the decisive advantage when self-hosting is non-negotiable. Move to Growth when editorial features—live preview and content history—are required without yet needing SSO or audit logs.
Tradeoffs
Free MIT self-hosting with no usage caps is unmatched among the three options. REST and GraphQL APIs are both included at the Community tier. Open-source codebase enables deep customisation and zero vendor lock-in on the CMS layer. However, self-hosting carries a real ops burden: provisioning, monitoring, backups, and version upgrades are all team responsibilities. Enterprise features such as SSO, audit logs, and review workflows require purchasing and activating a per-project license key even on self-hosted deployments and involve a sales engagement. Strapi Cloud removes the ops burden but adds per-project monthly hosting costs on top of the CMS tier fee.
Cautions
Enterprise features on self-hosted instances are not self-serve—a license key must be purchased and activated per project through a sales process. The Growth plan's per-seat overage pricing (+$15/month per seat beyond 3 included) compounds quickly for larger editorial teams. Strapi Cloud hosting is priced per project separately from the CMS license tier; always account for both costs together and verify current Cloud plan limits at strapi.io/pricing-cloud before comparing total cost to Contentful or Sanity.
Contentful
As of 2026-03-16, Contentful is SaaS-only with no self-hosting option. The Free tier is $0/month and includes 10 users, 2 roles, 2 locales, 100K API calls/month (hard cap with no overages), 50 GB CDN bandwidth/month, and 1 Starter Space. The Lite tier costs $300/month and raises limits to 20 users, 3 roles, 3 locales, 1M API calls/month, and 100 GB CDN bandwidth/month. The Premium tier is custom-priced with unlimited users, roles, locales, and API calls plus 24/7 support and dedicated customer success. APIs include a REST Content Delivery API (CDN-served), a read-write Content Management API, a Content Preview API, and a GraphQL Content API that auto-regenerates schema on content type changes. EU data residency is supported for compliance-sensitive workloads.
When to choose
Best for enterprise or high-scale teams that require a polished, fully managed editorial platform with zero infrastructure overhead and can absorb a minimum $300/month SaaS commitment at the Lite tier. The decisive factor is whether Contentful's structured multi-locale, multi-role workflow depth justifies the cost—its space model at Lite and above is more opinionated and governance-ready than Strapi Community or Sanity Free. EU data residency availability makes it viable for compliance-driven European deployments.
Tradeoffs
Fully managed with no infrastructure to operate. GraphQL Content API regenerates schema automatically when content types update, reducing developer maintenance overhead. Rich internationalization with locale-scoped publishing is built in. Vendor lock-in is high—SaaS-only architecture means no self-hosting path and migrating off requires exporting all content models and entries. The Free tier's hard 100K API call cap with no overage option makes it unsuitable for any production traffic beyond light prototyping. Personalization, AI Actions, and Studio add-ons each require a Premium plan and carry separate custom pricing layered on top of the base subscription.
Cautions
The Free tier's 100K API call hard cap has no overage path—requests are blocked outright when the limit is reached rather than throttled, so a production site on the Free tier can become completely inaccessible mid-month with no advance warning. Premium tier pricing is entirely opaque and requires a direct sales conversation; verify actual costs before committing to any production architecture. Add-on products including Personalization, AI Actions, and Studio each require a Premium base plan and separately negotiated pricing that is not listed publicly.
Sanity
As of 2026-03-16, Sanity is a managed cloud CMS with no self-hosting option. Its primary query language is GROQ (a Sanity-proprietary syntax); a GraphQL API is available for queries and sorting but does not support mutations. The Free tier ($0) includes up to 20 seats, 2 permission roles (Administrator and Viewer only—no Editor or Contributor roles), 2 public-only datasets, 10,000 documents, and hard caps with no overages. The Growth tier ($15/seat/month, up to 50 seats) adds 5 permission roles, private datasets, 25,000 documents, AI Assist, scheduled drafts, and pay-as-you-go overages. The Enterprise tier is custom-priced and includes SAML SSO, dedicated support, custom SLAs, and a Media Library.
When to choose
Best for small-team or enterprise developers who want a real-time collaborative, code-first CMS—Sanity Studio is built in React with schema defined as TypeScript—and are willing to learn GROQ as the query language. The $15/seat/month Growth tier is substantially cheaper than Contentful Lite ($300/month flat) for teams with fewer than approximately 20 editorial seats, making it the cost-sensitive choice for developer-led content teams that do not require self-hosting.
Tradeoffs
Real-time multiplayer editing in Sanity Studio, Portable Text for structured rich content, and schema-as-TypeScript are strong developer-experience differentiators. AI Assist is included in the Growth tier at no additional charge. Per-seat pricing favours small editorial teams compared to Contentful's flat Lite fee. No self-hosting option means all content lives in Sanity's managed Content Lake. GROQ is proprietary—migrating to another CMS requires rewriting all content-fetching queries. GraphQL API supports reads but explicitly excludes mutations, so write operations must use Sanity's proprietary Mutation API regardless of GraphQL adoption. Free tier restricts roles to Administrator and Viewer only, blocking editor and contributor workflows without a Growth upgrade.
Cautions
Free and Growth Trial plans have hard caps that block access entirely when quotas are reached—API and CDN requests halt at 100% rather than being throttled, so a hard-capped plan can cause a production site to go dark mid-month. Downgrading from Growth to Free triggers immediate overage charges if prior usage exceeds Free plan limits. GROQ is a Sanity-proprietary query language: migrating content delivery to another CMS requires rewriting every content query. GraphQL mutations are not supported—all programmatic content writes must use Sanity's proprietary Mutation API, meaning standard GraphQL client tooling cannot be used for content authoring or automated content updates.
Try with your AI agent
$ npm install -g pocketlantern $ pocketlantern init # Restart Claude Code, Cursor, or your MCP client, then ask: # "Strapi vs Contentful vs Sanity—Headless CMS Licensing & SaaS Cost — what do I need to change?"