EmDash Playground: What Everyone Gets Wrong About Cloudflare’s CMS

A hands-on look at Cloudflare's EmDash Playground reveals hidden flaws that challenge its promise as a WordPress replacement.

By Central
The EmDash Playground exposes critical issues like content loss and passkey lockouts that the marketing glosses over.
Highlights
  • Opening the same page in two browser tabs causes content loss due to poor state management.
  • Passkey authentication fails on Linux with no working fallback, locking users out of the CMS.
  • Custom content types are stored in the database, not code, leading to sync issues during deployment.

Everyone says EmDash is the future of CMS. Plugin sandboxing. AI-native architecture. No PHP legacy. TypeScript from the ground up. That’s what they say. But after spending time in the EmDash Playground, I found a different story.

The EmDash Playground is Cloudflare’s free, browser-based demo. It spins up a live instance in seconds. No install, no credit card. You can break things, create content, test the admin panel. It’s smart marketing. It’s also a trap for anyone who thinks this is ready for real work.

The Playground shows a promising foundation. It also shows how far EmDash is from being a WordPress replacement.

Let me show you what the Playground reveals that the blog posts don’t.

The First Red Flag: Content Loss

I opened two browser tabs. Same page. Edited the title in one. Switched to the other. The page reset. My work vanished.

This isn’t a minor bug. It’s a fundamental problem with the editor’s state management. In a production CMS, losing content destroys trust instantly. The Playground uses a debounced save — it writes after a pause. But if you open the same post in two tabs, the second one overwrites the first. No warning. No merge. Just silence.

Sanity solved this years ago with real-time multiplayer. WordPress locks edits when another user is active. EmDash does neither. For a CMS that wants to replace WordPress, this is disqualifying for any team workflow.

The Passkey Problem Nobody Talks About

EmDash ships with passkey authentication. No passwords. WebAuthn. Sounds great. But the Playground reveals a nasty edge case.

When I installed locally on Linux, passkey creation failed. The fallback — a magic link — returned a 404 page. I was locked out of my own CMS. The only way in was to delete the SQLite database and start over.

This matters for agencies. If you manage 50 WordPress sites, you need authentication that works everywhere. Passkeys tied to a single localhost installation won’t scale. The Playground doesn’t test this scenario because it runs in the browser. But real developers will hit it on day one.

The Custom Content Type Illusion

EmDash ships with custom content types. Finally, no ACF plugin. That’s what the marketing says.

But open the Playground and try creating one. You do it through the UI. Click ops. The content type lives in the database, not in code. That’s a step backward.

In a modern CMS, your schema should be version-controlled. You should deploy it alongside your frontend. If a developer creates a content type in the admin, then deploys fresh code, the type disappears. The database and the code get out of sync. This was the exact problem that made WordPress painful for teams.

Sanity and Payload CMS let you define content types in code. EmDash does not. The Playground proves it. You click, you save, you pray it’s still there after the next deploy.

Where Are the Plugins?

The Playground shows zero third-party plugins. The core team built a few starter ones — a form plugin, an SEO plugin. That’s it.

WordPress has 60,000 plugins. WooCommerce powers 35% of all e-commerce. Elementor runs on 10 million sites. EmDash has nothing. The Playground doesn’t even let you install a sandboxed plugin because that requires Cloudflare’s paid plan at $5 a month.

The counter-argument is AI. Just ask an agent to build what you need. But that assumes you have the time, the skill, and the tolerance for debugging AI-generated code. Most site owners don’t. They need a contact form that works. They need an SEO tool that’s battle-tested. They need a membership plugin that handles subscriptions. EmDash offers none of this today.

The Unspoken Cost Risk

The Playground is free. The real deployment isn’t.

EmDash on Cloudflare uses Workers, D1, R2, and KV. Each one bills separately. Workers charge per request and per CPU millisecond. D1 bills per row read. R2 bills per operation.

Here’s the math someone on the Cloudflare forum ran. A basic DDoS attack — 10,000 IPs, one request per second each — racks up 26 billion requests in a month. Cloudflare offers no global spending cap. Your site keeps running. Your credit card keeps charging.

WordPress hosting is predictable. $20 a month. Fixed. If traffic spikes, the site might slow down, but the bill stays the same. EmDash flips that. You pay more when you’re successful. And when attackers target you, you pay the most.

The Vendor Lock-in Nobody Mentions

The code is MIT licensed. You can fork it. You can run it on any Node.js server. Good luck.

Self-host EmDash and the sandbox disappears. Plugins run in-process. No isolation. The one feature that justifies EmDash’s existence requires Cloudflare’s proprietary runtime.

The architecture ties you to five Cloudflare products: Workers, D1, R2, KV, and Workers AI. None of them are portable. You can’t migrate a D1 database to Postgres without rewriting your storage layer. You can’t replicate the V8 isolate sandbox anywhere else. The code is open. The runtime is not.

WordPress runs on a $5 VPS at any host. You can move it in an afternoon. EmDash gives you a different kind of lock-in — infrastructure lock-in, not license lock-in. It matters when your business depends on it.

Who Should Actually Use the Playground

The Playground is good for one thing: evaluation. If you’re a TypeScript developer who wants to understand the architecture, spin it up. Look at the plugin system. Test the MCP server. See how Astro powers the frontend.

But don’t mistake a demo for a product. The Playground runs for one hour. It resets. It’s designed to give a taste, not a production experience.

For small businesses, bloggers, freelancers — the answer is still WordPress. It has predictable costs, a massive ecosystem, and hosts everywhere. The security problems are real, but they’re manageable with a good host, updated plugins, and regular backups.

For agencies building client sites — EmDash offers no exit strategy. If your client outgrows Cloudflare, or if Cloudflare changes pricing, you’re rebuilding from scratch. That’s not a risk worth taking for a v0.1 beta.

What the Playground Gets Right

I should say this: the architecture is genuinely smart. The plugin sandboxing model is real innovation. V8 isolates starting in milliseconds, using a tenth of the memory of Docker containers — that’s impressive. The Astro integration means themes are fast, modern, and secure by default.

The MCP server is a thoughtful addition. AI agents can manage content, create plugins, migrate themes. That’s the future. EmDash is building for it.

But architecture isn’t adoption. The Playground shows a promising foundation. It also shows how far EmDash is from being a WordPress replacement.

The real question isn’t whether EmDash is better than WordPress. It’s whether Cloudflare will invest the years needed to build an ecosystem. Ghost launched a decade ago with better technology. It has 0.1% market share. EmDash starts from the same place.

The One Thing No One Tests

Here’s the nuance the Playground can’t show you. EmDash stores content as portable text — structured JSON, not HTML. That’s great for AI agents. It’s terrible for migration.

WordPress stores content as HTML. EmDash uses portable text. They’re fundamentally different formats. The WordPress import tool converts basic content. But any site with custom blocks, advanced layouts, or complex structures needs a serious engineering project to move over. The Playground imports a simple blog. Real sites are not simple blogs.

This is the hidden cost. Migration isn’t a weekend project. It’s a rewrite.

Questions answered
  • What is the EmDash Playground?The EmDash Playground is Cloudflare's free, browser-based demo that spins up a live instance of their CMS in seconds.
  • What are the main flaws of EmDash revealed in the Playground?Key flaws include content loss when editing in multiple tabs, passkey authentication failures on Linux, and custom content types that are not version-controlled.
  • Is EmDash ready to replace WordPress?No, the Playground shows EmDash is far from a WordPress replacement due to fundamental issues with state management, authentication, and ecosystem maturity.
Share This Article