Skip to content

Best Open Source Headless CMSs of 2026

Updated · 3 picks · live pricing · affiliate disclosure

MIT-licensed Node.js OSS with around 62k GitHub stars; the largest plugin marketplace in OSS headless CMS.

BEST OVERALL6.0/10$1,008/yr more

Strapi

MIT-licensed Node.js OSS with around 62k GitHub stars; the largest plugin marketplace in OSS headless CMS.

Community MIT free forever; cancel Cloud anytime

How it stacks up

  • Community MIT free

    vs Payload TypeScript-first

  • Cloud Essential $15/project

    vs Directus BSL SQL wrapper

  • ~62k GitHub stars

    Mainstream MIT pick

#2
Payload5.8/10

From $35/mo

View
#3
Directus5.7/10

From $15/mo

View

All picks at a glance

#PickBest forStartingScore
1StrapiBest mainstream MIT OSS, Node.js with largest plugin marketplace$15.00/mo6.0/10
2PayloadBest TypeScript-first MIT OSS, code-first config$35.00/mo5.8/10
3DirectusBest BSL OSS for existing SQL data$15.00/mo5.7/10

Quick pick by use case

If you only have thirty seconds, find your situation below and skip to that pick.

Compare all 3 picks

Top spec
#1Strapi6.0/10$99.00/mo$1,188.00/yr$1,008/yr moreCommunity MIT free
#2Payload5.8/10$35.00/mo$420.00/yr$240/yr moreOSS MIT free self-host
#3Directus5.7/10$49.00/mo$588.00/yr$408/yr moreCommunity BSL free
#1

Strapi

6.0/10$1,008/yr more

Best mainstream MIT OSS, Node.js with largest plugin marketplace

MIT-licensed Node.js OSS with around 62k GitHub stars; the largest plugin marketplace in OSS headless CMS.

PlanMonthlyAnnualWhat you get
CommunityFreeMIT-licensed self-hosted Node.js with REST + GraphQL APIs and plugin marketplace; free forever
Cloud Essential$15.00/mo$180.00/yr$15 per project a month for hosted Strapi with auto SSL, CDN, and standard support
Cloud Pro$99.00/mo$1,188.00/yr$99 per project a month with higher resource limits, custom domain, and priority support
Cloud Team$499.00/mo$5,988.00/yr$499 per project a month with higher concurrency, audit log, SSO, and dedicated support
EnterpriseCustomCustomCustom pricing with on-prem or Cloud, SAML SSO, RBAC, and premium support

Strapi is the mainstream MIT OSS pick and the largest community in the OSS headless CMS lineup. Founded 2015 in Paris by Aurélien Georget, Pierre Burgy, and Jim Laurie. Around 62,000 GitHub stars by 2026; the largest plugin marketplace covers authentication, payments, search, analytics, and form integrations beyond the core CMS. The wedge: MIT permissive license allows all commercial use including SaaS resale and white-label deployments at any revenue level.

Community is MIT-licensed Node.js free forever for self-hosted deployment with REST and GraphQL APIs. Cloud Essential is the cheapest paid tier at fifteen dollars per project monthly with hosted Strapi, auto SSL, and CDN. Cloud Pro adds higher resource limits at the upgrade tier. Self-host on Kubernetes is a common cost-control path above Cloud Pro pricing.

The trade-off versus Payload is TypeScript posture; Strapi added TypeScript in v4 (2022) but JavaScript runtime is primary. The trade-off versus Directus is database choice; Strapi runs on a single dedicated database while Directus wraps any existing SQL database. For OSS readers who want the broadest plugin ecosystem and accept JavaScript-primary runtime, Strapi is the right call.

Pros

  • MIT permissive license; all commercial use allowed at any revenue level
  • Around 62,000 GitHub stars and the largest plugin marketplace in OSS headless CMS
  • Community tier free forever for self-hosted deployment with REST and GraphQL APIs
  • Cloud Essential at fifteen dollars per project for managed hosting upgrade
  • Founded 2015 in Paris; mature ecosystem and documentation

Cons

  • TypeScript runtime is secondary; JavaScript is primary versus Payload
  • Single dedicated database; not a wrapper around existing SQL like Directus
Community MIT freeCloud Essential $15/project~62k GitHub starsCommunity MIT free forever; cancel Cloud anytime

Best for: OSS readers who want the broadest plugin ecosystem and MIT permissive license without revenue-threshold tracking; agencies and growing orgs.

Modeling
9
API
8
Editor
8
Value
10
Support
7
#2

Payload

5.8/10$240/yr more

Best TypeScript-first MIT OSS, code-first config

TypeScript-first config with full type inference end-to-end; MIT-licensed since 2021.

PlanMonthlyAnnualWhat you get
OSSFreeMIT-licensed TypeScript-first self-hosted CMS with REST + GraphQL + Local API on PostgreSQL or MongoDB; free forever
Cloud Standard$35.00/mo$420.00/yr$35 per project a month for hosted Payload with database, auto SSL, and standard support; the realistic developer paid entry
Cloud Pro$199.00/mo$2,388.00/yr$199 per project a month with higher resource tier, custom domain, and priority support
EnterpriseCustomCustomCustom pricing with on-prem option, SAML SSO, RBAC, and premium SLA

Payload is the TypeScript-first MIT OSS pick and the cleanest path for teams running TypeScript end-to-end. Founded 2021 in the United States. Around 30,000 GitHub stars and growing fast on the TypeScript-first marketing pitch. The wedge for OSS readers: schema definitions ARE TypeScript types and flow through to API consumers without a manual type-generation step. The Local API allows direct database access from Server Components without an HTTP roundtrip.

OSS is MIT-licensed and free forever for self-hosted deployment with PostgreSQL or MongoDB. Cloud Standard is the cheapest paid tier at thirty-five dollars per project monthly with hosted Payload plus database. Cloud Pro adds higher resource limits at the upgrade tier. Most TypeScript-first teams stay on OSS self-host; managed Cloud is the upgrade when DevOps capacity becomes the bottleneck.

The trade-off versus Strapi is ecosystem maturity; Payload's plugin selection is smaller. The trade-off versus Directus is database choice; Payload supports Postgres or Mongo while Directus wraps any SQL. For OSS readers all-in on TypeScript who run Postgres or Mongo, Payload is the cleanest fit.

Pros

  • MIT permissive license; all commercial use allowed at any revenue level
  • TypeScript-first code-first config with full type inference end-to-end
  • OSS free forever for self-hosted deployment with PostgreSQL or MongoDB
  • Local API allows direct database access from Next.js Server Components
  • Cloud Standard at thirty-five dollars per project for managed hosting upgrade

Cons

  • Plugin ecosystem smaller than Strapi (around 30k stars versus 62k)
  • Database support limited to Postgres or Mongo; not a SQL wrapper like Directus
OSS MIT free self-hostCloud Standard $35/projectTypeScript-first 2021OSS MIT free forever; cancel Cloud anytime

Best for: OSS readers running TypeScript end-to-end on Postgres or Mongo who want code-first config and accept smaller plugin ecosystem.

Modeling
9
API
9
Editor
9
Value
10
Support
7
#3

Directus

5.7/10$408/yr more

Best BSL OSS for existing SQL data

BSL OSS that wraps any SQL database with REST and GraphQL APIs; free under five million dollars revenue.

PlanMonthlyAnnualWhat you get
CommunityFreeBSL-licensed free under $5M revenue; wraps any SQL database with REST + GraphQL APIs; self-hosted
Cloud Starter$15.00/mo$180.00/yr$15 a month per project for hosted Directus with Postgres, auto backups, and standard support
Cloud Professional$49.00/mo$588.00/yr$49 a month per project with higher resource limits, custom domain, and priority support
Cloud EnterpriseCustomCustomCustom pricing with single-tenant cluster, SLA, audit logs, and dedicated CSM

Directus is the BSL OSS pick and the right call for teams with existing SQL data who do not want to migrate. Founded 2004 in Brooklyn (originally a custom CMS, OSS in 2017). The wedge: BSL-licensed OSS wraps any Postgres, MySQL, SQLite, or SQL Server database with REST and GraphQL APIs. The schema is the database; admin UI is generated from existing tables. No other catalog pick offers this.

Community is BSL-licensed and free under five million dollars annual revenue for self-hosted deployment. Cloud Starter is the cheapest paid tier at fifteen dollars per project monthly with hosted Directus plus Postgres. Cloud Professional adds higher resource limits at the upgrade tier. Cloud Enterprise covers single-tenant cluster requirements. Around 28,000 GitHub stars by 2026.

The trade-off versus MIT picks is license posture; BSL is source-available rather than fully MIT. Agencies building white-label CMS deployments hit the threshold by aggregate client revenue; orgs growing past five million dollars revenue need a Directus commercial license. The trade-off versus Strapi is plugin ecosystem; Directus has fewer plugins. For OSS readers solidly under the BSL threshold with existing SQL data, Directus is the only catalog pick that meets the requirement.

Pros

  • BSL OSS wraps any existing SQL database (Postgres, MySQL, SQLite, SQL Server)
  • Free under five million dollars annual revenue; commercial license above
  • Cloud Starter at fifteen dollars per project for managed hosting upgrade
  • Schema is the database; admin UI generated from existing tables without migration
  • Founded 2004 in Brooklyn; OSS since 2017 with around 28k GitHub stars

Cons

  • BSL license requires commercial license above five million dollars revenue
  • Plugin ecosystem smaller than Strapi MIT or Payload MIT communities
Community BSL freeCloud Starter $15/projectWraps any SQL databaseCommunity BSL free under $5M revenue

Best for: OSS readers with existing SQL data solidly under five million dollars revenue who want a CMS UI without migrating data.

Modeling
9
API
8
Editor
7
Value
9
Support
7

How we picked

Each pick gets a transparent composite score from price, features, free-tier availability, and editor fit. Pricing flows from our live database, so when a vendor changes prices the score updates here too.

We weight price at 40 percent, the category feature checklist at 30 percent, free-tier availability at 15 percent, and editorial fit at 15 percent. Strapi leads because MIT license plus around 62k GitHub stars plus the largest plugin marketplace is the strongest community defensibility. See the parent /best/cms-headless guide for closed-source SaaS picks excluded from this lens.

We don't claim "30,000 hours of testing." Our methodology is the formula above plus the editor's published verdict for each pick. Verifiable, auditable, and updated when the underlying data changes.

Why trust Subrupt

We're a subscription tracker first, a buying guide second. Every claim on this page is something you can check.

By use case

Best mainstream MIT OSS

Strapi

Read the full review →

Best TypeScript-first MIT OSS

Payload

Read the full review →

Best SQL wrapper BSL OSS

Directus

Read the full review →

How to choose your Open Source Headless CMS

MIT vs BSL: why the license posture decides the right pick

MIT permissive license allows all commercial use including SaaS resale, white-label deployments, and any revenue level without restriction. Strapi and Payload are MIT. BSL (Business Source License) is source-available and free for commercial use under a revenue threshold; above the threshold a commercial license is required. Directus is BSL with a five million dollars annual revenue threshold. The decision matters for two audiences. Agencies building white-label CMS deployments hit the threshold by aggregate client revenue across their book; MIT is the safer choice. Larger orgs that may grow past five million dollars revenue need to either pre-commit to MIT or budget for the BSL commercial license. For solo developers and small businesses solidly under the threshold, BSL Directus is functionally free.

GitHub stars and ecosystem maturity

Community size is a proxy for plugin availability, documentation depth, and community-driven bug fixes. Strapi leads at around 62,000 GitHub stars in 2026 with the largest plugin marketplace covering authentication, payments, search, analytics, and form integrations. Payload follows at around 30,000 stars with rapid growth on the TypeScript-first pitch. Directus sits at around 28,000 stars with a mature ecosystem since 2017. KeystoneJS, Ghost, TinaCMS, and Decap are out-of-catalog picks frequently mentioned in OSS comparisons. The decision: Strapi is the safest community pick for orgs that prioritize ecosystem maturity. Payload is the safer pick for TypeScript-stack teams who want code-first config. Directus is the right call only when existing SQL data and the SQL-wrapper architecture matter more than ecosystem size.

Self-host operational tax across the three picks

Self-host is dollar-zero on licensing but readers pay infrastructure and operational labor. Strapi self-host needs Node.js plus a database (typically Postgres or Mongo); a small deployment runs on a single VPS at around twenty to forty dollars monthly per environment. Payload self-host needs Node.js plus Postgres or Mongo; similar economics. Directus self-host needs the Directus runtime plus the existing SQL database. Operational labor includes patching, backups, monitoring, on-call for incidents, and major-version migrations. For teams without DevOps capacity, the Cloud upgrades trade operational labor for managed hosting at fifteen to thirty-five dollars per project monthly. The realistic decision is whether the team values OSS license auditability enough to absorb the operational tax versus paying managed Cloud rates.

TypeScript posture: code-first vs dashboard-generated types

Payload is code-first; schema definitions ARE TypeScript types end-to-end with no manual type-generation step. Strapi added TypeScript in v4 (2022) with dashboard-generated types; the JavaScript runtime is still primary and types are derived from dashboard schemas via CLI. Directus generates TypeScript types from the existing SQL schema via CLI. The decision matters for TypeScript-strict teams. Code-first Payload eliminates the schema-to-types sync step that Strapi and Directus require. For teams comfortable running the codegen CLI as part of their build, Strapi or Directus work. For teams that want zero-friction TypeScript end-to-end, Payload is the cleanest fit.

When to pick a closed-source SaaS instead (cross-link to parent)

OSS self-host is the right path for teams that value auditable source code and accept the operational tax. Some teams have requirements that closed-source SaaS picks cover better. Real-time multi-user simultaneous editing in the studio is uniquely Sanity (closed-source SaaS); none of the OSS picks here ship this. Visual editing with live preview API at the marketer-led tier is Storyblok (closed-source SaaS). Mature App Framework with deep partner integrations at enterprise scale is Contentful. GraphQL-native federation across multiple sources is Hygraph. At any of those decision points, see [our /best/cms-headless guide](/best/cms-headless) for the closed-source picks that we exclude under the OSS lens.

Frequently asked questions

Why is Strapi ranked first over Payload?

Strapi wins on community defensibility: around 62,000 GitHub stars plus the largest plugin marketplace in OSS headless CMS is the strongest ecosystem profile. Payload wins on TypeScript-first depth. Teams that prioritize plugin availability pick Strapi first. TypeScript-first teams that prioritize code-first config pick Payload first. Both MIT, both genuinely free for self-host.

Does Subrupt earn a commission from these OSS picks?

On a few. We disclose this on every /best page. Self-host OSS (Strapi Community, Payload OSS, Directus Community) has no affiliate path because there is no transaction. Cloud upgrades on Strapi, Payload, and Directus have paid plans where we earn commission only on conversion. The composite ranking weights price at 40 percent, features at 30, free tier at 15, fit at 15; none tuned by affiliate rate.

Is BSL really open-source or is it closed-source in disguise?

BSL (Business Source License) is source-available, not OSI-approved open-source. Source is public and modifiable; commercial use under five million dollars annual revenue is free; above that threshold a commercial license is required. Strict OSS purists exclude BSL from open-source lists. Pragmatic readers include it because source is auditable and self-host is permitted. Readers who require strict OSI-approved licenses should pick Strapi or Payload MIT.

How does my agency stay free under BSL when serving many clients?

BSL applies to the entity using Directus, not the agency itself. If the agency builds white-label deployments for many small clients each well under five million dollars revenue, all deployments are free. If a client grows past the threshold, that client needs a Directus commercial license. The agency does not aggregate client revenue under BSL. For agencies with a few large clients, MIT Strapi or Payload removes the threshold concern entirely.

Are KeystoneJS, Ghost, TinaCMS, and Decap not OSS?

They are OSS but not in our modern-CMS catalog. KeystoneJS is MIT TypeScript-with-GraphQL. Ghost is MIT publishing platform with content API. TinaCMS is Apache visual editing on Markdown files in Git. Decap (formerly Netlify CMS) is MIT Git-based for static sites. From our catalog, Strapi, Payload, and Directus are the OSS headless CMS picks. Readers who specifically need those out-of-catalog projects should evaluate them directly.

Can I migrate from Contentful or Sanity to Strapi or Payload?

Yes. Contentful exports to JSON via the Content Management API. Sanity exports via @sanity/migrate to JSON. Strapi imports JSON via custom migration scripts; Payload imports via the Local API. Schema definitions need re-creation; Content Models map roughly to Strapi Collections or Payload Collections. Rich-text fields require manual conversion. Expect one to three weeks for a typical migration, longer for complex content with many cross-references.

EU data residency: which OSS picks store CMS data in the EU?

All three OSS picks self-host gives full control of where data lives, so EU residency is user-controlled on self-host. Strapi Cloud has multi-region with EU option. Payload Cloud has multi-region with EU option. Directus Cloud has multi-region with EU option. For EU-resident OSS use, all three self-host paths qualify; managed Cloud picks all offer EU regions on paid tiers.

How much community support do these projects actually get?

Strapi has the most active community by GitHub issue volume, Discord member count, and StackOverflow tag activity; the team responds within days on critical bugs. Payload has a smaller but fast-growing community concentrated on TypeScript-stack teams; the core team is responsive on GitHub Discussions. Directus has a mature community since 2017 with stable issue resolution. All three have paid support available on Cloud or Enterprise tiers; Community-tier support is community-driven.

How often is this guide updated?

We re-review pricing and feature changes annually at minimum, with mid-year refreshes when major vendor announcements happen. Strapi added TypeScript v4 in 2022. Payload graduated from open-beta to Cloud Standard pricing in 2024. Directus expanded BSL OSS license boundary to five million dollars revenue in 2023. The lastReviewed date reflects the most recent editorial pass.

Subrupt Editorial

The team behind subrupt.com. We track subscriptions, surface cheaper alternatives, and publish buying guides where the score formula is on the page so you can recompute it yourself. We do not claim 30,000 hours of testing. What we claim is live pricing from our database, a transparent composite score, and honest savings math against a category baseline.

Last reviewed

Citations

Affiliate disclosure: Subrupt earns a commission when you switch to a service through our recommendation links. This never changes the price you pay. We only recommend services where there's a real cost or feature advantage for you, and our picks are based on the data on this page, not on which programs pay the most.

Related buying guides

Track your subscriptions on Subrupt

Add the Open Source Headless CMS you pay for and see how much you'd save by switching.

Open dashboard

More buying guides

Independent rankings for the subscriptions worth paying for.

See all guides