How Much Does EmDash Cost? Pricing Explained
EmDash is free to download and run. I run dashtro.com on Cloudflare’s free tier and pay $0/month for hosting. Here’s exactly what that means and where costs start if your site grows.
EmDash hosting is genuinely free for small sites. The $0/month starting point isn't marketing spin — it's how Cloudflare Workers pricing works.
EmDash: free and open source
EmDash itself is MIT licensed. Download it, modify it, deploy it, sell sites built on it. No per-site fees, no monthly subscription, no enterprise tier you need to unlock features. The full CMS — admin panel, content API, plugin system, search, SEO, comments — is included in the free, open-source package.
Compare this to WordPress, which is also free software but practically requires $25–50/month in managed hosting plus premium plugins. Or headless CMS platforms like Contentful ($300/month for teams) or Sanity ($99/month for non-trivial usage). For a full side-by-side cost breakdown , see the EmDash vs WordPress comparison.
Cloudflare hosting: the free tier
EmDash runs on three Cloudflare services. All three have generous free tiers:
- Workers (compute): 100,000 requests per day free. That's roughly 3,000 page views per day before you pay anything.
- D1 (database): 5 million rows read per day and 100,000 rows written per day. A typical page load reads 5-20 rows. You'd need 250,000+ daily page views to exceed read limits.
- R2 (media storage): 10 GB storage and 10 million read requests per month. That's hundreds of images before storage matters, and media is cached at the edge anyway.
| Workers | 100,000 requests/day | 10M requests/month ($5/mo) |
| D1 | 5M rows read/day, 100K writes/day | 25B rows read/mo, 50M writes/mo |
| R2 | 10 GB storage, 10M reads/month | $0.015/GB/month beyond free |
For a personal blog, portfolio, small business site, or content hub like dashtro.com, you'll stay within free limits comfortably. I've published articles, served pages, and managed content through the MCP server without approaching any limit.
When costs begin
If your site outgrows the free tier, Cloudflare's paid plan starts at $5/month (Workers Paid). This gets you:
- 10 million Worker requests per month (included)
- $0.30 per additional million requests
- 25 billion D1 rows read per month (included)
- 50 million D1 rows written per month (included)
- R2 storage at $0.015/GB/month beyond free allocation
At $5/month, you're handling a site with tens of thousands of daily visitors. A WordPress site at that traffic level would need $50-100/month in managed hosting to perform well.
Cost comparison: EmDash vs WordPress hosting
For a small content site (under 1,000 daily visitors):
- EmDash on Cloudflare free tier: $0/month
- WordPress on shared hosting: $5-10/month (slow, shared resources)
- WordPress on managed hosting: $25-50/month (WP Engine, Kinsta)
For a medium site (1,000-10,000 daily visitors):
- EmDash on Workers Paid: $5/month
- WordPress on managed hosting: $50-100/month
| Small (<1K visitors/day) | $0/month | $5–50/month |
| Medium (1K–10K visitors/day) | $5/month | $50–100/month |
| Large (10K+ visitors/day) | $5–20/month (usage-based) | $100–500+/month |
The gap widens at scale because EmDash's serverless architecture means you only pay for requests processed. There's no idle server burning money while nobody visits.
Hidden costs to know about
EmDash has no hidden costs in the traditional sense — no premium features locked behind a paywall. But there are real costs to consider:
- Domain name: $10-15/year (same as any site)
- Your time: EmDash is v0.1. If something breaks, there's no support team to call. You're reading source code and Discord channels. This is the real cost of being an early adopter.
- Custom development: The ecosystem is empty. Features that WordPress handles with a plugin might require custom development on EmDash. If you're not a developer, this means hiring one.
To give you a concrete example: building dashtro.com took about a weekend for the initial site, but deploying to production took most of a day debugging Cloudflare configuration — pnpm workspace errors, KV namespace collisions, Dynamic Workers requiring a paid plan, and database name mismatches. None of these are documented in the EmDash docs yet.
The MCP server (EmDash's AI integration) needed a workaround to function — installing @modelcontextprotocol/sdk as a direct dependency and adding three subpath imports to the Vite config. This took two hours of reading source code to figure out. These are v0.1 growing pains, not permanent costs, but they're real time investments right now.
Content migration is another hidden cost. EmDash's content lives in D1 (the database), not in your code. Building 34 articles locally and then deploying means the production database is empty — you need to migrate content separately. We wrote a Python script to export from local SQLite and import to production D1 via the Cloudflare API. Not difficult, but not documented either.
The bottom line
EmDash hosting is genuinely free for small sites and remarkably cheap at scale. The $0/month starting point isn't marketing spin — it's how Cloudflare Workers pricing works. You pay for compute you use, and a content site doesn't use much.
The real cost of EmDash is your time as an early adopter, not your hosting bill. If you value modern architecture, edge performance, and zero-server maintenance over ecosystem maturity, the economics are compelling.
Ready to try it? Build your first EmDash website — the tutorial uses the same stack that powers dashtro.com.
Read the full comparison →