Skip to content

The publication for web craftspeople Tuesday, 25 August 2026

Back-end

EmDash, Cloudflare’s TypeScript CMS, up against WordPress

Cloudflare is pushing EmDash, an open-source CMS written in TypeScript and built on Astro, billed as the spiritual successor to WordPress. Still at version 0.1.0, it makes one strong bet: isolating every plugin in its own sandbox.

On 1 April 2026 Cloudflare unveiled a project many first took for a prank: EmDash, an open-source content management system billed as the “spiritual successor” to WordPress. The product is very real, released under the MIT license, written in TypeScript and built on Astro. Five months on, it is still at version 0.1.0, a developer preview. Enough to judge the architecture, too early to talk about an ecosystem.

What EmDash is, and what it is not

EmDash is not a WordPress fork. No line of the original CMS was reused: the project was rewritten from scratch, with the help of coding agents, aiming at feature compatibility rather than code compatibility. Technically, EmDash installs as an Astro integration and provides an admin panel, a media library, a REST API and a plugin system.

The runtime target is Cloudflare Workers and its V8 isolate architecture, with Node.js compatibility. Deployment stays open: Workers, but also Netlify or Vercel. One caveat matters, and it is structural: the feature that sets EmDash apart — the plugin sandbox — only works fully on Cloudflare’s own infrastructure.

The central bet: isolating every plugin

EmDash’s value proposition rests on a statistic Cloudflare highlights: the vast majority of security incidents on WordPress sites come from plugins. The chosen answer is architectural. Each plugin declares its capabilities in a manifest and runs in its own isolate, with no direct access to the database or the file system.

{
  "name": "newsletter-widget",
  "version": "1.0.0",
  "capabilities": {
    "content": ["read"],
    "network": ["api.example.com"],
    "storage": ["kv:newsletter"]
  }
}

The principle is declarative permissions: a plugin can only touch what its manifest explicitly allows. On paper, the model closes the most common entry point for WordPress compromises. In practice, it relies on Cloudflare’s Dynamic Workers, which is why the sandbox does not keep its promise on ordinary hosting.

Isolating every plugin in its own sandbox answers the problem that costs WordPress the most: its plugins.

EmDash up against WordPress

The table below sets the two approaches against each other on the points that actually decide a CMS choice.

CriterionEmDashWordPress
LanguageTypeScriptPHP
FoundationAstro 6 integrationMonolithic core
PluginsIsolated, declared capabilitiesDirect core access
ExecutionIsolates (Workers), sandboxShared PHP process
LicenseMITGPL
AI integrationNative MCP serverVia third-party plugins
EcosystemBarely anyHuge, mature
Maturity0.1.0, previewProven for 20 years

Caution: EmDash is a 0.1.0 preview. No plugin ecosystem, no visual page builder, and a security argument that assumes Cloudflare hosting to be fully effective. None of that makes it a candidate for migrating a production site today.

Migrating from WordPress: what carries over

EmDash does not require starting from a blank page. The project accepts WordPress WXR export files and ships an exporter plugin on the WordPress side. The media library is imported automatically, and custom post types are converted into Astro content collections.

# Create an Astro project, then add EmDash
npm create astro@latest demo-site
cd demo-site
npx astro add emdash

# Import a WordPress export (WXR file)
npx emdash import ./wordpress-export.xml

On a simple editorial site, moving the content takes minutes. The difficulty lies elsewhere: in everything a real WordPress site carries around the content — business plugins, a custom theme, SEO settings, forms. Those have no off-the-shelf equivalent in an ecosystem that is still empty.

A CMS built for agents

Where WordPress bolted artificial intelligence on through successive plugins, EmDash builds it into the foundation. The CMS ships a native MCP server: an agent can read, create or update content with no extra tooling, talking straight to the admin. Add to that Agent Skills and a command-line interface designed for automation, which make driving the CMS by script or by agent as natural as clicking in the panel.

Two defaults extend that stance. Authentication relies on passkeys rather than a username-password pair, cutting off the brute-force attacks that target the login page. And x402 payment support is planned at the core level, to charge for access or content without an e-commerce plugin. Taken together, these building blocks sketch a CMS designed for a web where agents matter as much as visitors.

What is still missing

The list of absentees is as telling as the list of features. EmDash offers no visual page builder, yet that is exactly what cemented WordPress’s hold on non-developers. The plugin and theme catalogue is close to empty, which pushes back onto the team everything a plugin used to solve in one click. SEO, fine-grained role management and advanced internationalisation still have to prove themselves in the field.

Finally, there is the reliance on Cloudflare for the sandbox. The CMS deploys elsewhere, but its strongest selling point loses force away from the infrastructure it was born on. Something to keep in mind before making it an architectural pillar.

For whom, and from when

EmDash appeals first to teams already settled in the TypeScript and Astro world, comfortable deploying on Workers, and receptive to the security argument. For a prototype, a blog mockup or serious technology scouting, trying it makes sense right now. For a client site in production, prudence says to wait: a 0.1.0 release with no ecosystem does not offer the guarantees a billed project demands. The CMS choice itself remains open and deserves to be asked project by project.

Key takeaways

EmDash brings serious architectural ideas: end-to-end TypeScript, capability-isolated plugins, a built-in MCP server for agents. Its limits are just as clear: a 0.1.0 preview, a non-existent ecosystem, a sandbox tied to Cloudflare. At this stage it is a project to watch and to prototype, not a production base. The direction, though, deserves the attention of anyone who lives with plugin flaws every day.

On my projects, WordPress stays the default choice for one good reason: its ecosystem. But EmDash’s idea speaks to me, because I spend an unreasonable amount of time watching third-party plugins. A model where a plugin can only touch what it has declared is exactly the guarantee WordPress lacks. I will not migrate anything on 0.1.0, but I am keeping the project open in a tab — and testing it on a side project before everyone else. — Simon Janvier

Further reading

Primary source: EmDash, the open-source spiritual successor to WordPress (Cloudflare blog).

Also on Mail Studio

Read next