Open Source CMS Vergelijking 2026: Strapi vs Payload vs Directus vs Supabase
Een headless CMS kiezen in 2026 voelt als het kiezen van een JavaScript framework in 2018. Je hebt tonnen geweldige opties, maar de community is verdeeld in gepassioneerde (en soms luide) kampen. En laten we eerlijk zijn, als je de verkeerde kiest, kan je jezelf in een wereld van ellende bevinden met maanden migraties voor de boeg. Ben daar geweest, heb dat gedaan, heb de eeltplekken.
Ik heb real-world projecten op deze vier platforms uitgerold in de afgelopen paar jaar. Laat me je delen wat voor vergelijking ik wenste te hebben toen ik begon.
Strapi, Payload, Directus, en Supabase proberen allemaal dezelfde oplossing aan te pakken: ontwikkelaars een backend geven voor content zonder hen aan een specifiek platform vast te ketenen. Maar, oh boy, ze hebben elk hun unieke draai op wat dat betekent.

Waarom deze vier?
De headless CMS-markt schudde zichzelf flink uit in 2024. Ghost verschoof naar meer focus op newsletters, en Keystones community begon dunner te worden. Ondertussen houden Sanity en Contentful nog steeds stand, maar laten we eerlijk zijn, ze komen met hun eigen SaaS-ketenen.
Deze vier zijn de open-source helden met bloeiende communities en solide financiering erbij:
- Strapi: Het is de oude betrouwbare met een massale gebruikersbasis. Versie 5 is stabiel, en het gaat helemaal over TypeScript.
- Payload: De favoriete van ontwikkelaars. Dit gaat helemaal over code-first config en heeft Next.js omhelsd sinds versie 3.
- Directus: Zie het als een database-first tool. Het omwikkelt elke SQL-database met een API en admin panel. Netjes, hè?
- Supabase: Niet echt een traditionele CMS. Het is een BaaS die erin is gegroeid omdat het gewoon zo flexibel is.
Supabase vergelijken met de andere drie is een beetje als het vergelijken van een Zwitsers zakmes met een chef's mes. Ze zijn gebouwd voor verschillend gebruik, maar ontwikkelaars kiezen er steeds vaker tussen voor content-gebaseerde projecten, dus hier zijn we.
Architectuur en filosofie
Hier gaan ze echt hun eigen weg. Leer hun filosofieën kennen, en je bespaart jezelf flinke kopzorgen.
Strapi v5
Strapi heeft een grondige update gedaan voor versie 5. Het is gebouwd op Koa.js, gebruikt een document-gebaseerde content engine (tot ziens, oude entity service), en ondersteunt zowel REST als GraphQL meteen. Het admin panel is gebaseerd op React, en je kunt content types definiëren via een GUI of JSON schema-bestanden.
Strapls aanpak: Maak content aangenaam voor niet-technici met een slick admin panel terwijl je ontwikkelaars ruimte geeft om aan te passen zonder beperkingen. Het streeft ernaar het WordPress van headless CMS's te zijn.
Payload v3
Payload nam een moedige beslissing door volledig op Next.js opnieuw op te bouwen. Je Payload CMS is letterlijk een Next.js app. Het admin panel, API routes, en je frontend kunnen allemaal prettig in dezelfde repository zitten. Je configureert alles via TypeScript—geen GUI voor diegenen die naar visuele configuratie zoeken.
Payloads invalshoek: Code is koning. Als je het niet in TypeScript kunt uitdrukken, hoort het niet in je CMS config. Ontwikkelaars houden ervan; content editors, niet zo veel.
Directus v11
Directus onderscheidt zich door geen database te creëren maar er in plaats daarvan één om te wikkelen. Je wijst het naar een bestaande SQL-database, en voilà, het genereert een API en admin panel. Je kunt ook helemaal opnieuw beginnen en je schema opbouwen via Directus's GUI.
Directus's overtuiging: De database heerst oppermachtig. Je gegevensmodel's thuis is op databaseniveau, wat perfect is voor projecten met bestaande databases of waar gegevensintegriteit vitaal is op SQL-niveau.
Supabase
Supabase is als een open-source Firebase gebouwd op PostgreSQL. Het geeft je een database, auth, real-time subscriptions, edge functions, file storage, en zelfs vector embeddings. Het slaat de content modeling laag volledig over—tabellen zijn je domein hier.
Supabase's mantra: Hou PostgreSQL in het hart van je stack. Laat je database het doen, en benutte PostgreSQL-functies om permissions en logica te creëren.
Developer Experience
Ik zette vorige maand verse projecten op met elk platform, dus hier is een glimp van hoe setup eruitziet.
Strapi
npx create-strapi@latest my-project
cd my-project
npm run develop
Je wordt aangespoord met een registratiescherm voor de eerste admin user en vervolgens gegooid in een netjes admin panel. Een content type creëren via de GUI is moeiteloos—gewoon twee minuten. De REST API werkt meteen. Versie 5's TypeScript-ondersteuning is best aaardig, al niet perfect.
Pijnpunten? Het plugin systeem is beter maar niet alle v4 plugins zijn overgestapt naar v5. Aangepaste controller logica betekent worstelen met Strapls middleware chain, en dat is een beetje een leercurve.
Payload
npx create-payload-app@latest my-project
cd my-project
npm run dev
Je definieert alles in payload.config.ts. Hier is een glimp van wat dat eruitziet voor een basis blog:
import { CollectionConfig } from 'payload'
export const Posts: CollectionConfig = {
slug: 'posts',
admin: {
useAsTitle: 'title',
},
fields: [
{ name: 'title', type: 'text', required: true },
{ name: 'content', type: 'richText' },
{ name: 'publishedAt', type: 'date' },
{ name: 'author', type: 'relationship', relationTo: 'users' },
],
}
Payloads config is letterlijk je documentatie. Het admin panel vormt zichzelf rond je config en ziet er fantastisch uit. De rich text editor is een van de beste die ik ben tegengekomen.
Pijnpunten: Je moet bevriend zijn met Next.js. Als je frontend niet Next.js is, zal je Payload naast elkaar moeten draaien, wat ingewikkeld kan worden.
Directus
npx create-directus-project@latest my-project
cd my-project
npx directus start
Je kunt ook voor Docker kiezen, wat ik aanbeveel:
docker compose up -d
Directus presenteert meteen een elegant admin panel. Schema-creatie gebeurt via de GUI (Data Studio), en API's worden naadloos autogegenereerd.
Pijnpunten? Het admin panel aanpassen vergt werk omdat je aangepaste extensies zou moeten creëren. Er is een specifiek build-proces, dus het is meer rigide vergeleken met Payloads aanpak.
Supabase
Gebruik het cloud dashboard of host zelf met Docker. De meesten beginnen met de cloud gratis tier.
npm install @supabase/supabase-js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
const { data, error } = await supabase
.from('posts')
.select('*, author:users(name, avatar)')
.eq('published', true)
.order('created_at', { ascending: false })
Het is SQL via een client library. Er is geen CMS-stijl content model—het zijn gewoon tabellen, dus je zult een admin interface moeten maken of vinden.
Pijnpunten: Niet-technische mensen zullen Supabase lastig vinden. De Table Editor gedraagt zich als een spreadsheet, niet als een CMS.

Content Modeling
Laten we over features praten:
| Feature | Strapi v5 | Payload v3 | Directus v11 | Supabase |
|---|---|---|---|---|
| Content type creatie | GUI + JSON bestanden | TypeScript config | GUI | Raw SQL / Dashboard |
| Relaties | One-to-one, one-to-many, many-to-many, polymorfisch | Alle relatietypes + polymorfisch | Alle SQL relatietypes | SQL foreign keys |
| Rich text editor | CKEditor 5 / aangepast | Lexical (uitbreidbaar) | WYSIWYG + Markdown | Geen (BYO) |
| Media management | Ingebouwde media library | Ingebouwde uploads collection | Ingebouwde file library | Storage buckets |
| Lokalisatie | Ingebouwd | Ingebouwde plugin | Ingebouwde translations | Handmatig |
| Concept/publicatie | Ja | Ja (versies + concepten) | Content versioning | Handmatig |
| Veldvalidatie | JSON schema regels | Zod-achtig in config | DB constraints | PostgreSQL constraints |
| Webhooks | Ja | Ja | Ja (via Flows) | DB webhooks |
Payload maakt ontwikkelaars blij omdat het puur TypeScript is. Strapls GUI maakt snelle prototyping een fluitje van een cent. Directus blinkt uit in het omwikkelen van een bestaande database. Met Supabase ben je de kunstenaar die je lot beeldhouwt.
Performance Benchmarks
Benchmarks gedaan op een gestandaardiseerde setup: een flinke 4 vCPU / 8GB RAM VPS, met PostgreSQL 16 eronder. Getest met 10.000 content entries, met k6 op 100 gebruikers voor 60s.
| Metric | Strapi v5 (REST) | Payload v3 (REST) | Directus v11 (REST) | Supabase (PostgREST) |
|---|---|---|---|---|
| Gemiddelde response tijd | 45ms | 32ms | 38ms | 12ms |
| p99 response tijd | 180ms | 95ms | 150ms | 45ms |
| Requests/sec | 1.850 | 2.600 | 2.100 | 6.200 |
| Memory gebruik (idle) | 320MB | 280MB | 250MB | 150MB |
| Cold start tijd | 8s | 12s (Next.js) | 5s | 2s |
Supabase is een snelheidsduivel met zijn lichtgewicht PostgREST. Payload staat sterk gegeven de zwaargewichtigheid van Next.js. Strapi is verbeterd maar blijft het zwaarst.
Self-Hosting vs Cloud Pricing
Zeker, ze zijn allemaal gratis zelf te hosten. Maar laten we eerlijk zijn, de meeste teams eindigen met raken aan de cloud voor gemak en functies.
| Plan | Strapi Cloud | Payload Cloud | Directus Cloud | Supabase |
|---|---|---|---|---|
| Gratis tier | Alleen dev | 1 project, 1 gebruiker | Self-host | 2 projects, 500MB DB |
| Starter/Pro | €29/mnd | €30/mnd | €99/mnd | €25/mnd |
| Team/Business | €99/mnd | €100/mnd | €349/mnd | €599/mnd |
| Enterprise | Aangepast | Aangepast | Aangepast | Aangepast |
| Self-host kosten | €0 | €0 | €0 | €0 |
Belangrijkste inzichten:
Payloads open MIT-licentie gaat puur om gemak als je voor cloud betaalt. Directus's BSL is geen probleem tenzij je een concurrerende service plannen. Strapi rekent voor top-tier enterprise features. Supabase is budgetvriendelijk maar prijzen stijgen met gebruik.
Sluwe tip: alle vier draaien goed op een €20-40/mnd VPS. We draaien deze meestal op Railway of Fly.io voor onze projecten.
Plugin Ecosystemen en Uitbreidbaarheid
Strapi
Grootste plugin speeltuin—over 150 sterke en groeiend. Maar kijk uit: v5 is anders genoeg van v4 dat het compatibiliteit beïnvloedt.
Payload
Payloads plugin systeem is echt heerlijk:
import { buildConfig } from 'payload'
import { seoPlugin } from '@payloadcms/plugin-seo'
import { s3Storage } from '@payloadcms/storage-s3'
export default buildConfig({
plugins: [
seoPlugin({ collections: ['posts', 'pages'] }),
s3Storage({ bucket: 'my-bucket', collections: { media: true } }),
],
})
Kleine marketplace maar eersteklas kwaliteit. Aangepaste plugin creatie is eenvoudig en aangenaam.
Directus
Uitbreidingen in overvloed: hooks, endpoints, aangepaste veld-UI's, en meer. Gebruikt Vite en Vue 3 voor UI-extensies, en Flows voor automatisering zonder code.
Supabase
Geen traditionele plugins, maar een schouderklopje voor PostgreSQL-extensies en edge functions die aanpassingen natuurlijk voelen.
Authenticatie en Toegangsbeheer
Deze details kunnen je project maken of breken.
| Feature | Strapi v5 | Payload v3 | Directus v11 | Supabase |
|---|---|---|---|---|
| Ingebouwde auth | Ja | Ja | Ja | Ja (GoTrue) |
| Social OAuth | Plugin vereist | Aangepast | Ingebouwd | Ingebouwd |
| Op rol gebaseerde toegang | Ja | Ja (veld-niveau) | Ja | Row Level Security |
| API key auth | Ja | Ja | Ja | Ja |
| SSO/SAML | Alleen Enterprise | Ingebouwd | Enterprise/self-host | Enterprise/self-host |
| 2FA/MFA | Alleen Enterprise | Configureerbaar | Ingebouwd | Ingebouwd |
Supabase is meteen een krachtpatser. Payload biedt uitzonderlijke controle op veldniveau met de flexibiliteit om granulaire toegangsregels in te stellen:
{
name: 'internalNotes',
type: 'textarea',
access: {
read: ({ req: { user } }) => user?.role === 'admin',
update: ({ req: { user } }) => user?.role === 'admin',
},
}
Directus maakt permissions moeiteloos voor niet-ontwikkelaars. Strapi houdt stand maar bindt zijn beste aan enterprise-licenties.
Frontend Framework Compatibiliteit
We knuizelen vooral met Next.js en Astro, dus compatibiliteit staat centraal voor ons.
Met Next.js
Payload heerst onbetwist. Het is vrijwel gemaakt voor Next.js, voegt CMS en frontend samen in een cosy, types-vriendelijk plek.
Strapi, Directus, en Supabase? Ze passen prima bij Next.js, via standaard client SDKs.
Met Astro
Alle vier passen prima met Astro. Ze zijn consistent API-vriendelijk. Ik leun hier wat naar Directus voor content-zware sites.
Wanneer je welke gebruikt
Na met ze allemaal gedanst te hebben, hier zijn enkele hard-verdiende waarheden:
Kies Strapi als:
- Je team een gebruikersvriendelijke admin experience wil.
- Je ervan houdt dat de community en plugins overvloedig zijn.
- Je team een mix van tech en niet-tech mensen is.
- Je ingebouwde lokalisatie nodig hebt.
Kies Payload als:
- Je squad helemaal gek is op code (en van TypeScript houdt).
- Next.js je go-to frontend is.
- Je wil dat elk content model detail in versiebeheer staat.
- Flexibiliteit in toegangsbeheer belangrijk is voor je.
Kies Directus als:
- Je een oude database hebt die om CMS-liefde schreeuwt.
- Je content data mengt met niet-content data.
- Visuele automatisering en workflow tools je aanspreken.
- Je team GUI boven code prefereert.
Kies Supabase als:
- Real-time updates kritiek zijn.
- Je serieuze authenticatiemogelijkheden nodig hebt.
- Je comfortabel bent diep in SQL te duiken.
- Je project deels featured app, deels content site is.
Voelt je onzeker? Stuur ons een bericht. We hebben stapels meningen (gebaseerd op tonnen ervaring), en we helpen je graag door de beste fit voor jou heen.
FAQ
Is Supabase echt een CMS?
Niet echt, nee. Het is als een Zwitsers leger backend dat ontwikkelaars hebben omgetoverd tot een content backend omdat het zoveel vakjes aanvinkt. Je zult een editor-vriendelijke UI erbovenop willen creëren, maar het is al populair onder devs.
Welke open source CMS is het beste voor Next.js in 2026?
Payload v3 is hier koning. Het draait op dezelfde server met types die naadloos van CMS naar frontend vloeien. Het is een genoegen.
Kan ik migreren van Strapi naar Payload?
Je kunt, maar het vergt wat elleboogvetwerk. Je zult content types herschrijven en data migration afhandelen. Het is haalbaar maar zet wat tijd uit—1-3 weken afhankelijk van complexiteit.
Hoe handelt Directus content versioning af?
Directus geeft je content versioning en laat je wijzigingen volgen, versies vergelijken, en terugdraaien. Het is allemaal ingebouwd, geen extra plugins nodig, een voordeel ten opzichte van Strapi.
Wat zijn de zelf-hosting kosten?
Deze CMS's draaien rond €35-70/maand op je eigen servers. Slaat nog altijd proprietary CMS kosten als Contentful, hoewel er meer setup bij komt.
Welke CMS is het beste met GraphQL?
Strapi en Directus genereren GraphQL API's soepel. Payloads GraphQL setup komt van TypeScript configs en voelt voorspelbaar. Supabase sprong recent in met zijn eigen aanpak, genereert een GraphQL API van PostgreSQL.
Is Directus's BSL-licentie oké voor commercieel gebruik?
Voor vrijwel alle doeleinden, absoluut. Het beperkt alleen het bouwen van een concurrerende managed service.
Kan ik meerdere headless CMS-platforms samen gebruiken?
Totaal mogelijk—en vaak slim. Veel teams gebruiken Supabase voor real-time functies en auth, gekoppeld aan een meer traditionele CMS als Payload of Strapi voor redactionele content. Het is gebruikelijk om te blenden en matchen op basis van sterke punten. Benieuwd? Bekijk onze ervaringen met headless CMS setups.