# EmDash

A full-stack TypeScript content management system built on Astro that runs on Cloudflare or any Node.js server, with sandboxed plugins and structured content instead of embedded HTML.

EmDash is a content management system built on Astro, aimed at the same territory as WordPress but built on serverless, type-safe foundations. It ships three starter templates: a blog with search and RSS, a marketing landing page, and a portfolio.

Plugins run in sandboxed Worker isolates through Dynamic Worker Loaders, each declaring the capabilities it needs, such as reading content or sending email, so a plugin can only do what it has declared. Content is stored as Portable Text, a structured JSON format decoupled from presentation, rather than as HTML with metadata embedded in comments, so the same content can render as a web page or in other formats.

It runs on Cloudflare using D1, R2, and Workers, or on any Node.js server with SQLite, and is written in TypeScript under the MIT license.

Website: https://emdashcms.com
