
EmDash in practice: a blog, a shop and a PWA on Cloudflare's CMS
In two days we built a full blog with taxonomies, a shop with orders and a PWA — and an AI agent did all of it through the built-in MCP server, without touching the admin panel. What works, where we struggled, and what the free plan really means.
EmDash is Cloudflare's open-source CMS — written in TypeScript, built on Astro, running on Cloudflare's edge. Instead of arguing about it in theory, we spent two days building with it: a full blog with hierarchical categories and tags, a shop with add-ons and orders, a PWA with offline mode, and a bilingual site with a Georgian admin panel.
What we built
The blog: 12 themed articles in two languages (24 entries), 7 hierarchical categories (for example “Cloudflare” nested inside “Engineering”), 14 tags, 3 author profiles, series, search, archives and RSS. The shop: 12 products, nested categories, per-product add-ons (engraving, gift wrapping, stickers), a cart and an order form that drops orders straight into the admin panel. Plus a favicon set, a PWA manifest and a service worker.
MCP — the real difference
EmDash ships with a built-in MCP server — a rarity among CMSs. Our instance exposes 59 tools: content, schema, taxonomies, media, menus, authors, revisions. Authorisation uses an API token (prefix ec_pat_). An agent created the entire blog schema, 24 articles, 12 products, images and menus through MCP calls — without a single click in the panel. For a business that means migration, bulk updates and AI-agent management can all be automated.
The free plan in reality
100,000 requests per day is not our problem — we use about 10,000, or 10%. The limit that bites is the 10-millisecond CPU budget: the site serves visitors beautifully, but the admin API is far heavier. While creating dozens of entries and images at once, the panel occasionally returned 503 — “Exceeded CPU Limit”. The conclusion: for a blog the free plan is enough, but for active panel work the $5 Workers Paid plan is practically mandatory.
Strengths and weaknesses
Strengths: zero maintenance (no server, no plugin updates), MCP and a complete API, Cloudflare speed with 100/100 Lighthouse, built-in multilingual support, revisions and roles, MIT-licensed open source. Weaknesses: a young project (1.0 has not shipped yet), documentation that lags behind in places, a small ecosystem compared to WordPress, no page builder, and no shop out of the box — you build that yourself.
The full write-up, with numbers and screenshots, is published on our demo site.
SiTech — AI-powered web development
We build fast, modern websites and bring AI into real business workflows. Have a project or a question? We'd love to help.