Wat zijn ze precies
Payload CMS (USA, 2018) — open-source TypeScript headless CMS dat je zelf host. Node.js + MongoDB of Postgres. Admin-UI is een Next.js-app die met je content meedraait. Gratis core, betaalde Cloud-host als optie.
Sanity (Noorwegen, 2017) — cloud-hosted headless CMS. Studio (admin-UI) is React-based en self-host-baar voor frontend, content slaat op in Sanity's "Content Lake". Portable Text als hun killer-feature voor rich content. Free tier + paid plans.
Hosting + kosten
| Schaal | Payload (self-host) | Sanity |
|---|---|---|
| MKB klein (1-3 users, <1k docs) | €60-€240/jaar (Railway/Render) | €0 (free tier) |
| MKB groot (5-10 users, 10k docs) | €240-€480/jaar | $1.188/jaar (Growth plan) |
| Enterprise (20+ users, 100k+ docs) | €600-€1.500/jaar | Contact sales (€10k+/jaar) |
Voor kleine MKB-sites: Sanity gratis. Voor groei: Payload structureel goedkoper omdat hosting niet schaalt met document-count. Sanity's pricing schaalt met API-calls + bandwidth.
Redacteur-ervaring
Sanity Studio is in 2026 nog steeds de gouden standaard voor headless CMS UX. Portable Text laat redacteuren rich content samenstellen met blocks (heading, paragraph, image, video, custom-types). Real-time collaboration, live preview, version-history. Voor een advocatenkantoor met 4 redacteuren publicerend per week: hier zit het verschil.
Payload's admin-UI is volwassener geworden in v3 (2024) maar nog 1-2 stappen achter. Wel: granular access-control (role-based, field-level permissions), wat Sanity beperkt biedt op lagere plans.
Developer-experience
Payload's TypeScript-native is een groot pluspunt voor dev-teams. Je definieert collections in TS, en je Astro/Next.js krijgt typed responses uit-of-the-box. Geen GraphQL-codegen nodig.
Sanity heeft TypeScript-support via codegen, maar minder geïntegreerd. GROQ (Sanity's query-taal) is krachtig maar leercurve.
Lokale ontwikkeling: Payload draait gewoon lokaal (npm install + start), zelfde dev-environment als productie. Sanity's Studio draait lokaal, content gaat naar cloud (geen offline-modus).
Eigenaarschap + GDPR
Payload self-hosted = alle content + user-data op jouw eigen server. Geen Amerikaanse cloud-leverancier, AVG-volledig in eigen hand. Voor klanten in regulated industries (zorg, financieel, overheid): vaak verplicht.
Sanity is gehost op Google Cloud (EU-regio mogelijk maar standaard US). Voor GDPR-compliant moet je expliciet EU-data-residency aanvragen. Geen probleem voor most MKB, wel voor strikte sectoren.
Voor welke project welke CMS?
Kies Payload als:
- Self-host vereist (GDPR-strikt, eigen server-policy)
- TypeScript-team werkt al in TS
- Complex access-control (role-based, conditional fields)
- Budget-bewust + groei verwacht (>5 users, >10k docs)
- Custom plug-ins / business-logic in CMS nodig
Kies Sanity als:
- Multi-author workflow met live collaboration
- Content-heavy: blog/redactie als kernactiviteit
- Portable Text past bij content-model (rich blocks, custom embeds)
- Geen DevOps-resources voor self-hosting
- Real-time preview belangrijk
Overweeg Decap CMS als:
Geen developer-team in huis, <5 redacteuren, kleine MKB-site, budget krap. Decap is gratis, GitHub-based, en gemaakt voor static-site + content-team. Zie ons artikel over waarom wij Astro kiezen waar we Decap noemen als default-keuze.
Concreet voorbeeld: SonaVerse-style MKB-site
Hypothetisch project: Mijdrechtse hovenier, 25 pagina's, 30 projecten in portfolio, 12 blog-posts/jaar, 2 redacteuren (eigenaar + administratief).
- Payload: volledige sterkte niet nodig. Werkt maar overkill.
- Sanity: idem. Free tier ruim voldoende, maar features grotendeels ongebruikt.
- Decap CMS: perfect. €0/jaar, content op GitHub, eigenaar kan zelf updaten via simpele editor.
Voor 80% van MKB-marketing-sites die we bouwen: Decap. Voor de 20% met complexere content-behoeften: Payload of Sanity.
Migratie tussen beide
Beide hebben API's voor export. Payload → Sanity: REST/GraphQL → Sanity's `@sanity/client` import. Reken op 2-5 dagen werk afhankelijk van content-structuur. Andersom: zelfde verhaal, soms iets meer werk omdat Portable Text moet worden gestructureerd naar Payload's rich-text-field.
Niet zwaar, maar ook niet zero-effort. Beste: kies vooraf goed.
Bij DesignCheck Mijdrecht kiezen wij standaard Decap voor MKB-builds <€3.995. Voor Premium-builds (€6.995) met complexer content-model: Sanity (cloud, snel up) of Payload (zelf-host, eigenaarschap). Verliescalculator rekent uit wat een traag CMS-systeem je kost. Gratis audit binnen 48u.
Architectuur en data-modellering
Payload draait als Node.js-applicatie met een eigen database (MongoDB of PostgreSQL). Het CMS, de admin-UI en de API zitten in één codebase. Je definieert collections in TypeScript en Payload genereert automatisch admin-formulieren, REST- en GraphQL-API's én TypeScript-types voor je front-end. Self-hosted, dus alle data blijft op jouw infrastructuur.
Sanity werkt fundamenteel anders. Het is een SaaS-platform: jouw data ligt op de Sanity-servers (AWS, regio EU of US naar keuze). Je definieert schemas in JavaScript en Sanity bouwt een studio (admin-UI) die op localhost of op een eigen domein draait. Content vraag je op via GROQ (een querytaal die op JSON werkt) of GraphQL. Razendsnelle CDN, automatische image-transformaties, real-time collaboration.
Voor MKB-sites met 5-30 content-types werken beide. Payload wint als je strikte AVG-eisen hebt (alles op eigen servers in NL of DE). Sanity wint als je content moet schalen naar miljoenen items, omdat hun CDN-architectuur dat probleemloos aankan.
Editor-ervaring vergeleken
Sanity Studio is sinds 2023 herontworpen en heeft nu structured-editing met portable-text (rich text als JSON-blokken). Editors krijgen real-time collaborative editing, versie-historie, draft/publish-workflow en preview-koppelingen met Astro of Next.js. Voor content-zware teams met 3+ editors is dit het sterkste platform op de markt.
Payload heeft een vergelijkbare admin-UI maar minder polish op kleine details. Rich-text werkt via Lexical (vanaf v2) of Slate (v1). Drafts en versies zitten erin, real-time collaboration is in beta. Voor solo-editors of kleine teams (1-2 personen) is het verschil verwaarloosbaar. Voor grote redactieteams kies je Sanity.
Een onderbelichte sterkte van Payload: alles is TypeScript-first. Je collection-schema is letterlijk de types voor je front-end. Geen schema-drift, geen runtime-verrassingen. Voor ontwikkelaars die strikte type-safety belangrijk vinden is dat een doorslaggevend voordeel.
Kosten over de eerste 3 jaar
| Onderdeel | Payload (self-hosted) | Sanity (SaaS) |
|---|---|---|
| Licentie | Gratis (MIT) | Gratis tier tot 3 users + 10k docs |
| Hosting | €10-€40/maand | Inbegrepen |
| Database | €0-€25/maand | Inbegrepen |
| CDN/images | Eigen setup (€10-€30/mnd) | Inbegrepen (snel CDN) |
| Team-plan upgrade | N.v.t. | $99/mnd Growth, $949/mnd Business |
| Totaal 3 jaar (klein team) | ~€1.000-€3.500 | €0-€3.500 |
Voor MKB-projecten zijn de kosten zelden doorslaggevend. Beide blijven in dezelfde orde van grootte. De keuze gaat over wie de site beheert en wat de eisen rond data-hosting zijn.
Migratie en vendor-lock-in
Payload's lock-in is laag. Je data ligt in jouw eigen database. Bij wissel naar een ander CMS pak je de data via SQL- of Mongo-dump en transformeer je. Het CMS zelf is open-source, dus geen vendor-prijsverhogingen of feature-cuts mogelijk.
Sanity's lock-in is hoger. Data ligt op hun servers. Export is goed beschikbaar (NDJSON-dumps via CLI), maar je bent afhankelijk van hun pricing. Sanity heeft sinds 2023 enkele keren de gratis tier aangepast — voor MKB-projecten met <3 editors en <10k documents niet ingrijpend, maar je hebt het niet zelf in de hand.
De lock-in is overigens niet absoluut. Sanity-data is gewoon JSON met een vast schema. Een migratie naar Payload, Strapi of Contentful kost typisch 1-2 weken voor een gemiddeld MKB-project. Niet leuk, maar wel doenlijk.
Welke past bij welke build-context
Astro-marketingsite. Sanity wint, omdat de Sanity-client tijdens build content ophaalt en de pagina als pure HTML serveert. Real-time previews werken met astro-sanity-preview. Voor 80% van MKB-marketing-sites is dit de snelste setup.
Next.js SaaS-marketingsite. Beide werken. Payload is marginal beter omdat het in dezelfde Node.js-codebase kan draaien — geen externe API-call nodig. Sanity vereist een GROQ-query op build of revalidate.
SaaS-app met user-generated content. Payload wint, omdat het ook als headless backend voor je app kan dienen (auth, REST-API, custom endpoints). Sanity is daar minder geschikt voor — het is een CMS, geen application-backend.
Multi-brand of multi-site setup. Sanity wint met datasets en partial-content-deling. Een holding met 4 dochterbedrijven kan één Sanity-project gebruiken met shared content en per-brand content.
10-stappen-beslisplan voor je CMS-keuze
- Tel je content-types. Onder 10: beide werken. Boven 30: Sanity scaalt soepeler in de admin-UI.
- Tel je editors. 1-2: maakt nauwelijks uit. 5+: Sanity's real-time collaboration is doorslaggevend.
- Check AVG-vereisten. Moet alle data binnen NL of EU blijven? Payload self-hosted op een NL-server is veiliger.
- Bepaal de update-frequentie. Dagelijks of meer: Sanity's instant CDN is fijner. Wekelijks of minder: maakt minder uit.
- Schat content-volume in 3 jaar. Boven 100.000 documents: Sanity's infrastructuur ontlast je.
- Inventariseer je technische team. Geen Node.js-kennis: Sanity is laagdrempeliger (er valt niets te hosten).
- Vraag jezelf af: wil je vendor-onafhankelijk zijn? Ja: Payload. Geen probleem met SaaS: Sanity.
- Test beide met een prototype van 3 content-types in een dag. Beide hebben sandbox-modus.
- Praat met twee bureaus die ervaring hebben met beide. Vraag concrete pijnpunten.
- Bereken kosten over 5 jaar op basis van verwachte schaal. Plot beide curves naast elkaar.
Veelvoorkomende valkuilen bij CMS-implementatie
Schema-drift tussen front-end en CMS. Bij Payload zit het schema in TypeScript en wordt het direct gekoppeld aan je types — onmogelijk om uit sync te lopen. Bij Sanity moet je zelf types genereren met sanity-codegen of typescript-plugin. Voor grote projecten loont het om dit vanaf dag één strikt te regelen.
Te veel componenten in portable-text. Beide CMS'en laten je rich-text uitbreiden met custom blokken (call-to-action, video-embed, gallery). Verleidelijk, maar elk extra block-type is een extra component aan de front-end. Houd het tot 5-7 block-types, anders verzandt onderhoud.
Geen draft/publish-workflow ingericht. Beide ondersteunen drafts maar je moet het actief configureren. Zonder draft-modus publiceren editors typfouten direct live. Stel altijd preview-routes in met een geheime token.
Image-optimalisatie vergeten. Bij Sanity krijg je het automatisch via hun CDN. Bij Payload moet je zelf een image-pipeline opzetten (Sharp + Cloudinary of Imgix). Vergeet je dit: trage pagina's met onnodig grote afbeeldingen.
Webhooks niet geconfigureerd. Bij static-site builds moet je bij elke content-publish een rebuild triggeren. Beide CMS'en hebben webhooks, maar je moet ze koppelen aan je deploy-platform (Vercel, Netlify). Een gemiste webhook = content die niet zichtbaar is tot de volgende deploy.
Wat de markt anno 2026 doet
Sanity heeft sinds 2020 een sterke groei doorgemaakt en is veruit het populairste headless CMS bij digitale bureaus in Europa. Grote merken zoals Figma, Loom en Linear gebruiken het voor hun marketing-sites. Voor MKB-projecten is de gratis tier ruimer geworden, wat de instapdrempel verlaagt.
Payload kwam pas in 2021 uit en groeit sneller in TypeScript-zware ontwikkelteams. De community bouwde de afgelopen drie jaar een rijk plugin-ecosysteem (auth-providers, SEO-plugins, e-commerce-modules) waardoor het inmiddels ook voor MKB-projecten geschikt is. De adoptie blijft echter een tier kleiner dan Sanity.
Daarnaast zijn er drie alternatieven die we elke maand tegenkomen: Decap CMS (gratis, git-based, ideaal voor kleine teams), Storyblok (visual editor met live-preview, sterk in component-based content), en Contentful (enterprise-CMS met strikte rollen). Voor de meeste MKB-projecten heeft een van die drie ook bestaansrecht — Payload en Sanity zijn niet de enige opties. Bij twijfel test je een van deze met een prototype van een dag.
Concrete content-modellen die we vaak bouwen
Een typische MKB-marketing-site heeft 6-12 content-types. Hier zijn er drie die we elke maand opzetten:
- Services-collectie. Titel, beschrijving (rich-text), prijsindicatie, FAQ-blok, gerelateerde cases. Beide CMS'en doen dit even goed. Schema in 30 minuten klaar.
- Cases of portfolio. Klant, problem, solution, results (met cijfers), galerij van afbeeldingen, testimonial-link. Sanity wint hier voor de portable-text-flexibiliteit; Payload voor de TypeScript-types.
- Blog-posts met categorieën. Slug, titel, intro, hoofdtekst (rich-text), categorie-relatie, auteur-relatie, OG-image. Beide werken; Sanity heeft betere preview-koppeling.
Voor elk van deze content-types zijn er valkuilen. Vermijd "over-engineering" — bouw geen 25 velden als 8 genoeg zijn. Een te complex schema is duur om te onderhouden en frustreert editors.
Hoe DesignCheck adviseert
DesignCheck is een webdesign-bureau dat de beste, snelste websites bouwt — wereldwijd beschikbaar, basis in Mijdrecht. Voor klantsites met een sterke content-component bouwen we standaard met Sanity als CMS, gekoppeld aan Astro. Reden: snelste editor-ervaring, gratis tier dekt 90% van MKB-projecten, en de migratie van WordPress naar Sanity is voorspelbaar.
Voor klanten met strikte AVG-eisen (zorgsector, financieel, juridisch) bouwen we met Payload op een EU-hosted server. Voor Keurmeesters — onze live klant met BAG-API-koppeling — gebruiken we Astro Content Collections omdat de echte data uit externe API's komt en het CMS-volume klein blijft. Stack-keuze altijd op basis van use-case, niet op basis van trends.
Performance-impact op je site
Veel teams onderschatten dat de CMS-keuze ook performance-implicaties heeft. Bij Astro + Sanity haalt de build tijdens generatie content op via GROQ-queries en bakt het in statische HTML. Pagina-snelheid: maximaal. Bij Next.js met ISR (Incremental Static Regeneration) tegen Sanity: ook prima, maar je hebt revalidate-strategie nodig om verse content op tijd te tonen.
Bij Payload + Astro is het beeld vergelijkbaar — Payload draait op je eigen server en de build trekt content via REST of GraphQL. Snelheid: identiek. Bij Payload + Next.js (vooral in een monorepo) krijg je een unieke voordeel: server-actions kunnen direct payload.find() aanroepen zonder HTTP-round-trip. Voor app-achtige features met veel server-side fetches scheelt dat 30-80ms per request.
De grootste performance-killer bij beide CMS'en is dezelfde: te zware images. Sanity heeft een ingebouwde transformatie-pipeline (?w=800&auto=format), Payload vereist een eigen Sharp- of Cloudinary-setup. Vergeet je dit niet, dan blaast een teamfoto van 4MB je Lighthouse-score op.
Beveiliging en updates
Payload patcht je zelf — als de versie een security-fix krijgt, moet je package-update doen en redeployen. Voor MKB-budgetten met externe hosting is dat een kwartaal-onderhoudspunt. Sanity rolt updates automatisch uit (SaaS-model), wat tijd scheelt maar minder controle geeft. Bij beide: schakel two-factor authentication aan voor alle editors en gebruik environment-variables voor je API-tokens. Een gelekt Sanity-token kan binnen seconden je content overschrijven.
Wat doe je vandaag?
Schrijf op één A4 op: hoeveel content-types heb je, hoeveel editors, hoeveel updates per maand, en wat zijn je data-hosting-eisen. Met die vier antwoorden valt de keuze tussen Payload en Sanity in 90% van de gevallen automatisch. Bij twijfel: vraag een gratis DesignCheck-audit aan en wij adviseren binnen 48 uur welke setup past bij jouw site.
Gerelateerde artikelen
FAQ — Payload vs Sanity
Is Payload of Sanity goedkoper?
Welke is makkelijker voor redacteuren?
Voor welk type site is welk CMS?
Kan ik Payload of Sanity combineren met WordPress?
Kan Sanity zonder internet werken?
Welk CMS heeft de beste preview-functionaliteit?
Kan ik beide CMS'en combineren?
Door Lorenzo Ruisi — DesignCheck. Laatst bijgewerkt 16 mei 2026.