Cloudflare Transitions Main Blog to EmDash, Its Proprietary CMS
Cloudflare has recently elucidated the transition of its primary blog to EmDash, an internally developed open-source content management system.
This innovative platform aims to enhance both performance and caching capabilities and was rigorously tested to accommodate a staggering 7,000 requests per second.
As previously highlighted on InfoQ, Cloudflare unveiled the v0.1.0 developer preview of EmDash in April. This latest CMS, crafted in TypeScript, is positioned as a successor to WordPress.
The production environment employs EmDash on a Worker, featuring multiple layers of caching, including Workers Cache and an EmDash object cache powered by Workers KV.
Additionally, Cloudflare Hyperdrive is utilized to link EmDash with a PlanetScale database.
Identifying constraints with its former platform, Cloudflare describes itself as “Customer Zero” for EmDash.
The blog generally manages around 75 requests per second but can experience surges exceeding 5,000 RPS, rendering page load efficiency a crucial factor.
Kody Jackson, senior manager of content engineering at Cloudflare, along with systems engineer Diogo Carneiro and senior design engineer Amy Dutton, have asserted that the migration resulted in a site that is both faster and more reliable. They noted:
When comparing the p95 response latencies of the old infrastructure (represented by the green line) and the new EmDash configuration (depicted by the yellow line), a pronounced disparity emerged.
The prior platform exhibited sporadic latency spikes under load, while the new architecture maintains a remarkably consistent response profile.
By deploying EmDash on Cloudflare Workers in conjunction with our updated caching mechanisms, we’ve significantly enhanced the reading experience.
Cloudflare employed a proxy Worker to systematically direct traffic from the legacy CMS to EmDash, equipped with an automatic reversion to the previous site should any errors arise.
The implementation commenced by routing 1% of the traffic and escalated gradually as the team verified the new system’s integrity, achieving full switch-over in a mere 24 hours. Jackson, Carneiro, and Dutton remarked:
We launched a proxy Worker designed to intelligently manage traffic between the old blog and the new EmDash site.
This Worker established a version cookie on requests, allowing us to navigate incoming traffic either to the new or legacy experience correspondingly. Moreover, this methodology enabled us to revert to the legacy blog in the event of any 500 errors on the new site.
Reddit discussions highlight the migration strategy, wherein a commenter emphasized the significance of the proxy Worker, cookie-based routing, and the fallback system:
The zero-downtime proxy Worker coupled with cookie routing is often underestimated by many teams. A well-prepared rollout plan typically necessitates a kill switch, per-request fallback, and metrics partitioned by cohort to detect cache regressions before scaling from 1% to 100%.
The migration further augmented accessibility for AI agents, introducing a new MCP server for the Cloudflare Blog alongside another for EmDash, which enables authors to browse, create, edit, publish, and schedule content seamlessly.
On Reddit, user u/themistermeister draws comparisons between EmDash and Ghost, asserting:
EmDash’s cost is considerably lower, and its AI interactivity features are immensely superior. Furthermore, it boasts nearly limitless extendability supported by an impressive roadmap.
Editors have encountered some initial adoption challenges, primarily related to the editing experience and scheduling functionalities.

These issues have been communicated to the EmDash team, which Cloudflare states is diligently working towards an upcoming v1 release, although a specific launch date has yet to be confirmed.
Source link: Infoq.com.


