CMS Content Versioning: What to Look For in 2026
Draft workflows, version history, and what your CMS actually saves
Most CMS platforms ship with one of two problems: no versioning at all, or a versioning system so tangled that editors avoid it entirely. Neither outcome is acceptable when you're running a production site with real content and real editors.
CMS content versioning — the ability to save every edit as a named snapshot and restore any of them — is one of those features that sounds simple until you actually need it. Then you discover your platform saves nothing, or saved 3 versions, or requires a plugin, or buries the restore button behind four modal dialogs.
TL;DR: Content versioning means storing a history of every edit so you can roll back. Most headless CMS platforms handle this differently — Payload CMS has it built-in, Directus stores content revisions, Strapi v5 added draft/publish, Contentful includes versioning on paid plans. UnfoldCMS does not have full versioning yet, but it does have a solid draft/publish workflow with scheduled publishing and content locking. Whether you need full versioning or a good draft workflow depends on your team size and content risk profile — this guide helps you figure out which.
What Content Versioning Actually Means
Content versioning is not just "a draft mode." The two concepts are easy to confuse, so let's separate them clearly.
Draft/publish workflow means your content exists in one of two states: draft (not public) or published (live). You can edit a draft, preview it, then publish it. You can take a published page back to draft. Most CMS platforms — including simple ones — offer this. It solves the "don't publish until it's ready" problem.
Version history means every time you save an edit, the CMS creates a numbered snapshot. Version 1 is your original. Version 2 is after the first edit. Version 12 is after the twelfth. You can compare version 8 to version 11, see exactly what changed, and restore version 8 if version 11 was a mistake.
These are different features solving different problems. You can have draft/publish with no version history (most simple CMS platforms). You can theoretically have version history without a draft concept (rare). Most mature platforms combine both.
Why does the distinction matter? Because teams often think "we have drafts, so we're covered" — and then a senior editor overwrites a published article, and there's no way back. Drafts protect unreleased content. Version history protects content after it goes live.
Why Version History Actually Matters (Beyond the Obvious)
The case for versioning usually gets made around "oops, someone deleted a paragraph." That's real, but it's the smallest reason. Here are the ones that actually cost organizations money.
Accidental overwrites on live content. A content manager opens an old article to grab some text, accidentally saves, and publishes a half-complete version. Without version history, the only recovery path is checking a Google Cache or Internet Archive backup — if you're lucky. With versioning, you restore the last published snapshot in 30 seconds.
Regulatory and compliance requirements. Industries like healthcare, financial services, and legal publishing often need to prove what their website said on a specific date. GDPR requests, FCA inquiries, legal disputes — all of these can require point-in-time content recovery. A CMS with no version history fails this requirement entirely.
Editorial collaboration on fast-moving stories. When two writers work on the same piece, or when an editor's revisions conflict with a writer's updates, you need to see what changed and when. Without a diff view, you're guessing.
Rolling back after a bad campaign. Marketing teams regularly swap landing page copy for A/B tests or seasonal campaigns. Without versioning, restoring the "before" version means digging through git commits (if the content was in code), spreadsheets, or memory.
The frequency of needing versioning is actually low for most teams. But the severity of not having it when you need it is high. It's insurance.
The Difference Between Versioning and Draft Workflow — Why Teams Confuse Them
The confusion happens because both features live in the same part of the admin UI and both involve "saving content before it's final."
Think of it this way:
- Draft workflow is about state (draft vs. published)
- Version history is about time (what did this content look like at moment X)
A team that only needs draft workflow is one where: a single person owns each page, mistakes get caught before publish, and live content rarely needs rollback. A small startup blog fits this profile exactly.
A team that needs full versioning is one where: multiple editors touch the same content, articles stay live for months and get updated regularly, or compliance requires an audit trail. A legal website, a news publication, or a large enterprise marketing site fits here.
The honest answer for most developer-built projects: you need draft/publish from day one, and you'll need version history around the time you hire your second content editor. Plan for it, even if you don't need it immediately.
What to Actually Look for in a CMS Versioning System
Not all versioning implementations are equal. Here's what separates a useful system from a checkbox feature.
1. Number of versions retained Some CMS platforms limit you to 10, 25, or 100 versions. For a high-traffic news site publishing 20 updates a day to a single article, 10 versions covers half a day. Ask explicitly: is there a cap, and can you configure it?
2. Diff view Can you see what changed between version 4 and version 7, or do you just get two full document snapshots? A visual diff (like a GitHub PR diff) is far more useful than blind snapshots.
3. One-click restore Restoring a version should be a single action. If it requires exporting, editing JSON, and re-importing — that's not a usable system, it's a data export feature renamed.
4. Per-field vs. full-document versioning Full-document versioning saves the entire content object at each snapshot. Per-field versioning tracks changes at the individual field level. The latter is more granular but more complex to implement. Most platforms do full-document. Payload CMS does full-document versioning; it stores a complete copy of the document at each save point.
5. Who triggered the version Can you see which user made the change that created version 9? User attribution is important for team accountability and compliance.
6. Published vs. draft history Some systems only version drafts. Others version both drafts and published states separately. The most useful approach keeps a history of every publish event — so you can always see what was live at any point in time.
CMS Versioning Comparison: How 5 Platforms Handle It
Here's how the major platforms actually handle content versioning today.
| CMS | Draft/Publish | Version History | Diff View | Restore | Notes |
|---|---|---|---|---|---|
| Payload CMS | ✅ Built-in | ✅ Full document versioning | ⚠️ Basic | ✅ Yes | Versions stored per collection. Number kept is configurable (versions: { maxPerDoc: 25 }). No visual diff — you compare side-by-side. |
| Strapi v5 | ✅ Draft & Publish (v5) | ⚠️ Limited — draft history only | ❌ No | ⚠️ Partial | Strapi added Draft & Publish properly in v5. Full version history was planned but is partial as of mid-2026. |
| Directus | ✅ Built-in | ✅ Content Revisions | ⚠️ Basic | ✅ Yes | Called "Revisions" — full document snapshots per save. No line-level diff. Works across all collections. |
| Contentful | ✅ Draft/Published/Archived | ✅ Yes (entry history) | ⚠️ Side-by-side only | ✅ Yes | Available on all plans. Keeps a rolling history. Contentful calls them "snapshots." Limit varies by plan. |
| UnfoldCMS | ✅ Draft/Published | ❌ Not yet | ❌ No | ❌ No | Has draft states, scheduled publishing, and content locking. No "restore to version 3 of 7" feature. Roadmap item. |
The honest summary: If full version history is a hard requirement right now, Payload CMS and Directus are the strongest options. Contentful covers it on paid plans. UnfoldCMS and current Strapi are better fits for teams whose primary need is a clean draft/publish workflow.
For a full feature comparison between UnfoldCMS and Payload, see the UnfoldCMS vs Payload comparison — versioning is one of the key differences discussed there.
When You Need Full Versioning — vs. When Draft/Publish Is Enough
This is the question teams skip over when evaluating CMS platforms, then regret later.
Draft/publish is enough when:
- You have one or two content editors
- Each page is "owned" by one person
- You publish new content rather than frequently updating existing content
- Your content doesn't carry legal or compliance weight
- You can roll back by re-editing (because the changes are small and recoverable)
You need full versioning when:
- Multiple editors regularly update the same articles
- Your content is long-lived and gets updated frequently (evergreen guides, product pages, documentation)
- You're in a regulated industry (legal, finance, healthcare, government)
- You've experienced a significant content accident and lost work
- Your editorial workflow involves approval chains where content can be sent back for revision multiple times
For most developer-built projects and small teams, draft/publish with scheduled publishing handles 95% of real-world needs. The remaining 5% — typically teams hitting the scenarios above — genuinely need version history.
The trap is building for the 5% case from day one when you're a team of one. Pick a CMS that matches your current needs, with a path to more advanced features as you grow.
What UnfoldCMS Does (and Doesn't) Have
Let's be direct: UnfoldCMS does not have content versioning in the traditional sense. There is no "restore to version 3 of 7" feature, no stored history of document snapshots, no diff view.
What it does have is a solid draft/publish foundation:
- Draft states — content lives as draft until you explicitly publish it
- Scheduled publishing — set a future publish date and time, content goes live automatically. This is the most common "versioning-adjacent" need for small to mid-size editorial teams. See the CMS content scheduling guide for how this works in practice.
- Content locking — prevents two editors from overwriting each other's in-progress edits
- Revision intent — you can take a published page back to draft, edit it, and re-publish without touching the live version in the meantime
For many developer projects and growing content teams, this is sufficient. The API-first CMS guide covers how UnfoldCMS's headless API fits into a broader content workflow. And if you're starting your CMS evaluation from scratch, the how to choose a headless CMS checklist walks through exactly which features to prioritize.
Full version history is on the UnfoldCMS roadmap. It's not shipped yet — and we'd rather tell you that clearly than bury it in fine print.
How to Evaluate Versioning When Choosing a CMS
When you're demoing platforms, here are the exact questions to ask:
- Show me how I restore a published article to its previous version. Don't accept a text description — watch them do it live.
- How many versions does the system retain? Is there a cap? Is it configurable?
- Can I see what changed between version 4 and version 6? Ask for a diff view specifically.
- Which user made the change that created version 9? Check for user attribution in the version history.
- Does versioning cover all content types, or only certain ones? Some platforms only version pages, not custom content types.
If a vendor can't answer these clearly in a demo, the feature either doesn't exist or is difficult to use. Both are bad outcomes.
For a broader checklist of questions to ask when evaluating any headless CMS, the complete guide to headless CMS in 2026 has a full decision framework.
FAQ
Does a draft/publish workflow replace content versioning?
No — they solve different problems. Draft/publish controls when content goes public (draft = not live, published = live). Version history tracks every past state of content so you can restore any previous version. You can have one without the other. Most small teams are fine with draft/publish only; teams with multiple editors or compliance needs usually require version history too.
Which headless CMS has the best content versioning?
Payload CMS has the most developer-friendly versioning implementation — it's configurable per collection, supports draft versions separately from published versions, and stores a full document snapshot at each save. Directus's Revisions system is solid for API-driven workflows. Contentful offers versioning across all plans but is a SaaS product with costs that scale per seat.
How many versions should a CMS store?
For most teams, 25–50 versions per document is enough. Daily-updated content with many editors might want 100+. The key is whether the cap is configurable — hardcoded limits become a problem as sites scale. Payload CMS lets you set maxPerDoc per collection.
Is content versioning the same as a git-based CMS?
No, though they solve related problems. Git-based CMS platforms (like Netlify CMS with git backends, or Tina CMS) store content directly in a git repository, which gives you full version history via git commits. Traditional CMS versioning stores snapshots in the database. Git-based approaches work well for developer-heavy workflows; database versioning is more accessible to non-technical editors.
Can I add versioning to a CMS that doesn't have it natively?
Sometimes. For database-backed CMS platforms, packages like spatie/laravel-activitylog can log changes, and some teams build manual snapshot systems. But these are workarounds, not real versioning — they typically lack the diff view and one-click restore that make versioning actually useful. If versioning is a hard requirement, pick a platform that ships it natively.
Methodology
This guide is based on hands-on evaluation of Payload CMS v3 (open-source, self-hosted), Strapi v5, Directus v11, and Contentful (Team plan) versioning implementations. The CMS comparison table was built from each platform's official documentation and direct testing in a local environment. Platform capabilities were verified as of June 2026 — CMS features change frequently, so check each vendor's current changelog before making a final decision.
For sources cited:
- Payload CMS versioning docs: payloadcms.com/docs/versions/overview
- Strapi v5 Draft & Publish: docs.strapi.io/user-docs/content-manager/working-with-content-manager
- Directus Revisions: docs.directus.io/reference/system/revisions
- Contentful Snapshots: contentful.com/developers/docs/references/content-management-api
If you're evaluating UnfoldCMS and versioning is a must-have right now, we'd rather you know the honest answer upfront than discover it after migrating. If draft/publish + scheduled publishing covers your workflow, explore UnfoldCMS features or try the live demo.
Free & Open Source
Own your CMS. No subscriptions.
Unfold CMS is free to download and self-host. Built on Laravel + React, full source code included.
Share this post: