EmDash 是一个为 Astro 构建的 CMS。它为编辑人员提供管理界面,在运行时向你的 Astro 站点提供内容,并可在多种数据库和主机上运行。
EmDash 的不同之处
Astro 原生架构
EmDash 专为 Astro 构建,而非从通用 CMS 改编。内容与你的站点位于同一部署中,通过 Astro 的实时内容集合在同一进程内查询。
熟悉的内容模型
如果你使用过 WordPress,EmDash 的概念会让你感到熟悉:集合(类似文章类型)、分类法、菜单、小部件区域和媒体库。心智模型可以迁移——实现使用的是现代工具。
框架集成
EmDash 是专为 Astro 而生的。这种紧密集成实现了类型安全的查询、组件级缓存和集成预览。
核心能力
单一部署
内容和前端一同部署。一个代码库,一次部署,一个系统即可管理。
类型安全
从内容模型生成 TypeScript 类型,从查询到模板获得完整的自动补全。
实时更新
基于 Astro 的实时内容集合构建。内容更改会立即生效。
云端可移植
可在 Cloudflare Workers 上使用 D1 和 R2 运行,也可在 Node.js 上使用 SQLite、libSQL 或 PostgreSQL 以及任何兼容 S3 的存储运行。
横向对比
不同的 CMS 方案适合不同的需求:
| 方面 | 传统 CMS | 无头 CMS | EmDash |
|---|---|---|---|
| 架构 | 单体式 | 解耦式 | 与 Astro 集成 |
| 前端 | 主题/模板 | 自行构建 | Astro 组件 |
| 部署 | 单服务器 | CMS + 前端 | 单一部署 |
| 类型安全 | 运行时 | API 类型 | 完整 TypeScript |
| 内容更新 | 即时 | Webhook/重建 | 即时(SSR) |
| 插件模型 | 同进程 | API 扩展 | 原生或沙箱化钩子 |
Cloudflare 部署
EmDash 可在任何支持 SQL 数据库(SQLite、libSQL 或 PostgreSQL)和兼容 S3 存储的平台上运行。它还支持 Cloudflare 特有的功能:
- D1 — 边缘 SQLite,自动复制
- R2 — 兼容 S3 的存储,无出口费用
- Workers — 全球部署,快速冷启动
插件迁移
EmDash 提供工具帮助迁移 WordPress 插件功能:
- 概念映射 — WordPress 的钩子、过滤器和 API 映射到 EmDash 对应功能
- 迁移指南 — 移植特定插件模式的文档
- AI 辅助移植 — 文档结构化设计,方便 AI 工具从 WordPress 插件代码生成 EmDash 插件
复杂插件仍需人工审查,但对于简单的插件,迁移指南可以减少移植工作量。
何时使用 EmDash
EmDash 适用于:
- 需要 CMS 的 Astro 新项目
- 想要使用现代工具的 WordPress 迁移
- 内容编辑人员不需要接触代码的站点
- 部署到 Cloudflare 的项目
- 重视类型安全和开发者体验的站点
EmDash 可能不适合:
- 非 Astro 项目(它与 Astro 紧密耦合)
- 电商(WooCommerce 规模的功能尚不可用)
- 你已经满意的现有无头架构
- 需要 WordPress 特定插件生态系统的项目
开始使用
快速开始
创建你的第一个站点,只需不到 5 分钟。
迁移指南
通过内容导入和概念映射从 WordPress 迁移。