Key Takeaways
- Cloudflare migrated its blog to EmDash, a pre-1.0 edge CMS, cutting load times and increasing cache hits.
- A proxy Worker enabled zero-downtime migration, with traffic gradually ramped from 1% to 100%.
- EmDash adds an MCP server, making the blog agent-native and ready for AI-driven publishing.
Table of Contents
Cloudflare’s CMS Cutover and Customer Zero Test
On Wednesday, August 12, Cloudflare completed a migration of its corporate blog to EmDash, a pre-1.0 content management system built on Astro and designed to run on Cloudflare Workers.
The cutover transformed one of the web’s most heavily trafficked technical publications into a production validation lab for an emerging CMS.
Cloudflare’s engineering organization has published an unusually granular operational retrospective on the migration, including load-test parameters, rollout mechanics, and the performance gains observed after full deployment.
As documented in Cloudflare’s official retrospective, the visible interface changes, including dark mode and a modernized layout, were only the surface of a much larger infrastructure shift.
Inside Cloudflare, using its own products is a formal cultural requirement strong enough to appear in internal engineering standards.
Cloudflare is a web performance company, after all, so the speed at which a page loads becomes incredibly important.
Inside the Edge Architecture and Load Testing
Before committing to EmDash, Cloudflare’s team ran the platform through a broad set of editorial workflows.
Publishing, unpublishing, authoring, scheduling, and media handling generally held up, but gaps emerged around localization, SEO nuances, content security policies, and admin-editor usability.
The most critical early issue involved scheduled posts, which did not work before EmDash version 0.19.0.
To answer the scalability question, Cloudflare built three k6 scenarios that mirrored its unpredictable traffic profile.
- Ramp: load gradually increased to triple the production baseline, then cooled down.
- Breakpoint: traffic ramped from 0 to 100 requests per second over 10 minutes until something failed.
- Burst: an immediate 7,000-request-per-second spike tested how the platform handled sudden viral attention.
The acceptance thresholds were strict.
- Availability: fewer than 0.01% of HTTP requests could return 5xx errors.
- P95 latency: no more than 5% of responses could exceed 500ms.
- P99 latency: no more than 1% of responses could exceed 1000ms.
The resulting production architecture placed EmDash on a Cloudflare Worker, placed it behind Workers Cache and an object cache built on Workers KV, and connected to PlanetScale through Cloudflare’s first-party Hyperdrive integration.
The layered caching strategy now serves 99.5% of static files and 70% of total requests from cache, reducing database load and improving frontend response times.
Frontend Redesign and UX Changes
The backend migration created an opening to align the blog with Cloudflare’s Kumo design system and rebuild the reader experience.
Native light and dark modes, automatic system preference detection, and an explicit theme toggle were added with accessibility checks across both themes.
The subscription form moved from the top-right corner to a dedicated call-to-action block at the end of posts, eliminating a long-standing search-bar confusion.
Interior pages gained an ‘On this page’ table of contents on the right and a ‘Discuss Online’ panel on the left for sharing and community engagement.
Zero-Downtime Rollout Mechanics
The migration used a proxy Worker to route traffic between the legacy blog and the new EmDash-powered site.
A version cookie allowed traffic to be directed to the correct experience while preserving a fallback path to the legacy system on any 500 error.
A direct service binding let the proxy Worker dispatch requests to the new blog Worker without passing through a public hostname, DNS, TLS, or an outbound HTTP connection.
On launch day, Cloudflare began with 1% of traffic, moved to 5%, then 15%, and reached 100% after validating system health throughout the day.
The Business Signal Behind Agent-Native Publishing
Beyond the infrastructure and design changes, the migration introduced a Model Context Protocol server for the Cloudflare Blog.
That MCP exposes four tools for external agents.
- search_posts
- list_posts
- get_post
- list_tags
The MCP server required only a few hours of work because the new Worker already exposed intuitive APIs and AI search endpoints.
For blog authors, EmDash ships its own MCP server that can browse, create, edit, publish, schedule, and remove content without additional cost.
That positions the CMS as an agent-accessible system rather than a human-only editorial interface.
The first major test arrived during Agents Week, when Cloudflare published 18 posts in nine days and drew close to 3 million pageviews.
On the frontend, the new blog Worker served up to 450 requests per second during that period without noticeable issues.
Cloudflare also absorbed a 28,000-request-per-second DDoS attack on August 10 without reader-facing impact.
These are internal Cloudflare performance measurements, not independent third-party benchmarks.
For business leaders evaluating content infrastructure, the Cloudflare migration sharpens the criteria for enterprise CMS selection.
Scalability is no longer measured only in pageviews but in percentile latency under burst conditions, cache hit ratios, and the ability to expose structured APIs to autonomous agents.
The shift toward agent-native publishing suggests that editorial platforms will increasingly be evaluated as programmable systems, not static publishing tools.
Edge-Native Publishing Becomes the Business Default
Cloudflare’s migration demonstrates that modern enterprise publishing is now a compound problem of cache architecture, edge compute, and machine-readable content access.
For teams evaluating AI-ready publishing pipelines that need to scale, programmatic SEO AI automation is how Andres SEO Expert approaches it — contact us to start.
Frequently Asked Questions
What is EmDash and how does it differ from a traditional CMS?
EmDash is a pre-1.0 content management system built on Astro and designed to run on Cloudflare Workers. Unlike traditional CMS platforms that rely on centralized servers, EmDash runs at the edge, integrating with Workers Cache, Workers KV, and Hyperdrive to deliver content more efficiently and support agent-native publishing workflows.
How did Cloudflare migrate its blog to EmDash without downtime?
Cloudflare used a proxy Worker to route traffic between the legacy blog and the new EmDash-powered site. A version cookie directed users to the correct experience, while a fallback path preserved access to the legacy system on any 500 error. A direct service binding allowed the proxy Worker to dispatch requests to the new blog Worker without passing through a public hostname or establishing outbound HTTP connections. Traffic was gradually increased from 1% to 100% over the launch day.
What load testing scenarios did Cloudflare use to validate EmDash?
Cloudflare built three k6 scenarios: a ramp test that gradually increased load to triple the production baseline, a breakpoint test that ramped traffic from 0 to 100 requests per second over 10 minutes until failure, and a burst test that immediately made 7,000 requests per second to simulate sudden viral attention. Acceptance thresholds required fewer than 0.01% 5xx errors, P95 latency under 500ms, and P99 latency under 1000ms.
What performance gains did Cloudflare measure after the migration?
After the migration, the layered caching strategy served 99.5% of static files and 70% of total requests from cache, reducing database load and improving frontend response times. During Agents Week, the new blog Worker served up to 450 requests per second without noticeable issues, and Cloudflare absorbed a 28,000-request-per-second DDoS attack on August 10 without reader-facing impact.
What is the Model Context Protocol (MCP) server and why did Cloudflare add it to the blog?
The Model Context Protocol server exposes four tools for external agents: search_posts, list_posts, get_post, and list_tags. Cloudflare added it to make the blog agent-native, allowing AI systems and autonomous agents to programmatically access content. The MCP server took only a few hours to build because the new Worker already exposed intuitive APIs and AI search endpoints.
What does agent-native publishing mean for enterprise CMS evaluation?
Agent-native publishing positions editorial platforms as programmable systems rather than static publishing tools. For business leaders, scalability is no longer measured only in pageviews but in percentile latency under burst conditions, cache hit ratios, and the ability to expose structured APIs to autonomous agents. This shift sharpens the criteria for enterprise CMS selection.
