Originally published on nomacms.com. I work on NomaCMS and ElmapiCMS.
Search for best headless CMS and you get the same pattern: a long list, a star rating table, and a conclusion that one vendor wins everything. Real projects rarely work that way. The right CMS depends on who edits content, who runs servers, whether you need end-user login, and what your frontend stack looks like.
This guide is a 2026 shortlist, not a sponsored ranking. We start with NomaCMS (hosted) and ElmapiCMS (self-hosted), which we build, then cover the platforms teams usually compare next: Sanity, Contentful, Strapi, Payload, Storyblok, and Directus. Use it to narrow the field, then run a one-week proof of concept before you commit.
Disclosure: NomaCMS and ElmapiCMS are built by the same team. We list them first because we wrote this guide, not because they win every use case. The competitor sections are the same shortlist we would recommend even if you never use either product.
How to read this guide
Before you compare logos, answer four questions:
- Who edits content? Developers only, or marketers and clients too?
- Who runs infrastructure? You want zero server work, or you want data on your own box?
- Do you need end-user auth? Signup, login, and sessions for customers or members, not just CMS editor accounts?
- How many sites or projects? One product, or an agency running five to ten similar client builds?
Your answers matter more than GitHub stars. The table below is a starting point, not a verdict.
Quick comparison (2026)
| CMS | Hosting | Pricing model | API style | Standout strength | Main trade-off |
|---|---|---|---|---|---|
| NomaCMS | Cloud (SaaS) | From $15/mo, 7-day trial | REST + JS SDK | Hosted CMS with project auth built in, MCP for AI editors | Not in-repo; you rely on a hosted platform |
| ElmapiCMS | Self-hosted | $70 one-time license | REST + JS SDK | Multi-project from one install, Laravel stack, low idle RAM | You own servers, backups, and updates |
| Sanity | Cloud (SaaS) | Free tier + per-seat paid | GROQ + GraphQL | Flexible schema, real-time studio | Studio setup and query model take learning |
| Contentful | Cloud (SaaS) | Free tier + usage/seat tiers | REST + GraphQL | Enterprise governance, mature ecosystem | Cost scales with seats and usage |
| Storyblok | Cloud (SaaS) | Free tier + paid plans | REST + GraphQL | Visual editor for marketers | Less natural for code-first teams |
| Strapi | Self-hosted or cloud | OSS self-host + paid cloud | REST + GraphQL | Large plugin ecosystem | Ops and RAM per deployment |
| Payload | Self-hosted (typical) | OSS + optional cloud | REST + GraphQL + local API | TypeScript-first, lives in your app repo | Code-centric; editors need guardrails |
| Directus | Self-hosted or cloud | OSS self-host + paid cloud | REST + GraphQL | Database-first over existing SQL | Greenfield content products need schema ownership |
Pricing changes often. Treat numbers as directionally correct and check each vendor before you buy.
NomaCMS (hosted, auth + AI in one platform)
NomaCMS is a hosted headless CMS with project auth built in. Model collections and fields in the dashboard, deliver content over REST and @nomacms/js-sdk, and run end-user signup, login, sessions, and profile in the same platform instead of adding a second auth vendor.
It also ships MCP server and agent skills so Cursor, Claude Code, and other MCP clients can work with your schema and content without re-pasting docs every session. Dashboard AI covers drafts, inline field edits, and one-click translation across locales.
Best for:
- Next.js, Nuxt, or Astro apps that need content and logged-in users
- Solo devs and small teams that want no CMS server to maintain
- AI-era builders using MCP from the IDE
- Agencies that want one cloud project per client with isolated schema, assets, and API keys
Watch for:
- Not a fit if you need the CMS schema files inside your Git repo (Payload-style)
- You are betting on one hosted vendor for both content and end-user auth
- Enterprise-scale editorial approval chains on day one may need a heavier platform
Pricing: Basic from $15/mo with a 7-day free trial (no card required). Core features (REST API, SDK, MCP, project auth, webhooks, locales) are on every plan.
Learn more: Headless CMS overview · CMS for Next.js · Project auth · MCP server
ElmapiCMS (self-hosted, multi-project from one install)
ElmapiCMS is a self-hosted headless CMS on Laravel 12 with a React + TypeScript admin. You install it on your VPS, shared hosting, or Laravel Cloud; you own the database and files.
The agency-friendly angle is multi-project from one installation: separate projects per client with isolated collections, API keys, and user permissions, without spinning up a new CMS server for every site. A $70 one-time license (CodeCanyon) replaces per-seat SaaS fees when you run many similar client builds on your own infrastructure.
Editor features include 14+ field types, asset library with image crop, locales, webhooks, dashboard AI (bring your own OpenAI/Anthropic/Gemini key), and an MCP server for AI editors. Frontend starter templates cover Next.js blog and landing demos.
Best for:
- Agencies and freelancers comfortable running PHP/Laravel hosting
- Teams that want predictable long-term cost across many client sites
- Developers who prefer data ownership and direct server access
- Stacks where lower idle RAM matters vs many Node CMS processes
Watch for:
- You own backups, security patches, and uptime
- End-user auth for your app is not built in the way NomaCMS project auth is; you integrate auth separately or choose NomaCMS for that path
- Requires PHP 8.4+, MySQL/MariaDB/Postgres, and a web server configured for Laravel
Pricing: $70 one-time license plus your hosting costs.
Learn more: Documentation · Demo · Multi-client workflow guide
NomaCMS vs ElmapiCMS
Same headless model, different ops tradeoff:
| NomaCMS | ElmapiCMS | |
|---|---|---|
| Hosting | We run it | You run it |
| Cost shape | Monthly SaaS from $15/mo | $70 once + hosting |
| End-user auth | Built in (project auth) | Not included; bring your own |
| Multi-client | Separate cloud projects | Separate projects, one install |
| AI in IDE | Official MCP + agent skills | MCP server |
| Best when | Ship fast without servers; app needs login | Own infrastructure; many client sites |
Many teams pick NomaCMS for product apps with members or customers, and ElmapiCMS for client marketing sites where the agency already runs PHP hosting and wants one CMS for ten projects.
Also worth comparing
These platforms show up in almost every headless CMS shortlist:
Sanity: Flexible schema and GROQ querying; strong for dev-led teams. End-user auth is still separate (Clerk, Auth0, etc.).
Contentful: Enterprise governance and localization at scale. Cost adds up across many small sites.
Storyblok: Visual editing for marketers. Less natural when you want the CMS entirely in TypeScript next to the app.
Strapi: Familiar Node self-hosted option with a large plugin ecosystem. Multiple client sites often means multiple installs unless you design for it.
Payload: TypeScript-first, often embedded in a Next.js repo. Great for code-first teams; editors may need more process.
Directus: Database-first over existing SQL. Strong when tables already exist; greenfield marketing sites need clear schema ownership.
Best headless CMS by use case
| You need… | Strong options to evaluate |
|---|---|
| Hosted CMS + end-user auth in one place | NomaCMS |
| Self-hosted, many client projects, one install | ElmapiCMS, Directus (different model) |
| AI editor workflows (MCP) | NomaCMS, ElmapiCMS, Sanity (platform AI) |
| Enterprise governance and many editorial seats | Contentful, Contentful-class alternatives |
| Visual page building for marketers | Storyblok, Prismic |
| Maximum schema flexibility (dev-led) | Sanity, Payload |
| Open-source Node self-hosting | Strapi, Payload |
| Existing SQL database as source of truth | Directus |
| TypeScript CMS inside your Next.js repo | Payload |
What to try before you commit
Whatever platform you lean toward, spend one week on real work:
- Model one collection you will actually ship.
- Fetch it in your frontend (Server Component, Astro page, or Nuxt route).
- Publish a change and confirm cache, webhook, or rebuild behavior.
- If the app needs login, prototype one auth flow on day two, not month two.
For NomaCMS: 7-day free trial · Quickstart · Next.js guide
For ElmapiCMS: Documentation · Demo
Bottom line
The best headless CMS in 2026 is the one that matches your hosting appetite, editor workflow, and auth story. Sanity and Contentful still lead for large editorial and enterprise patterns. Strapi, Payload, and Directus remain the core self-hosted shortlist. Storyblok wins when marketers need visual composition.
Full version with competitor detail: nomacms.com/blog/best-headless-cms-in-2026
Questions welcome in the comments.
Top comments (0)