+ The CMS that
+ runs on your server
+
+ + EmDash is a full-stack TypeScript CMS built on Astro. + No cloud account required, no external dependencies. + Just a complete admin panel and your content. +
+ +import emdash from "emdash/astro";
+import { betterSqlite } from "emdash/db";
-
- {
- posts.length === 0 ? (
-
- No posts yet
- Create your first post in the admin panel.
-
- Create a post
-
-
- ) : (
-
- {/* Featured Post - Side by side */}
- {featuredPost && (
-
-
-
-
-
-
-
-
-
-
- {featuredPost.data.title}
-
- {featuredPost.data.excerpt && (
- {featuredPost.data.excerpt}
- )}
- {featuredTags.length > 0 && (
-
- )}
-
-
-
- )}
+export default defineConfig({
+ integrations: [
+ emdash({
+ database: betterSqlite({
+ databasePath: "./data.db"
+ }),
+ }),
+ ],
+});
+
+ Latest
- {hasMorePosts && ( - - View all - - )} -Everything you need
+A complete CMS without the vendor lock-in
+Fully Self-Hosted
++ SQLite, D1, Turso, or PostgreSQL. Your data stays on your servers. + No cloud account required. +
+Admin Panel
++ Visual schema builder, media library, navigation menus. + Full admin at /_emdash/admin +
+Passkey Auth
++ WebAuthn passkey-first authentication with OAuth and magic link fallbacks. + Role-based access control. +
+Built-in MCP
++ Model Context Protocol server for AI tools. + Claude and ChatGPT can interact with your site directly. +
+Plugin System
++ Sandboxed plugins on Cloudflare Workers. + Define capabilities, run safely in isolation. +
+WordPress Import
++ Import posts, pages, media, and taxonomies from WXR exports, + REST API, or WordPress.com. +
+EmDash vs Tina CMS
+Both work with Astro, but differ in approach
+Ready to get started?
++ Clone the template, run bootstrap, and you're ready to build. +
+ +