---
title: EmDash
description: The Astro-native CMS. A modern successor to WordPress with type-safe content, plugin extensibility, and portable deployment.
template: splash
hero:
  tagline: A modern, Astro-native CMS. Type-safe content, plugin extensibility, and portable deployment.
  actions:
    - text: Get Started
      link: /getting-started/
      icon: right-arrow
    - text: View on GitHub
      link: https://github.com/withastro/emdash
      icon: external
      variant: minimal
---

import { Card, CardGrid } from "@astrojs/starlight/components";

## Why EmDash?

<CardGrid stagger>
	<Card title="Astro-Native" icon="astro">
		Built on Astro 6's Live Content Collections. No rebuilds needed—content updates instantly at
		runtime.
	</Card>
	<Card title="Type-Safe" icon="setting">
		Schema defined in the database, TypeScript types generated automatically. Full type safety from
		database to template.
	</Card>
	<Card title="Plugin Ecosystem" icon="puzzle">
		WordPress-inspired plugin system with hooks, storage, and admin UI extensions. Agent-portable
		plugin migration from WordPress.
	</Card>
</CardGrid>

## Quick Start

```bash
# Create a new EmDash site
npm create astro@latest -- --template @emdash-cms/template-blog

# Start the dev server
npm run dev

# Visit the admin at http://localhost:4321/_emdash/admin
```

## Features

- **Visual Schema Builder** — Create collections and fields from the admin panel
- **Rich Text Editor** — TipTap-powered editing with Portable Text storage
- **Media Library** — Drag-and-drop uploads with signed URL support
- **Navigation Menus** — Admin-editable menus with nested items
- **Taxonomies** — Categories, tags, and custom classification systems
- **Widget Areas** — Configurable content regions for sidebars and footers
- **WordPress Import** — Migrate content from WXR exports or REST API
- **Preview System** — Token-based preview for draft content
