Use EmDash’s Revisions to Never Lose Content

EmDash's revision system saves every edit as a snapshot, letting you restore any previous version in four clicks.

By Central
EmDash's revision system stores full content snapshots, including SEO metadata and custom fields.
Highlights
  • Every save in EmDash creates a full snapshot of title, body, featured image, SEO metadata, categories, and custom fields.
  • To recover a previous version, open the content item, click a revision timestamp, preview it, and click Restore.
  • EmDash stores revisions as structured JSON, avoiding the database bloat caused by WordPress's wp_postmeta table.

You make a change, hit save, and something breaks. A paragraph you spent an hour writing? Gone. A page layout you carefully arranged? Replaced by an earlier, worse version. WordPress users know this pain. EmDash, Cloudflare’s new open-source CMS (version 0.1, built in roughly 2 months by Astro core team member Matt Cain), ships with a revision and draft system designed to prevent exactly this. Here’s how it works and how you use it.

What EmDash’s Revision System Actually Saves

Every time you save a page or post in EmDash, the system creates a snapshot. Not just the content body — the full state including title, featured image, SEO metadata, categories, and custom fields. The source confirms: “we have the revisions. Very nice.”

EmDash's architecture is the most coherent challenge WordPress has faced — the plugin sandbox alone justifies the experiment.

In the playground at emdashcms.com (a temporary instance that lasts one hour), revisions are limited. On a real deployed instance, every save generates a new revision entry. Open a published post, make an edit, and the original version stays intact under the revision history. You never overwrite — you layer.

The practical difference from WordPress? WordPress also saves revisions, but they live in a separate wp_postmetacodecodecodecodecode table that bloats your database. EmDash stores them as structured JSON (portable text format), keeping the data clean and the full history queryable without extra plugin overhead.

Recover Content from a Previous Revision in 4 Steps

Here’s the exact workflow when you need to undo a bad edit on a page or post in EmDash:

  1. Open the content item from the Posts or Pages section in the admin dashboard.
  2. Look at the right sidebar panel. You’ll see a Revisions section with timestamps listed in reverse chronological order — most recent save first.
  3. Click any revision timestamp. The preview pane loads that exact version of the content: title, body, featured image, and all metadata fields.
  4. If the preview shows the version you want, click Restore. That revision becomes the current published or draft version.

What happens to the version you just overwrote? It becomes another revision entry. Nothing is deleted. The system keeps every save you’ve made.

This process works for both published content and content still in draft. A post saved five times before publishing has five revision entries you can return to.

How Drafts Prevent Publishing Mistakes

EmDash separates draft content from published content at the database level. When you create a new post, it starts in draft status by default. You can save multiple times, make edits across days, and nothing goes live until you explicitly click Publish.

The critical detail: EmDash’s draft system supports scheduled publishing. You set a date and time, save as draft, and the system publishes automatically at that moment. If you change your mind before the scheduled time, switch the status back to draft or delete the entry entirely.

The front-end editor also respects drafts. Click the Edit button while viewing your site’s front end, and you enter an inline editing mode. Save those edits — they go to the draft version, not the live version. You preview the changes, then decide to publish or discard.

This is the edge case most CMS users miss: editing on the front end should never immediately overwrite the live page. EmDash’s draft-first architecture ensures that.

EmDash vs WordPress: Revision Features Compared

Feature EmDash (v0.1) WordPress (6.x)
Revision storage format Structured JSON (portable text) Serialized PHP in wp_postmetacodecodecodecodecode
Draft-publish separation Built-in, with scheduled publishing support Built-in, but scheduled publish requires cron
Front-end inline editing Yes — edits go to draft, not live Yes (via block editor), but edits apply directly
Revision restore from preview Click a timestamp, preview, then restore Click a timestamp, compare diff, then restore
Custom post type revisions Supported natively — flexible content types include revision history Supported only if the custom post type explicitly enables revisionscodecodecodecodecode via register_post_type()codecodecodecodecode
Revision retention Every save retained (no built-in limit in v0.1) Configurable via WP_POST_REVISIONScodecodecodecodecode constant (default: 5 per post)
AI agent access to revisions MCP server can query and restore revisions programmatically Requires custom REST endpoint or plugin

The table shows one clear advantage for EmDash: custom post types get revisions without any plugin. In WordPress, you need to add 'revisions' => truecodecodecodecodecode to your register_post_type()codecodecodecodecode call, and many site owners forget this step. EmDash’s flexible content types (pages, posts, projects, or any custom type you create) all inherit revision support automatically.

What Revisions Don’t Cover (Yet)

EmDash is version 0.1. Some gaps exist.

First, the playground at emdashcms.com does not include full revision history. You can see the system saving in real time, but you cannot browse past revisions in the temporary instance. To test revisions properly, deploy EmDash to a Cloudflare Workers account or a local Node.js server.

Second, there is no visual diff tool. WordPress shows you what changed between two revisions with highlighted additions and deletions. EmDash shows only the raw restored content. You cannot, as of this beta, compare revision A against revision B side by side.

Third, there is no automatic cleanup. Every save becomes a permanent revision. On a site with heavy editing activity, the revision count grows without limit. In WordPress, you can set WP_POST_REVISIONScodecodecodecodecode to cap the number. EmDash offers no such setting yet.

The Real Safety Net: Combine Drafts, Revisions, and the Import Tool

The most overlooked recovery path in EmDash is the WordPress import tool. If you migrate a WordPress site into EmDash (using the WXR export file or the dedicated export plugin), your entire content history comes with it. Posts, pages, media, custom post types — all of it. The import maps Yoast SEO fields to EmDash’s built-in SEO fields automatically.

This means even if you delete content inside EmDash, you can re-import from your original WordPress export. It’s not a substitute for proper revision history, but it is a hard backup that survives accidental deletion.

For production use in 2026, that extra layer matters. EmDash’s architecture is the most coherent challenge WordPress has faced — the plugin sandbox alone justifies the experiment. But the revision system, like everything else in v0.1, will evolve. Keep a separate backup of your content exports until it does.

Questions answered
  • What does EmDash's revision system save?It saves the full state of a page or post, including title, body, featured image, SEO metadata, categories, and custom fields.
  • How do you recover content from a previous revision in EmDash?Open the content item, click a revision timestamp in the right sidebar, preview the version, and click Restore.
  • What are the limitations of EmDash's revision system?There is no visual diff tool, no automatic cleanup of old revisions, and no cap on the number of revisions saved.
Share This Article