Strapi, Payload, Directus, and Supabase take four different approaches to content management. They range from a batteries-included Node CMS and a TypeScript-native code-first framework to a database-first admin wrapper and a Postgres backend-as-a-service. The right choice depends on your database setup, your team's TypeScript skills, and whether editors need to work without developer help.

Key takeaways

  • Payload is the only platform with native, end-to-end TypeScript inference and no build step. Its Local API runs inside Next.js apps, the same setup used on the SleepDr.com migration that took Lighthouse scores from 35 to 94.
  • Directus wraps an existing SQL database with an auto-generated admin UI. It includes SSO, versioning, and AI tooling free, even when self-hosted.
  • Strapi has the largest plugin ecosystem and community of the four. This makes it the safer pick when editors need to build content types without developer help.
  • Supabase is a Postgres backend-as-a-service, not a CMS. It suits database-centric projects like the Not Another Sunday directory, which runs on Next.js 15, Supabase, and Vercel to manage 137,000 listings.
  • All four are free to self-host. Cloud pricing and gated features such as SSO, versioning, and AI vary by vendor.

Updated 15 August 2026: sources added, experience claims checked against our project record, summary added.

The headless CMS market is growing much faster than traditional content management platforms, as more teams separate content from presentation. But headless is not one architecture. It spans at least four distinct approaches. This comparison checks Strapi, Payload, Directus, and Supabase across twelve criteria, from TypeScript support and API design to self-hosting cost and migration paths.

Open Source CMS Comparison 2026: Strapi, Payload, Directus & Supabase

What does each CMS actually do differently?

Before diving into benchmarks, it helps to see the split in philosophy.

  • Strapi is the established Node.js platform with roughly 70,000 GitHub stars and the largest headless CMS community. It offers a visual Content-Type Builder, a plugin marketplace, and REST plus GraphQL out of the box. Strapi 5 added a full TypeScript migration and the Document Service API. This closed a gap that had pushed TypeScript-first teams toward other tools.
  • Payload is MIT-licensed and TypeScript-native. You define schemas in code, and those schemas generate the admin panel, API layer, and database tables. In version 3, Payload runs inside your Next.js app as a single deployable. No separate server, no HTTP overhead for content fetches. That Local API is a real architectural win. It removes a network hop entirely. We used this pattern on the SleepDr.com migration from WordPress to Next.js 15, Payload CMS, and Supabase, which took Lighthouse scores from 35 to 94.
  • Directus takes a database-first approach. Point it at an existing Postgres, MySQL, MariaDB, MS SQL, OracleDB, or SQLite database and it builds a full admin UI, REST API, and GraphQL endpoint on its own (see the Directus documentation). No migration scripts, no schema duplication. If you already have a production database, Directus is the fastest way to get a CMS-style interface on top of it.
  • Supabase is not a CMS in the usual sense. It is a Postgres backend-as-a-service with auth, storage, edge functions, and real-time subscriptions built in. When paired with Supabase Studio and a front-end framework, it can act as a CMS, but you build that content editing layer yourself. Check the Supabase documentation for the full scope of what it offers out of the box.

Open Source CMS Comparison 2026: Strapi, Payload, Directus & Supabase - architecture

How do they compare on technical fundamentals?

Feature Strapi Payload Directus Supabase
Core approach Batteries-included Node stack Code-first TS schemas DB-first SQL wrapper Postgres BaaS + realtime
Databases Postgres, MySQL, MariaDB, SQLite Postgres, MongoDB 10+ SQL options Postgres only
API support REST + GraphQL Local API + REST + GraphQL REST + GraphQL PostgREST + realtime
Admin UI Polished for non-devs Dev-focused, generated from code Highly customizable, auto-generated No native CMS UI
TypeScript Full support since v5 Native, schemas are TS Partial SDK is TS-typed
Self-hosting Yes, free Yes, free (MIT) Yes, free Yes, free tier available

In production Next.js builds, Payload's Local API tends to return collection queries faster than REST-based calls because it skips the HTTP round trip entirely. Strapi and Directus both run well over REST for most production workloads. Supabase's PostgREST layer benefits from Postgres's native query planning, which keeps response times competitive without a separate ORM layer.

Webhook volume is another area where the four differ. Strapi and Directus both queue webhook events well at scale. Supabase's edge functions handle high webhook volume well too. Payload's webhook system works too, but high sustained delivery can block the Next.js event loop unless you add your own queue logic.

TypeScript inference is where one platform fell short. Strapi v4's types were mostly manual. Version 5 improved this a lot with the Document Service API, but inference from content types still needs code generation steps that Payload handles natively. If your team wants full type safety without a build step, Payload is the only option that gives you that out of the box.

Which CMS fits which team?

This is where we get opinionated, based on real builds such as the SleepDr.com migration to Next.js 15, Payload CMS, and Supabase and the Not Another Sunday directory built on Next.js 15 and Supabase.

Choose Strapi when:

  • Your content team needs to create and change content types without a developer present
  • You want the largest set of pre-built plugins for auth, media, SEO fields, and i18n
  • You are building a fresh database from scratch and want community support for common patterns

For a deeper head-to-head, read our Payload 3.0 vs Strapi v5 comparison.

Choose Payload when:

  • Your team is TypeScript-first and works mainly with Next.js
  • You need the Local API's low-latency content fetching for content-heavy pages
  • You want MIT licensing with no feature gates. SSO, versioning, and access control are all free

If you are currently on Strapi and hitting walls, we wrote a migration guide: When You've Outgrown Strapi CMS: Building with Payload + Supabase.

Choose Directus when:

  • You have an existing SQL database that other systems already rely on
  • You need to expose that data to non-technical editors without disrupting the underlying schema
  • AI features matter and you do not want them locked behind an enterprise plan. Directus lets you bring your own API keys

Our detailed breakdown lives here: Payload CMS vs Directus 2026: Code-First or Database-First?.

Choose Supabase when:

  • Your app is database-centric and needs real-time subscriptions, auth, and storage in one service
  • You are fine building or adopting a custom content editing UI
  • You need row-level security rules that go beyond what typical CMS role systems offer

What does each one cost in production?

Pricing shifts depending on whether you self-host or use the vendor's cloud.

CMS Self-hosted Cloud starter What's included free What costs extra
Strapi Free (OSS) $29/mo Cloud Core CMS, community plugins Content versioning, SSO on cloud
Payload Free (MIT) $35/mo Cloud All features, no gates Infrastructure if self-hosted
Directus Free (OSS) $15/mo Cloud SSO, versioning, AI tooling Higher-tier cloud resources
Supabase Free tier $25/mo Pro Auth, storage, edge functions Bandwidth and storage overages

Directus and Payload lead this comparison on flexibility and self-hosting value. Directus's pricing page shows SSO, versioning, and AI tooling included free even on self-hosted setups. Comparable features sit behind paid tiers on Strapi Cloud. Strapi is still a solid fallback for simpler projects, though advanced features cost more there. Total cost of ownership over 12-24 months, including infrastructure, development hours, and support, usually matters more than any single tier's sticker price.

For a three-way backend comparison, see our breakdown of Directus vs Payload vs Supabase.

How do migration paths compare when schemas change?

Schema changes mid-project happen often. They are not rare. Here is how each platform handles them:

  • Strapi creates migration files when you change content types through the admin UI or code. Rolling back needs manual work. Schema changes in production need a deploy cycle.
  • Payload treats schemas as code. You change a TypeScript file, redeploy, and the database syncs. Rollback is a git revert. This is the cleanest migration story of the four.
  • Directus reflects the database directly. You change the SQL schema with standard migration tools (Knex, Prisma, raw SQL) and Directus picks up the changes. No special migration layer to learn.
  • Supabase uses standard Postgres migrations. The Supabase CLI creates migration files, and you can version them in git. Simple if your team knows Postgres.

What about multi-tenant auth and custom workflows?

Multi-tenant auth and custom editorial workflows come up often. They are not edge cases. Here is how each platform handles them:

  • Strapi's role-based access control is detailed and covers most editorial workflows. Multi-tenancy needs community plugins or custom middleware. Doable, but not built in.
  • Payload's access control is set in code alongside your schemas. Multi-tenant patterns are just a config file away. Custom publication workflows use hooks and field-level access functions.
  • Directus offers roles, permissions, and custom flows through its visual automation builder. Multi-tenancy works through permission scoping per role. Non-developers can build approval workflows without code.
  • Supabase's row-level security rules in Postgres handle multi-tenancy natively. Editorial workflows, drafts, approvals, and scheduled publishing are things you build yourself.

Which platforms are production-ready for the broader Jamstack ecosystem?

All four are production-ready. The real question is which ecosystem surrounds them. For teams looking beyond these four, our Jamstack CMS Comparison 2026 covers Sanity, Contentful, Storyblok, and Hygraph alongside Payload and Strapi. And for the full side-by-side of all four open-source options here, we keep a living comparison at Open Source CMS Comparison 2026.

Our verdict

Directus and Payload stand out most in 2026 comparisons. Payload wins when the team is TypeScript-native and the project lives in Next.js. On the SleepDr.com migration, pairing Next.js 15 with Payload CMS and Supabase took Lighthouse scores from 35 to 94. Directus wins when there is an existing database or when non-technical users need to build workflows without developer help. Strapi is the safe bet when community size and plugin choice matter more than other concerns. Supabase is the right call when the project is really a database app that happens to need some content management added on, as with the Not Another Sunday directory, which runs on Next.js 15, Supabase, and Vercel to manage 137,000 listings.

None of them is a bad choice. The wrong choice is picking one without knowing what your team and your editors actually need.

Frequently asked questions

Which open-source CMS has the best TypeScript support?

Payload CMS is TypeScript-native. Schemas, hooks, and access control are all written in TypeScript with full inference. Strapi v5 added TypeScript support through its Document Service API, but type generation needs an extra build step. Payload gives you full type safety without that overhead.

Can Supabase replace a traditional headless CMS?

Supabase can handle CMS-like duties when paired with a custom front-end editing layer. It excels at auth, real-time data, and row-level security. However, it lacks a native content editing UI, scheduled publishing, and editorial workflows, so your team will need to build or adopt those features separately.

Is Directus or Strapi better for self-hosting on a budget?

Both are free to self-host. Directus includes SSO, content versioning, and AI tooling at no extra cost, while Strapi gates some of those behind paid cloud plans. On a $40/month VPS, Directus gives you more enterprise-grade features out of the box, making it the stronger value for budget-conscious self-hosting.