EmDash is an Astro-native content management system. It brings familiar CMS patterns—collections, taxonomies, menus, widgets, and a polished admin UI—directly into your Astro site with full TypeScript support and portable deployment.
What EmDash Is
EmDash is a CMS built specifically for Astro. It uses Astro 6’s Live Content Collections to serve content at runtime, so edits appear immediately. Content is stored in a SQL database — SQLite, libSQL, Cloudflare D1, or PostgreSQL — and media in S3-compatible storage (R2 or the local filesystem).
Key characteristics:
- Visual content modelling — Define and change collections and fields from the admin UI; changes take effect immediately.
- Live Collections — Content is served at runtime, so edits appear immediately.
- Plugin system — WordPress-inspired hooks, storage, settings, and admin UI extensions.
- Cloud-portable — Runs on Cloudflare (Workers + D1 + R2) or Node.js, with SQLite, libSQL, or PostgreSQL and any S3-compatible storage.
What EmDash Is Not
- Not a headless CMS — EmDash is tightly integrated with Astro and runs in the same deployment, rather than as a separate service you call over an API.
- Not WordPress-compatible — It does not run PHP or WordPress plugins. WordPress content and concepts migrate to EmDash equivalents.
- Not a page builder — EmDash manages structured content. Build visual layouts with Astro components.
Who EmDash Is For
Agency developers
Spin up client sites quickly with reusable plugins and themes. Plugins run in isolated contexts with explicit APIs.
Solo developers
Content management is part of the Astro site, deployed and managed as one project.
Content editors
Create and edit content in the admin panel.
WordPress users
Migration path for content and plugins. Modern tooling, familiar concepts.
Architecture at a Glance
The following diagram shows how EmDash sits inside an Astro site, connecting the content engine, admin panel, and plugins to the data layer.
┌─────────────────────────────────────────────────────────────┐
│ Your Astro Site │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ EmDash Integration │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │ │
│ │ │ Content │ │ Admin │ │ Plugins │ │ │
│ │ │ Engine │ │ Panel │ │ │ │ │
│ │ └─────────────┘ └─────────────┘ └──────────────┘ │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────┐│ │
│ │ │ Data Layer ││ │
│ │ │Database (SQLite/libSQL/D1/Postgres) + media store ││ │
│ │ └───────────────────────────────────────────────────┘│ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Astro Framework │ │
│ │ Live Collections • Sessions • Middleware │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Core Concepts
These are the key concepts used throughout the documentation:
- Collections — Content types defined in the database (posts, pages, products, etc.)
- Fields — The properties of a collection (title, content, price, etc.)
- Taxonomies — Classification systems (categories, tags, custom taxonomies)
- Menus — Admin-editable navigation structures
- Widget Areas — Configurable content regions for sidebars and footers
- Plugins — Extensions that add functionality via hooks, storage, and UI
Next Steps
Get Started
Create your first EmDash site in under 5 minutes.
Explore Concepts
Learn about architecture and the content model.
Migrate from WordPress
Import your WordPress content and understand the concept mapping.