Cloudflare has turned its own blog into a large-scale test case for EmDash.
The open-source content management system (CMS) it introduced earlier this year, is touted as a modern alternative to the traditional WordPress model. The move is more than a visual redesign.
On August 12, Cloudflare said that it has migrated the production blog to EmDash while also rebuilding its frontend, giving the company an opportunity to test the CMS against a site with a substantial archive, unpredictable traffic, and the operational requirements of a major publishing platform.
The idea behind the migration is closely tied to Cloudflare's internal concept of "Customer Zero."
Rather than developing a product and waiting for external customers to discover its limitations, Cloudflare uses its own infrastructure and products internally first. The company describes itself as its own first and most demanding customer, with the expectation that problems discovered internally should be addressed before the technology reaches a wider customer base. EmDash provided a natural opportunity to apply that philosophy because the CMS was still in an early stage when the blog migration began.
EmDash was introduced in April as a full-stack TypeScript CMS built around Astro and designed to run on serverless infrastructure.
Cloudflare positioned it as a spiritual successor to WordPress, retaining some of the flexibility associated with traditional CMS platforms while changing the underlying architecture.
It is open source under the MIT license and can run on Cloudflare's infrastructure or on Node.js, rather than being tied exclusively to Cloudflare.
One of the central differences is how EmDash handles extensions.
WordPress plugins traditionally operate with broad access to the environment in which the site runs, meaning a vulnerable or poorly written plugin can create security problems for the wider installation. EmDash instead runs plugins inside isolated Worker environments with explicit permissions.
The intention is to preserve an extensible ecosystem without requiring every site to implicitly trust plugin code with the same level of access.
The architecture also reflects Cloudflare's broader shift toward serverless applications.
EmDash uses Astro for the frontend and can use Cloudflare Workers for execution, D1 for databases, and R2 for media storage.
The same CMS can also run on a Node.js server with SQLite, giving it a path outside the Cloudflare platform. The project's GitHub repository describes it as a full-stack TypeScript CMS designed around Astro and Cloudflare, with starter templates for blogs, marketing sites, and portfolios.
The Cloudflare Blog was therefore a particularly demanding environment in which to test those ideas.
According to the migration report, the site normally handles around 75 requests per second but can experience spikes exceeding 5,000 requests per second.
Some of those surges happen when a new article attracts significant attention, while others appear without an obvious connection to publishing activity. Cloudflare consequently tested the proposed architecture with several traffic scenarios, including gradual ramps, breakpoint tests, and an immediate burst reaching 7,000 requests per second.
The tests were not limited to whether pages could technically remain online.
Cloudflare established specific availability and latency thresholds, including limits on failed requests and response times at the 95th and 99th percentiles. That approach matters because the blog itself is a public demonstration of the infrastructure behind the CMS.
A system that works adequately under ordinary traffic but struggles when an article suddenly goes viral would not provide much evidence for Cloudflare's scalability claims.
The migration also exposed the less glamorous problems that tend to appear when an early-stage CMS encounters a mature publishing operation.
Cloudflare tested ordinary editorial tasks such as creating and publishing posts, scheduling articles, adding media, and unpublishing content. The company found gaps involving media, content search, bylines, localization, SEO, content security policies, and parts of the administrative editor. Scheduled publishing was one particularly important omission because it did not work until EmDash version 0.19.0.
That detail is arguably one of the more interesting parts of the experiment. Cloudflare was not simply presenting EmDash as a finished platform and moving its blog over to demonstrate a polished result. The migration became part of the development process itself. Problems encountered by the editorial team were turned into changes to the CMS, making the company's own publishing operation a source of requirements and testing data.
The frontend migration followed a similar philosophy.
Alongside the backend changes, Cloudflare rebuilt the blog interface using patterns from its Kumo design system.
The redesign brings the blog closer visually to Cloudflare's main website, dashboard, and other properties, while introducing changes such as dark mode and a different overall reading experience. In that sense, the visible redesign is only the part of the project that readers immediately notice. Much of the work happened underneath the interface.
EmDash also takes an unusually direct approach to AI-assisted development and content management.
The CMS includes an MCP server, allowing compatible agents to interact with an EmDash installation through tools rather than relying solely on the graphical administration interface. Its CLI can perform operations such as searching content, uploading media, and managing schemas, while Agent Skills provide additional context for agents working with an EmDash codebase.
That approach is part of a broader argument behind EmDash.
Cloudflare is not simply replacing PHP with TypeScript or moving a conventional CMS onto serverless infrastructure. It is designing a system in which the CMS, its frontend, its extension model, and its development workflow are intended to fit a web increasingly built with JavaScript, edge runtimes, and AI coding tools.
The use of Astro is particularly relevant here because EmDash themes are essentially Astro projects, allowing frontend developers to work with familiar routes, layouts, components, and styles rather than learning an entirely separate templating system.
The project's AI orientation has also attracted attention from developers outside Cloudflare.
Posts discussing EmDash on LinkedIn have highlighted its sandboxed plugin model, Astro foundation, TypeScript architecture, and built-in support for agents. At the same time, some developers have pointed out the obvious limitation: EmDash remains a young project with a much smaller ecosystem than WordPress.
Its architecture may address some long-standing problems, but an established CMS ecosystem is difficult to reproduce simply by releasing a new platform.
That distinction is important when looking at Cloudflare's own migration. The fact that the Cloudflare Blog now runs on EmDash is meaningful evidence that the system can operate a demanding production publication, but it is not proof that EmDash has already displaced WordPress as a general-purpose CMS.
Cloudflare itself describes the project as an early-stage platform, and the migration process uncovered features that still needed to be built or refined.
What the blog migration does demonstrate is a different model for developing infrastructure software.
Cloudflare is using one of its most visible properties as a live test environment, exposing a new CMS to real editorial workflows and real traffic rather than relying exclusively on synthetic benchmarks or demonstration sites. The resulting feedback can then flow back into the open-source project.
Cloudflare has done something more useful than simply announcing another CMS. It has put the system behind one of its own major public properties and invited the resulting problems to become part of the product's development.
For readers, the most obvious result is a redesigned Cloudflare Blog.
For developers, the more significant change is underneath it: a production-scale publication has become a test case for a CMS built around Astro, serverless execution, isolated plugins, and programmatic access for AI agents.





















































































































































































































































































































































































