Cloudflare’s EmDash sandboxes plugins to fix WordPress’s security flaw
In late August 2026 Cloudflare released EmDash, a TypeScript CMS pitched as the spiritual successor to WordPress, and moved its own blog onto it. The core idea is one mechanism: isolating every plugin in a sandbox with declared permissions, where 96% of WordPress flaws come from plugins.
Late August 2026. Cloudflare releases EmDash, a CMS written entirely in TypeScript and pitched as the spiritual successor to WordPress, then moves its own blog onto it. 96%. That is the share of WordPress security issues that originate in plugins, according to Patchstack. Why it matters: instead of patching plugins one by one, EmDash attacks the problem at the root — isolating every extension in a sandbox with permissions declared at install time.
Rebuilding WordPress from the ground up
EmDash starts from an observation: WordPress powers over 40% of the web, but its plugin architecture has not changed since the project was born 24 years ago. Back then, Amazon EC2 did not exist; today, hosting a site often means deploying a JavaScript bundle to a distributed network at near-zero cost.
Cloudflare says it rebuilt WordPress from scratch with its coding agents in two months, after already rewriting Next.js in a week. The result is a serverless CMS that can run on your own hardware or any platform, powered under the hood by Astro. EmDash is fully open source under the MIT license, and no WordPress code was reused — which is precisely what allows the permissive license.
The construction method deserves a mention: Cloudflare says it wrote EmDash in two months with its coding agents, a practice the self-hosting community watches with a mix of enthusiasm and caution — the editor of selfh.st noted in August that he now distinguishes “AI assistance” from “vibe coding” in his directory. For the adopter, the question is not who typed the code, but whether the result is maintainable and auditable.
The choice of Astro is not incidental. It is a content-first framework that ships static HTML by default and hydrates only what needs JavaScript — which means an EmDash site can be served as plain static files, at near-zero hosting cost, without a PHP runtime or a database. That is the same architectural leap Cloudflare is arguing for: a twenty-four-year-old CMS rebuilt for the static, serverless era.
Plugin sandboxing, the real break
WordPress’s structural flaw is easy to describe: a plugin is a PHP script that hooks directly into the core, with full access to the database and filesystem. Installing a plugin means trusting it with nearly everything. Patchstack’s numbers are blunt: 96% of flaws come from plugins, and 2025 saw more high-severity vulnerabilities than the previous two years combined.
EmDash reverses the logic. Every plugin runs in its own isolate, via Cloudflare Dynamic Workers. It does not get direct access to the data, but capabilities granted through bindings, based on what the plugin explicitly declares in its manifest. The guarantee is strict: a plugin can only do what it declared, nothing else.
import { definePlugin } from "emdash";
export default () =>
definePlugin({
id: "notify-on-publish",
version: "1.0.0",
capabilities: ["read:content", "email:send"],
hooks: {
"content:afterSave": async (event, ctx) => {
if (event.collection !== "posts" || event.content.status !== "published") return;
await ctx.email!.send({
to: "[email protected]",
subject: `New post published: ${event.content.title}`,
text: `"${event.content.title}" is now live.`,
});
ctx.log.info(`Notified editors about ${event.content.id}`);
},
},
}); This plugin declares two capabilities — reading content and sending email. It has no network access at all: if it wants any, it must declare the exact host. The administrator therefore knows, before installing, exactly what the plugin is asking for, much like an OAuth flow.
Breaking the marketplace lock-in
Sandboxing solves a second, less visible problem: marketplace lock-in. WordPress.org manually reviews every plugin, and the queue stood at over 800 plugins with at least a two-week turnaround at the time of the announcement. Worse, because plugins run in the same context as WordPress, part of the ecosystem argues they must carry the GPL license forward — a legal lock that forces authors to give their code away everywhere except the marketplace.
EmDash clears both constraints. First, each plugin can carry any license, since it runs independently and shares no code with the core. Second, because the code runs in a sandbox, a site can trust a plugin without ever seeing its code. That is a change in the business model for extension developers, and a change in risk level for hosters.
An early preview, not yet a replacement
EmDash ships as v0.1.0, at the developer beta stage. It can be deployed to a Cloudflare account or any Node.js server, and tried through the EmDash playground. The scope remains that of a preview: compatible with WordPress uses in spirit, but far from the maturity of a twenty-four-year-old ecosystem — themes, extensions, migrations, and documentation.
That is exactly where expectations should sit. EmDash is not yet the WordPress replacement; it is a serious proof of concept, backed by a player with the means to mature it, and with the nerve to run its own blog on it. For a self-hoster, it is a signal to watch closely, not necessarily an immediate migration.
For a self-hoster, basic deployment is simple: EmDash is powered by Astro, so the generated site can be served from a Node.js server or on Cloudflare. The plugin-sandboxing promise, however, rests on Cloudflare’s Workers runtime — an architectural detail to weigh if you want full independence from their ecosystem.
The release also lands amid a broader open-source identity debate. In the same week, LibreOffice 26.8 shipped leaning hard into a “no AI” pitch, while Cloudflare rebuilt a CMS using AI agents — two open-source camps staking opposite positions on what role AI should play in their tooling. EmDash sits firmly in the pro-AI camp, and its maintainability over the next year will be read by the community as a referendum on that bet.
Beyond the CMS itself, EmDash models something the wider self-hosting ecosystem could copy: declarative, capability-based permissions for third-party code. If the pattern spreads — a manifest that says exactly what an extension may do, enforced by a sandbox — it would address the single largest attack surface in self-hosted software, which is not the core but the plugins, integrations, and community add-ons bolted onto it.
Verdict
If you are launching a new self-hosted blog or content site, EmDash deserves a try now: capability-based plugin isolation is the cleanest answer to date to WordPress’s structural problem, and the MIT license clears the usual legal friction.
If you run a WordPress site in production, do not migrate yet: v0.1.0 is a preview, and the theme and extension ecosystem does not exist at the scale you rely on. Follow the release cadence and prepare a cutover plan for when maturity arrives.
If you develop plugins, look hard at EmDash’s capability and licensing model: it is an opportunity to distribute extensions without the GPL constraint or dependence on a single marketplace — ground WordPress will not be able to offer.