Contentful
A weekend of work, and real gaps remain.
A headless content platform for large organisations: many content types, localisation, roles and workflows, with an API and a delivery network in front.
Build the content platform I actually need instead of Contentful — and be honest about which of its features you use. **Localisation is the one that is genuinely hard.** Every field in every type existing in several languages, with fallbacks, partial translation and a way to see what is missing. If you publish in one language, most of this product's weight is not for you and the price reflects features you do not touch. STACK - Node 20+ with Fastify, server-rendered HTML - SQLite through better-sqlite3, WAL mode - Caddy in front, with a delivery network for the published API THE DATA MODEL - types and fields defined in files, versioned with the code that renders them - documents in real tables per type, altered by generated migrations - **field_values keyed by locale** if you localise: document_id, field_key, locale, value. That shape is the decision, and retrofitting it later is a migration nobody enjoys - drafts separate from published, revisions append-only, references as real foreign keys LOCALISATION, IF YOU NEED IT - A default locale, and a fallback chain per locale so a missing translation shows the parent language rather than an empty page - **A completeness view**: which documents are missing which languages, per type. That screen is what a translation team actually works from - Publishing per locale, so English can ship while German is still being written - Never machine-translate and publish silently. Mark it as machine-translated in the data, and let a person clear the flag SCHEMA CHANGES WITH CONTENT IN PLACE - This is the operational difficulty and the thing to design for. Adding a field is easy; renaming, splitting or making one required when a thousand documents exist is not - Every change is a migration file with a **dry run that reports which documents would fail** before anything is written - Backwards-compatible in both directions across a deploy: add the field, deploy, backfill in batches, then require it. Never in one step ROLES AND WORKFLOW - Roles per type and per locale — a translator may edit German and not English, and may not publish - A workflow with as few states as your organisation actually uses. Draft, in review, published covers most of them, and every extra state is one somebody has to move things through - Checked in the query, default deny THE API - Published content public, cached hard with an ETag, behind a delivery network - Draft content behind a token - Webhooks on publish, signed and retried - **A row cap and a statement timeout on everything**, because a content API is a public endpoint over your database WHAT MATTERS MOST The locale-keyed value shape, decided before there is content, and a migration dry run. Both are invisible on day one and painful to add on day four hundred.
What you lose
- Localisation as a first-class idea across every field, which is more work than it looks
- Roles and publishing workflows a large organisation has agreed on
- A content API with a delivery network and an uptime commitment
- Migration tooling for a schema that changes while content exists
If you would rather not build
- Markdown with front matter per locale, if the volume is small
The escape hatch
open source · no votes, no paid placement
Payload
$0Code-first CMS with localisation, roles and a real database.
payloadcms/payloadfree · open source
Strapi
$0A self-hosted headless CMS with a content-type builder and i18n.
strapi/strapifree · open source
Why this verdict
our own opinion · changed only by a person
43/100
Verdict kinda at 43: single-language content is a fortnight, and localisation across every field is the part that justifies a platform. The prompt makes that the first question rather than the last.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Contentful
answered from the record above
Is Contentful free?
No — the plan we track is $300 a month. Lite from around $300/month billed annually; a free tier covers small projects and enterprise is quoted.
Can you replace Contentful by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 43 out of 100, build time a weekend. Read what you lose before you decide.
How much does Contentful cost?
$300 a month on Lite — $3,600 a year. Recorded 14 Aug 2026.
What do you lose by replacing Contentful?
Localisation as a first-class idea across every field, which is more work than it looks; Roles and publishing workflows a large organisation has agreed on; A content API with a delivery network and an uptime commitment; Migration tooling for a schema that changes while content exists. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Contentful?
Yes: Payload, Strapi. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

