OpenRadar

Project · TypeScript · Added May 31, 2026

emdash

EmDash is a full-stack TypeScript CMS built on Astro and Cloudflare — a modern WordPress alternative with sandboxed plugins and AI agent support.

10,707 stars 965 forks View on GitHub

EmDash

Overview

EmDash is a full-stack TypeScript CMS built on Astro and Cloudflare. It hit 10,000 GitHub stars within two months of its April 2026 launch, which tells you something about the appetite for a real WordPress alternative in the modern stack.

The project is created by Matt Kane, an Astro core maintainer who previously worked at Netlify and Gatsby and created the popular Unpic image library. He now works at Cloudflare. That pedigree matters — this isn’t a side project from someone who just discovered React. It’s built by someone who’s been deep in the web framework ecosystem for years and understands where the pain points are.

The pitch is straightforward: WordPress won because of extensibility and admin UX, but its architecture is stuck in the PHP era. 96% of WordPress security vulnerabilities come from plugins, according to Patchstack’s 2024 report. EmDash takes the ideas that made WordPress dominant and rebuilds them on serverless, type-safe foundations. Your content lives in real SQL tables with typed columns. Plugins run in sandboxed Worker isolates with declared capability manifests. And it’s all TypeScript — no PHP, no separate hosting tier.

Why it matters

The CMS space hasn’t had a serious architectural shakeup in over a decade. WordPress still powers roughly 40% of the web, but developers have been stringing together headless CMS solutions (Strapi, Payload, Sanity) with frontend frameworks for years, creating complexity that feels disproportionate to the problem. EmDash tries to collapse that stack.

What makes this different from yet another headless CMS is the Astro integration angle. EmDash is an Astro integration, not a standalone server. Add it to your config and you get a complete CMS — admin panel, REST API, authentication, media library, plugin system — that runs as part of your Astro site. It uses Cloudflare’s D1 database and R2 storage by default, but has portable abstractions for SQLite, PostgreSQL, Turso, AWS S3, and local files. You’re not locked in.

The timing connects to a broader trend: AI agents are increasingly managing content, and existing CMS platforms weren’t designed for that. EmDash ships with agent skills, a CLI for programmatic site management, and a built-in MCP server so AI tools can interact with your site directly. That forward-looking design is what’s driving developer interest.

Key Features

Sandboxed Plugin Architecture. WordPress plugins have full access to the database, filesystem, and user data. A single vulnerable plugin compromises everything. EmDash plugins run in isolated Worker sandboxes via Dynamic Worker Loaders, each with a declared capability manifest. A plugin requesting read:content and email:send can do exactly that — nothing else. This is the most important architectural decision in the project.

Structured Content with Portable Text. WordPress stores rich text as HTML with metadata embedded in comments, tying content to its DOM representation. EmDash uses Portable Text, a structured JSON format that decouples content from presentation. Your content renders as a web page, mobile app, email, or API response without parsing HTML.

Visual Schema Builder. Content types are defined in the database, not in code. Non-developers create and modify collections through the admin UI. Each collection gets a real SQL table with typed columns. Developers then generate TypeScript types from the live schema with npx emdash types — so your types are always in sync with your content model.

Passkey-First Authentication. The auth system defaults to WebAuthn passkeys with OAuth and magic link fallbacks. Role-based access control supports Administrator, Editor, Author, and Contributor roles out of the box. No need to bolt on an auth provider for basic CMS use cases.

AI Agent Integration. The built-in MCP server lets Claude, ChatGPT, and other AI tools interact with your site directly. There’s a CLI for programmatic content and schema management, plus skill files for AI-assisted plugin and theme development. This feels like where CMS platforms need to go.

WordPress Migration Path. Import posts, pages, media, and taxonomies from WXR exports, the WordPress REST API, or WordPress.com. Agent skills help port plugins and themes. The migration story is realistic, not aspirational.

Use Cases

Pros and Cons

Pros:

Cons:

Getting Started

# Create a new EmDash project
npm create emdash@latest

# Or clone and run the demo locally (Node.js + SQLite, no Cloudflare needed)
git clone https://github.com/emdash-cms/emdash.git
cd emdash
pnpm install
pnpm build
pnpm --filter emdash-demo seed
pnpm --filter emdash-demo dev

Open the admin at http://localhost:4321/_emdash/admin. Generate TypeScript types from your content schema:

npx emdash types

Deploy to Cloudflare with one command, or use the “Deploy to Cloudflare” button in the repo.

Alternatives

Payload CMS — Another TypeScript CMS that’s more mature (v3 stable) and supports both REST and GraphQL APIs. Payload is more flexible in database choice (MongoDB, Postgres, SQLite) but lacks EmDash’s sandboxed plugin model and Astro integration. Better choice if you need a standalone headless CMS today.

Strapi — The most popular open-source headless CMS with a large plugin ecosystem. Written in Node.js with a React admin panel. Strapi is more feature-complete but heavier, and its plugin security model is closer to WordPress’s than EmDash’s. Better choice for teams that need a battle-tested admin for non-technical users.

Keystatic — An Astro-native CMS from the Thinkmill team. Keystatic stores content as files (Git-based) rather than in a database, which works well for developer-authored content but doesn’t suit non-technical editors. EmDash is the better fit if your editors aren’t committing to Git repos.

Verdict

EmDash is the most interesting CMS architecture I’ve seen in years. The sandboxed plugin model alone justifies paying attention to it, and the Astro integration means you’re not choosing between a CMS and a modern frontend framework. It’s beta software with rough edges, so don’t migrate your production WordPress site today. But if you’re starting a new content-heavy project in mid-2026 and you’re comfortable with the Cloudflare ecosystem, EmDash is worth serious evaluation. The 10K stars in two months suggest the developer community agrees.

Related

Shared tags