Why Pricing Matters
The sticker price of a headless CMS is only part of the story. Total cost of ownership includes hosting, maintenance, scaling, and developer time. A "free" open-source CMS can cost more to run and maintain than a paid SaaS if you're paying for ops and upgrades. Conversely, per-seat or per-project cloud pricing can balloon once you add more teams or sites. Understanding how each vendor charges—and what's included—helps you pick a model that fits your budget and team size.
How We Compared Costs
We compared each CMS using the buying questions that actually change the decision: what it costs to start, what triggers the next pricing jump, how painful multi-project usage becomes, and whether the team pays in vendor fees or in ops time. That makes this page more useful for agencies and product teams than a simple "starts at" pricing roundup.
- Entry cost – the lowest practical way to launch a production project.
- Growth trigger – the limit that usually forces you into a more expensive plan.
- Multi-project impact – whether a second or tenth project multiplies cost.
- Operational burden – what your team absorbs when you choose self-hosted over SaaS.
Pricing Models Explained
Headless CMS vendors use a few common pricing models. Knowing them makes comparison easier.
- One-time license – Pay once, own the software. You self-host and pay only for infrastructure. Example: ElmapiCMS ($74).
- Open source + hosting – No license fee; you run the code yourself and pay for servers. Examples: Payload, Directus, Strapi (self-hosted).
- SaaS per-seat – Monthly fee per user/seat. Examples: Sanity Growth ($15/seat/mo).
- SaaS usage-based – Costs scale with API calls, bandwidth, storage, or assets. Examples: Strapi Cloud (tiered by API requests and storage), Contentful, Hygraph.
- SaaS per-project – Fixed monthly fee per project or environment. Example: Payload Cloud ($35/mo Standard).
1. ElmapiCMS


ElmapiCMS uses a one-time license: $74 once, then you own it. There are no per-project or per-user fees. One self-hosted install on Laravel 13 (PHP 8.4+) runs unlimited projects, so agencies can run many client sites without multiplying vendor cost. Hosting typically runs about $5–10/mo on a small VPS.
4.0 includes draft/publish, versioning, locales, built-in AI, an official MCP server, frontend auth, and templates for Next.js, Nuxt, and Astro. See pricing · Live demo
2. NomaCMS
NomaCMS is a managed, AI-native headless CMS. You get structured content, a REST API, a JavaScript SDK, and AI for writing, translation, and editing without running a CMS server. Plans start at $15 per month after a 7-day free trial. See nomacms.com for tiers and limits. Start free trial.
- Managed cloud with global CDN for assets and no server ops
- AI assistant, inline field actions, and one-click entry translation
- MCP server for AI editors (
npx -y @nomacms/mcp-server) - Project auth, webhooks, locales, and team workspaces on paid plans
Strapi

Strapi is free when self-hosted (open source). You pay only for your server. Strapi Cloud uses usage-based pricing with a free tier (non-commercial, 2,500 API requests/mo, cold starts) and paid tiers (Essential, Pro, Scale) that increase limits on API requests, storage, bandwidth, and backups. Note that paid CMS features like Content History, Review Workflows, and SSO require separate licensing on top of cloud hosting. Multiple projects mean multiple plans.
Payload CMS

Payload CMS is free and open source. You self-host and pay only for hosting. Payload Cloud offers a Standard plan at $35/mo (512MB RAM, 3GB database, 30GB file storage, 50M serverless RPUs) and a Pro plan at $199/mo (dedicated cluster, 30GB database, 150GB file storage, high-availability compute). Enterprise is custom. No per-seat or per-project software fees when self-hosted. Note: Payload has joined Figma, which may affect future cloud offerings.
Directus

Directus is free and open source. Self-host and you only pay for the server. Directus Cloud Professional starts at $99/mo (billed annually, 5 studio users, 75k DB entries, 250k API requests/mo). The former Starter tier ($15/mo) was retired in December 2025. Enterprise is custom with dedicated infrastructure. Self-hosting remains the cheapest option—Directus provides Railway templates for easy deployment.
Sanity

Sanity has a generous free tier (up to 20 seats, 2 public datasets, Content Agent included). The Growth plan starts at $15/seat/mo (up to 50 seats, comments, tasks, scheduled drafts, AI Assist). Enterprise is custom with SAML SSO, dedicated support, and SLA. Growth plan add-ons include SAML SSO ($1,399/mo), dedicated support ($799/mo), and extra datasets ($999/mo each). Pricing scales with seats and usage.
Contentful

Contentful offers a free tier (1 Starter Space, 100k API calls/mo, 2 roles, 2 locales). The Lite plan adds more API calls, bandwidth, and features. Premium unlocks AI Actions, Personalization, Studio, SSO, custom roles, SCIM, and dedicated infrastructure—pricing is custom. Contentful no longer publicly lists a flat $300/mo Team plan; current paid tiers are Lite and Premium. One of the more enterprise-oriented options.
Hygraph

Hygraph has a free Hobby tier (3 seats, 500k API calls, 2 locales, unlimited asset storage). The Growth plan starts at $199/mo (10 seats, 1M API calls, 500GB asset traffic, email support). Enterprise is custom with SSO, multitenancy, custom workflows, and up to 99.95% uptime SLA. GraphQL-native; pricing scales with usage.
Pricing Comparison Table
| CMS | Self-Hosted Cost | Cloud Cost | Per-Project Pricing | Free Tier | Best For |
|---|---|---|---|---|---|
| ElmapiCMS | $74 one-time + hosting | N/A | No (unlimited projects) | No | Agencies, multi-project |
| NomaCMS | N/A (cloud) | From $15/mo (check site) | Plan limits | Trial | Managed, AI-native |
| Strapi | Free (OSS) + hosting | Usage-based tiers | Yes (per project) | Yes (non-commercial) | Node.js teams, single project |
| Payload CMS | Free (OSS) + hosting | $35/mo Standard, $199/mo Pro | Yes (per project) | Yes (self-hosted) | TypeScript, complex apps |
| Directus | Free (OSS) + hosting | $99/mo Professional | Yes (per project) | Yes (self-hosted) | Existing DB, no lock-in |
| Sanity | N/A (cloud) | $15/seat/mo (Growth) | Per seat | Yes (20 seats) | Content teams, collaboration |
| Contentful | N/A (cloud) | Lite + Premium (custom) | Per space | Yes (100k API calls) | Enterprise, big budget |
| Hygraph | N/A (cloud) | $199/mo Growth | Per project | Yes (3 seats, 500k API) | GraphQL, content federation |
* Pricing accurate as of August 2026. Cloud and usage-based costs may vary.
Hidden Costs
Beyond the listed price, consider these cost drivers:
- Hosting – Self-hosted options need a server ($5–50+/mo depending on traffic and redundancy).
- Maintenance – Upgrades, security patches, and backups take time or money if outsourced.
- Scaling – SaaS plans often charge more for higher API usage, bandwidth, or assets.
- Migration – Moving later can mean re-integration and developer cost; lock-in has a price.
- Developer time – Setup, customization, and training all add to total cost of ownership.
Conclusion
Budget-conscious and multi-project? Self-hosted options usually win once you manage more than one production project. A one-time license like ElmapiCMS or free OSS tools such as Payload, Directus, and Strapi keep recurring software cost low, but ElmapiCMS is the clearest fit if your team wants one installation for many client or product projects.
Single project and want zero-ops? Payload Cloud ($35/mo), Directus Cloud ($99/mo), or Sanity's free tier are reasonable entry points when you value convenience over infrastructure control. Hygraph Growth ($199/mo) and Contentful Premium make more sense once enterprise workflow requirements matter more than cost minimization.
Free tier + scale later? Sanity, Contentful, and Hygraph can get you moving quickly, but their pricing model matters more after the pilot phase than before it. If you want predictable long-term cost and no per-project tax, a self-hosted setup usually wins. If you want the broader platform shortlist too, compare this page with our headless CMS ranking.