{"id":97982,"date":"2026-10-02T05:26:00","date_gmt":"2026-10-02T09:26:00","guid":{"rendered":"https:\/\/overcentral.com\/en\/?p=97982"},"modified":"2026-09-29T07:47:23","modified_gmt":"2026-09-29T11:47:23","slug":"emdash-free-tier-hidden-costs-97982","status":"publish","type":"post","link":"https:\/\/overcentral.com\/en\/emdash-free-tier-hidden-costs-97982\/","title":{"rendered":"EmDash Free Tier: The Hidden Costs You&#8217;ll Pay"},"content":{"rendered":"<p>Cloudflare launched EmDash on April 1st, 2026. A spiritual successor to WordPress. Open source. MIT licensed. And free to use.<\/p>\n<p>That last part is technically true. But it&#8217;s also the most misleading claim in the entire announcement.<\/p>\n<p>The free tier of EmDash gives you a CMS that runs on Cloudflare Workers. You get 100,000 requests per day, 10 million per month. Sounds generous. But here&#8217;s what they don&#8217;t put in bold: the feature that makes EmDash worth considering \u2014 sandboxed plugin isolation \u2014 requires the paid plan. Without it, you&#8217;re running a version 0.1 CMS with zero plugins and no security advantage over WordPress.<\/p>\n<h2>The Plugin Sandbox Is Paywalled<\/h2>\n<p>EmDash&#8217;s defining pitch is plugin security. Every plugin runs in its own V8 isolate via dynamic workers. No database access unless explicitly granted. No file system access. No network calls unless declared.<\/p>\n<p>That&#8217;s the headline. The reason anyone would migrate.<\/p>\n<p>But dynamic workers require the <a href=\"https:\/\/www.cloudflare.com\/plans\/developer-platform\/\" target=\"_blank\" rel=\"sponsored noopener noreferrer\" data-iacss-external=\"1\">Cloudflare Workers Paid plan<\/a>. $5 a month minimum. If you deploy on the free tier, you get error code 10195. Switch to a paid plan. The sandbox \u2014 the entire reason EmDash exists \u2014 is not free.<\/p>\n<p>Self-hosting doesn&#8217;t save you either. Run EmDash on your own Node.js server and sandboxed plugins don&#8217;t work at all. They run in-process. No isolation. No security advantage. You&#8217;re left with a beta CMS, zero plugin ecosystem, and the same attack surface as WordPress.<\/p>\n<p>The code is free. The engine that makes it worth using is a monthly subscription.<\/p>\n<h2>The $13,000 Midnight Bill<\/h2>\n<p>Serverless billing sounds great in theory. Pay for what you use. Scale to zero. No idle server costs.<\/p>\n<p>In practice, it means every page view, every admin click, every API call is a billing event. Workers bill per request and per CPU millisecond. D1 database reads bill per row. R2 operations bill per operation. KV lookups bill per read and write. One page view can hit four or five different billing meters simultaneously.<\/p>\n<p>Someone on the Cloudflare forum did the math. A basic DDoS-style attack \u2014 10,000 IPs, one request <a href=\"https:\/\/overcentral.com\/en\/meta-launches-zgateway-proxy-handles-1-billion-ops-per-second\/\" title=\"Meta Launches ZGateway Proxy, Handles 1 Billion Ops Per Second\" data-iacss-internal=\"1\">per second<\/a> each \u2014 generates 26 billion requests in a month. On the paid plan, that&#8217;s roughly $13,000.<\/p>\n<p>And here&#8217;s the kicker: Cloudflare does not offer a global spending cap. No kill switch. No way to say &#8220;stop charging me at $X.&#8221; You can set CPU time limits per request. You can configure rate limiting through WAF rules. But rate limiting is per IP, not a global request cap. A distributed bot attack from thousands of different IPs goes right through it.<\/p>\n<p>WordPress hosting costs $20 a month. Flat. Predictable. If you get 10 visitors or 10 million, your bill stays the same. Your server might crash, but your credit card won&#8217;t.<\/p>\n<p>EmDash flips that completely. And for small bloggers, freelancers, and publishers \u2014 the exact audience Cloudflare is targeting \u2014 that&#8217;s not a feature. It&#8217;s a liability.<\/p>\n<h2>The Strongest Counterargument \u2014 And Why It Fails<\/h2>\n<p>Proponents of EmDash will say this: Cloudflare&#8217;s pricing is transparent. You know the per-unit costs upfront. You can monitor usage in the dashboard. You can set CPU time limits and WAF rules. Responsible operators manage their infrastructure. This is not a hidden cost problem; it&#8217;s a user education problem.<\/p>\n<p>Fair point. Transparency matters. And yes, experienced developers can monitor dashboards and configure rate limits.<\/p>\n<p>But here&#8217;s the dismantling: the people Cloudflare is targeting with EmDash are not experienced developers. They&#8217;re bloggers, small publishers, freelancers migrating from WordPress because they heard it&#8217;s insecure. These are people who want to publish content and not think about infrastructure. EmDash demands the opposite. It requires you to understand Workers billing, D1 pricing, WAF configuration, and CPU time limits \u2014 just to avoid a surprise bill. There is no built-in spending cap. No automated kill switch. No safety net. The most vulnerable users \u2014 the ones with the least infrastructure knowledge \u2014 are the most exposed to the worst-case scenario. That&#8217;s not a transparency problem. That&#8217;s a design problem.<\/p>\n<h2>Vendor Lock-In Disguised as Open Source<\/h2>\n<p>EmDash is MIT licensed. The code is on GitHub. You can fork it. Read it. Run it locally.<\/p>\n<p>But every meaningful feature requires Cloudflare infrastructure. The plugin sandbox requires dynamic workers, which only exist on Cloudflare&#8217;s paid runtime. The database uses D1, which is SQLite-compatible but not portable to Postgres or MySQL without rewriting. Media storage uses R2, which is S3-compatible but tightly integrated with Workers. Sessions use KV.<\/p>\n<p>A production EmDash site on Cloudflare uses at minimum five separate Cloudflare products. Workers, D1, R2, KV, and Workers AI. Each is a separate billing line. None are portable.<\/p>\n<p>Contrast that with WordPress. You can host it on a $5 VPS. Move it to AWS. Run it on a Raspberry Pi. Same code. Same functionality. Same cost structure. That portability is the actual spirit of open source. EmDash doesn&#8217;t have it.<\/p>\n<h2>The Real Second-Order Effect Everyone Misses<\/h2>\n<p>Here&#8217;s what most coverage of EmDash overlooks: the billing unpredictability creates a perverse incentive for Cloudflare to <em>not<\/em> build a spending cap.<\/p>\n<p>Think about it. Cloudflare makes money when your site gets traffic. More requests, more database reads, more KV lookups, more billable events. A spending cap would limit their revenue from successful sites. It would also protect users from attacks, which is the right thing to do. But it would cap upside.<\/p>\n<p>WordPress hosting providers have the opposite incentive. A flat-rate host makes the same $20 whether you get 100 visitors or 100,000. They&#8217;re incentivized to keep your site running efficiently. They lose money <a href=\"https:\/\/overcentral.com\/en\/eu-cra-reporting-requirements-80362\/\" title=\"EU CRA Demands What Shipped and When You Knew\" data-iacss-internal=\"1\">when you<\/a> get DDoSed, not gain it.<\/p>\n<p>EmDash&#8217;s architecture aligns Cloudflare&#8217;s revenue with your site&#8217;s traffic. That doesn&#8217;t make it malicious. But it does make the absence of a spending cap structurally convenient for the vendor. <a href=\"https:\/\/overcentral.com\/en\/ai-influencer-profit-experiment-96593\/\" title=\"AI Influencers Made $157 \u2013 And That&amp;apos;s the Problem\" data-iacss-internal=\"1\">And that&#8217;s<\/a> a problem no amount of &#8220;transparent pricing&#8221; documentation solves.<\/p>\n<h2>Who EmDash Is Actually For \u2014 Right Now<\/h2>\n<p>If you&#8217;re a developer who loves TypeScript and Astro and wants to experiment, EmDash is interesting. Spin up the playground. Watch it evolve. Contribute on GitHub.<\/p>\n<p>But if you&#8217;re a small business owner, a blogger, a freelancer, or an agency building client sites, EmDash is not ready for you. The cost model is unpredictable. The plugin ecosystem is zero. The security sandbox requires a paid plan. The authentication system has known bugs. The editor loses content in certain edge cases.<\/p>\n<p>WordPress, for all its flaws, gives you predictable costs, 60,000 plugins, 20 years of battle testing, and hosting on any provider on the planet. You can maintain your WordPress site properly \u2014 keep plugins updated, run backups, use a decent host, run a security scanner \u2014 and eliminate the practical risk EmDash&#8217;s architecture is designed to solve.<\/p>\n<p>Don&#8217;t trade a predictable $20 hosting bill for a mystery bill with no ceiling.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloudflare launched EmDash on April 1st, 2026. A spiritual successor to WordPress. Open source. MIT licensed. And free to use. That last part is technically true. But it&#8217;s also the most misleading claim in the entire announcement. The free tier of EmDash gives you a CMS that runs on Cloudflare Workers. You get 100,000 requests [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":98778,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/97982.png","fifu_image_alt":"EmDash Free Tier: The Hidden Costs You'll Pay","footnotes":""},"categories":[31],"tags":[],"class_list":["post-97982","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology"],"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/97982.png","fifu_image_alt":"EmDash Free Tier: The Hidden Costs You'll Pay","_links":{"self":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/97982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/comments?post=97982"}],"version-history":[{"count":1,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/97982\/revisions"}],"predecessor-version":[{"id":98321,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/97982\/revisions\/98321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media\/98778"}],"wp:attachment":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media?parent=97982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/categories?post=97982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/tags?post=97982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}