{"id":98040,"date":"2026-10-08T00:38:00","date_gmt":"2026-10-08T04:38:00","guid":{"rendered":"https:\/\/overcentral.com\/en\/?p=98040"},"modified":"2026-09-29T07:58:22","modified_gmt":"2026-09-29T11:58:22","slug":"emdash-plugin-sandbox-cost-98040","status":"publish","type":"post","link":"https:\/\/overcentral.com\/en\/emdash-plugin-sandbox-cost-98040\/","title":{"rendered":"The Real Cost of EmDash\u2019s Plugin Sandbox"},"content":{"rendered":"<p>You\u2019ve read the headlines. Plugins run in isolated V8 isolates. No more <code>WPDB<\/code>codecodecodecode-level access. Security solved. But the cost model behind that sandbox is the part nobody is talking about on launch day.<\/p>\n\n<p>The $5\/month paid plan is the entry fee. <a href=\"https:\/\/overcentral.com\/en\/star-wars-zero-company-crash-fix-78583\/\" title=\"The Real Fixes for Star Wars Zero Company Crashing During\" data-iacss-internal=\"1\">The real<\/a> expense lives in the metering.<\/p>\n\n<h2>Every Plugin Invocation Is a Billable Event<\/h2><p>WordPress plugins run in the same PHP process. One server, one bill. EmDash flips that: each plugin hook triggers a separate Dynamic Worker invocation. That worker spins up, executes, and spins down. You pay per request and per CPU millisecond.<\/p>\n\n<p>A single page load that fires three hooks\u2014say, a content filter, an email notification, and a logging routine\u2014generates three separate Worker invocations. Plus the base page render itself. That\u2019s four billable events for one visitor.<\/p>\n\n<p>Now add D1 database reads. Each plugin that queries content triggers a row-read charge. R2 storage operations for media. KV lookups for plugin state. A single user action can hit five different <a href=\"https:\/\/www.cloudflare.com\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">Cloudflare<\/a> billing meters simultaneously.<\/p>\n\n<p>The free tier includes 10 million Worker requests. That sounds generous until you run a site with a contact form, an analytics tracker, and a caching plugin. A modest blog with 50,000 page views per month and three active plugins easily burns 200,000+ Worker invocations. On the paid plan, after the included 10 million, you pay $0.30 per additional million requests plus CPU time. That\u2019s negligible for low traffic. But it scales linearly with every spike.<\/p>\n\n<h2>The $5 Floor, the $13,000 Ceiling<\/h2><p>A forum post that surfaced shortly after launch calculated the worst case: a basic DDoS attack using 10,000 distinct IPs, each making 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>, could rack up 26 billion requests in a month. At $0.30 per million after the free allowance, that\u2019s roughly $7,800 in Worker charges alone. Add D1 and R2 operations, and the total crosses $13,000.<\/p>\n\n<p>Cloudflare offers no global spending cap. You can set CPU time limits per request and rate-limiting rules per IP, but a distributed bot attack bypasses IP-based caps trivially. The site stays online, the workers keep firing, and the meter keeps running.<\/p>\n\n<p>Compare that to a $20\/month shared WordPress host. Under the same attack, your site crashes. Your bill doesn\u2019t change. That\u2019s not a bug\u2014it\u2019s a fundamental difference in risk profile.<\/p>\n\n<h2>Self-Hosting Kills the Feature That Justifies the Cost<\/h2><p>If you self-host EmDash on a Node.js server to avoid Cloudflare\u2019s variable billing, you lose the plugin sandbox entirely. Plugins run in-process, with no isolation. The security advantage evaporates. You\u2019re left with a brand-new CMS that has zero plugin ecosystem and no security edge over WordPress.<\/p>\n\n<p>So the architecture forces you onto Cloudflare\u2019s runtime. The code is MIT-licensed, but the sandbox is proprietary infrastructure. Vendor lock-in by design.<\/p>\n\n<h2>The 402 Twist: Per-Use Plugin Pricing<\/h2><p>EmDash includes a built-in 402 payment protocol. Plugin authors can charge per invocation instead of per download or per subscription. A plugin that sends transactional emails could bill $0.001 per email. A form plugin could charge per submission.<\/p>\n\n<p>For a small blog, that\u2019s pennies. For a high-traffic ecommerce site with thousands of orders a day, the cost compounds fast. And it\u2019s unpredictable\u2014you don\u2019t know which plugins will spike in usage until they do.<\/p>\n\n<p>This is a paradigm shift from WordPress, where you pay a flat fee for a plugin license regardless of usage. EmDash\u2019s model rewards low-traffic sites and punishes successful ones.<\/p>\n\n<h2>What the Practitioner Needs to Watch<\/h2><ul>\n<li><strong>Map your plugin cascades:<\/strong> Every hook that triggers a Dynamic Worker is a cost line. Audit how many plugins fire per page load.<\/li>\n<li><strong>Understand the free tier math:<\/strong> 10 million requests is about 330,000 per day. A busy site with 10 plugins could hit that in a week.<\/li>\n<li><strong>No spending cap means you need external monitoring.<\/strong> Cloudflare\u2019s dashboards show usage but won\u2019t stop billing.<\/li>\n<li><strong>The 402 protocol will shift plugin economics.<\/strong> Factor per-use costs into your budget, not just flat subscription costs.<\/li>\n<\/ul>\n\n<p>EmDash\u2019s pricing model isn\u2019t better or worse than WordPress\u2014it\u2019s a different kind of risk. Predictable if you control your plugin surface. Catastrophic if you don\u2019t.<\/p>\n\n<h3>FAQ<\/h3><p><strong>Q: Can I set a hard monthly spending limit on EmDash plugin costs?<\/strong><\/p>\n<p><strong>A:<\/strong> No. Cloudflare <a href=\"https:\/\/overcentral.com\/en\/rascal-does-not-dream-trailer-release-80139\/\" title=\"Rascal Does Not Dream Drops Trailer for Final Film\" data-iacss-internal=\"1\">does not<\/a> offer a global spending cap. You can set per-request CPU limits and WAF rate rules, but a distributed attack or unexpected traffic spike will still generate billable requests.<\/p>\n\n<p><strong>Q: If I self-host EmDash, do I avoid all these costs?<\/strong><\/p>\n<p><strong>A:<\/strong> Yes, but you also lose the plugin sandbox. Self-hosted EmDash runs plugins in-process with no isolation, defeating the primary security advantage. You also lose Cloudflare\u2019s edge infrastructure for performance.<\/p>\n\n<p><strong>Q: How does the 402 payment protocol affect plugin pricing?<\/strong><\/p>\n<p><strong>A:<\/strong> Plugin authors can set per-invocation fees. For example, a form plugin might charge $0.01 per submission. You pay only when the plugin runs, not a flat license fee. This can be cheaper for low-traffic sites but expensive for high-volume ones.<\/p>\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can I set a hard monthly spending limit on EmDash plugin costs?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. Cloudflare does not offer a global spending cap. You can set per-request CPU limits and WAF rate rules, but a distributed attack or unexpected traffic spike will still generate billable requests.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">If I self-host EmDash, do I avoid all these costs?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes, but you also lose the plugin sandbox. Self-hosted EmDash runs plugins in-process with no isolation, defeating the primary security advantage. You also lose Cloudflare\u2019s edge infrastructure for performance.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How does the 402 payment protocol affect plugin pricing?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Plugin authors can set per-invocation fees. For example, a form plugin might charge $0.01 per submission. You pay only when the plugin runs, not a flat license fee. This can be cheaper for low-traffic sites but expensive for high-volume ones.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>You\u2019ve read the headlines. Plugins run in isolated V8 isolates. No more WPDBcodecodecodecode-level access. Security solved. But the cost model behind that sandbox is the part nobody is talking about on launch day. The $5\/month paid plan is the entry fee. The real expense lives in the metering. Every Plugin Invocation Is a Billable Event [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":99463,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/98040.png","fifu_image_alt":"The Real Cost of EmDash\u2019s Plugin Sandbox","footnotes":""},"categories":[31],"tags":[],"class_list":["post-98040","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology"],"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/98040.png","fifu_image_alt":"The Real Cost of EmDash\u2019s Plugin Sandbox","_links":{"self":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98040","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=98040"}],"version-history":[{"count":1,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98040\/revisions"}],"predecessor-version":[{"id":99464,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98040\/revisions\/99464"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media\/99463"}],"wp:attachment":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media?parent=98040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/categories?post=98040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/tags?post=98040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}