EmDash 1.0是基于Astro的开源CMS,支持Agent友好工作流、安全沙箱插件和去中心化插件注册表。
当我们四月一日以"WordPress 的精神继任者"推出 EmDash 时,反响之热烈难以忽视。在当月的 WordPress 大会上走了一圈,我们所到之处都能听到与会者对 EmDash 的议论。
但在一片兴奋与好奇之中,业界也有一丝疑虑:这不会是愚人节玩笑吧?
不是玩笑。今天我们正式发布 EmDash 1.0:一个稳定、免费、开源的 CMS,基于 Astro 构建,可以用于驱动生产级网站、代理机构的凭感觉编程平台,或主机服务商的自助建站体验。
开发者使用 Astro 构建,编辑通过 EmDash 管理后台管理内容,智能体则可通过 API、CLI 或内置 MCP 服务器操作。EmDash 1.0 将这些组件整合在一起,提供了经过生产验证的编辑、媒体、本地化、迁移和部署工作流。
我们同时上线了一个去中心化的插件注册表,允许开发者发布插件而无需将身份或发布物的所有权交给中心化市场,同时网站所有者可以直接在 EmDash 内发现和安装插件。
EmDash 文章编辑器。

自 EmDash 首个 beta 版发布以来,开发者已用它搭建了真实的网站。尽管如此,我们一直听到一种合理的回应:"看起来挺有意思,等正式版了通知我。"在将站点托付给 EmDash 之前,他们想要的是对它稳定性、安全性的信任,以及升级时能保护他们的内容、我们也会全力维护它的保证。
EmDash 1.0 就是我们的回答。过去五个月,我们与贡献者和生产环境用户合作,打磨了这个 CMS 所有站点都依赖的部分:数据安全、数据库迁移、编辑工作流、本地化、插件安全、性能,以及管理后台、API、MCP 和媒体体验的可靠性。
真实部署塑造了大部分工作,发现了边缘情况,识别出了只有当网站在承载真实流量、被真实的编辑团队使用时才会暴露的需求。
举一个例子,Avulux 在长期承受 WordPress 的维护负担后,将一个定制微站点迁移到了 EmDash。由于 EmDash 是智能体的最佳拍档,使用 EmDash Agent Skills 让整个迁移在不到一天内完成。
"网站必须快速加载,而且要让我们的团队能简单地更新内容,"Avulux 创新与系统总监 Greg Barbosa 表示。"WordPress 已经背道而驰了。有了 EmDash,我们现在拥有了一个共享平台,开发者可以扩展它,营销人员可以编辑内容。"
八月,我们将 Cloudflare Blog 迁移到了 EmDash,作为"零号客户"方案的一部分。与内容工程团队的合作提供了可操作的洞察,涵盖本地化、媒体管理、管理后台编辑器体验和扩展性。能轻松处理 Cloudflare Blog 的流量负载,意味着要为每周数百万的页面浏览量、每秒高达 5,000 请求(RPS)的合法流量峰值,或偶发的 DDoS 攻击做好准备。可选的 KV 对象缓存、Hyperdrive 数据库适配器,以及 Workers Cache 兼容性都是这次迁移项目中催生的功能,现在已向所有用户开放。
公开构建,向所有人开放
CMS 位于组织网络形象的核心位置。它保管着最重要的数据,而且每天通常有数十名编辑使用。他们需要确信可以依赖它,而不必担心供应商锁定或业务优先级变化。鉴于此,EmDash 完全免费且开源,采用灵活宽松的 MIT 许可证。
没有开源开发社区,EmDash 1.0 不可能诞生。截至撰写本文时,已有超过 175 人为项目做出贡献,跨越超过 1,800 次提交。智能体编程工具的兴起既给开源项目带来了挑战,也带来了机遇,我们有意构建了一个让智能体可以帮助人类开发者的项目,而不是让开发者被智能体淹没。
我们特别感谢核心贡献者群体中最投入的一批人,他们总计为项目的各个领域带来了数百项改进。他们包括 @swissky、@danielmlr、@MA2153、@marcusbellamyshaw-cell,以及许多其他人。贡献者已将 EmDash 翻译成了 25 种语言,从阿拉伯语到乌克兰语。
特别值得一提的是 Noah Pham,他作为实习生加入 Cloudflare,后来成为 EmDash 与 Matt 并列的第二位维护者。Noah 贡献了超过 80 处修改,承担了媒体库、内容编辑器和管理后台界面的主要部分。我们说过实习生在 Cloudflare 可以交付有意义的工作——Noah 的成果如今是 EmDash 1.0 的核心。
还有很多要构建的东西,贡献也不一定意味着写代码。如果你愿意帮忙写代码、翻译、文档、测试、设计、问题分类、回答问题,或者只是欢迎新用户,加入 EmDash Discord 社区的 800 多名成员吧。
当周围的生态系统健康且得到支持时,内容管理系统才能蓬勃发展。我们很高兴看到使用 EmDash 创建新服务和产品的主题公司、插件商店、代理机构和平台。
Lexington Themes 提供 44 款 Astro 主题,并配有 EmDash 变体,为团队提供了一个美观实用的网站起点,包含可复用组件和内置内容集合。
Urumi 正在运用他们的 WooCommerce 专业知识发布 EmDash 的首个电商插件。
Empress 正在推出一款面向多品牌实体的平台,提供管理大量站点的灵活性,支持自然语言或传统 CMS 管理面板。
"Empress 令人愉悦的多站点体验离不开 EmDash 打下的基础:快速、安全可扩展、对人和智能体都易于读取和操作的站点,"Empress 创始人 Raj Makker 表示。"EmDash 解锁了对网站的强大控制权,Empress 在此基础上赋予你对任意数量站点的完全控制权。我们很高兴能参与这段旅程。"
一个不拥有生态系统的插件注册表
EmDash 插件注册表

借助 EmDash 1.0,开发者可以发布沙盒化插件,网站所有者可以从 EmDash 插件注册表中发现、检查和安装它们。
传统插件注册表通常将三个角色合并在一起:提供发布者账户、持有权威的包记录,以及运营用户发现插件的目录。这很方便,但也意味着由一家公司同时掌控身份和分发权的守门人。如果账户被封禁、列表被移除、规则改变或服务关停发布者无法将相同的身份和发布历史带到别处。
EmDash 将插件与目录分离。发布者保留对其包和发布历史的控制权,而 EmDash 为用户提供了一个方便的发现和安装场所。其他服务可以索引相同的出版物,构建自己的目录,应用自己的策略,而无需开发者从头开始。
EmDash 目录对所显示的名称、描述、链接和图片应用默认内容审核。审核可以从此目录中隐藏有害或不适当的内容,但不会重写发布、获取插件所有权或抹除底层出版物。
该注册表构建在 AT Protocol(atproto)之上,这是一种去中心化网络协议,为 Bluesky 及不断增长的应用生态系统提供动力。插件作者使用 Atmosphere 账户发布,这是一种在这些应用中通用的可移植身份。包和发布记录由发布者签名并存储在发布者自己的账户中。
EmDash 托管默认注册表服务,使发布者和网站所有者无需自行运行基础设施即可使用。我们希望其他人会构建新的目录、审核系统、发布工具,以及我们尚未想象到的其他服务。为了推动这一点,我们已将所有服务作为开源软件发布,包括驱动插件注册表的聚合器、使用 Workers AI 审核包描述的标签服务,以及 Astro 实时内容加载器,让在任何 Astro 站点中轻松包含插件列表成为可能。我们很高兴看到社区会用它们构建出什么!
不存在可以随意接管插件或随意删除插件的中心化控制者。我们相信插件和注册表的安全性应该内置于代码中,而不是信任任何中心化权威或行为准则。
去中心化发布并不意味着接受未经核验的代码。Atproto 仓库使用签名的默克尔搜索树(Merkle Search Tree),因此包含证明(inclusion proof)将精确的发布记录与发布者账户的签名提交关联起来。EmDash 因此可以独立核验记录,而不是信任目录的副本。随后它会检查插件的校验和、包名、版本、请求的访问权限以及任何所需的构建溯源信息,并确认下载的包与签名记录相匹配。
目前注册表支持免费插件,我们的目标是在未来添加付费插件支持,采用与现在相同的去中心化模式。我们密切关注着 Atproto Spaces Alpha。任何人都应该能够运行一个安全的付费插件市场。我们希望发布者能够通过他们的软件获利。
目前,插件作者可以发布有用的软件而无需征得 EmDash 的许可——网站所有者可以在运行之前准确了解该软件被允许做什么。
插件是 CMS 生态系统的核心。它们让网站开发者无需重建相同的集成和工作流程,同时为专家提供了分享最佳实践的方式——并有可能建立软件业务。
AI 智能体使这种复用变得更加有价值。AI 智能体可以构建一次性集成,但它仍然需要理解问题、生成和测试代码,并在之后维护它。插件则捕获了这些工作。另一个 AI 智能体可以安装和配置一个经过验证的解决方案,而不是从头开始。
这种便利性带来了严重的安全问题:插件是你没有编写的代码,却与有价值的内容和客户数据一起运行。在 WordPress 中,插件与应用其余部分运行在同一个 PHP 进程中,可以直接访问其数据库、文件系统和网络。联系表单插件在技术上可以读取未发布的文章、修改另一个插件,或将数据发送到任何地方。网站所有者必须相信它不会这样做——并且相信未来的更新不会改变其行为。
沙箱化 EmDash 插件采用不同的模型。每个插件在隔离的运行时环境中运行,只能访问自己的私有存储,而不能访问网站的内容、媒体、用户、密钥、环境、文件系统或网络。只有当插件声明了额外能力并获得站点管理员批准时,它才能获得这些能力。
WordPress 和 EmDash 运行时架构的对比。

安装沙箱化插件因此更像是安装移动应用而不是传统 CMS 插件。EmDash 在运行前显示插件想要执行的操作,运行时则将其限制在那些已批准的能力范围内。
这使得插件能够执行有用的工作而无需获得无关的访问权限:
重要的一点是,这些能力是独立的。授予插件访问媒体的权限不会同时暴露用户或未发布的内容。允许它联系一个服务不会开放整个网络。这些边界由运行时强制执行,而不是留给插件作者的良好意愿。
这种隔离并不局限于 Cloudflare 部署。在 Cloudflare 上,EmDash 通过 Worker Loader 将每个插件作为 Dynamic Worker 运行。在 Node.js 上,EmDash 启动 workerd——开源的 Workers 运行时——作为一个单独的进程,并在其内部将每个插件作为隔离的服务运行。插件在这两个平台上使用相同的清单(manifest)和基于能力的 API。请参阅插件沙箱文档以了解设置和运行时的差异。
Cloudflare Email Sending 是新 EmDash 插件注册表中众多可用插件之一。

EmDash 可以为单个 Astro 站点提供动力,但也专为构建网站创建和托管产品的公司而设计。
Workers for Platforms 让这些公司能够将每个客户的站点作为 Worker 运行在 Cloudflare 的全球网络上。他们无需为每个站点配置服务器或自行构建周围的网络和部署基础设施。这使他们能够专注于客户用于创建和管理网站的体验。
EmDash 为这种体验提供内容层。平台可以直接使用管理界面,在 API 和 CLI 上构建自己的界面,或在内置的 MCP 服务器前放置一个 AI 智能体。面包店老板可以用简单的语言请求更改营业时间;平台的 AI 智能体会处理读取、更新和保存内容的工作。
沙箱化插件模型也为平台提供了在众多客户站点上提供扩展的更安全方式。插件只接收对内容、媒体、用户、电子邮件或外部服务的已批准访问权限,而不是以对整个应用的无限制访问权限运行。平台可以运行自己的插件市场并访问完整的注册表——或策划精选的预批准插件。
我们一直在寻找愿意与我们共同开发新型 AI 智能体导向 CMS 体验的其他托管合作伙伴。如果您想了解更多关于与 EmDash 重新开始的信息,请联系我们。
我们还发布并开源了 EmDash Build 的 alpha 版本,这是一个 AI 网站构建器,托管提供商、网站构建器和平台可以自行运行并与自己的系统集成。今天可以在 build.emdashcms.com 试用演示,或探索代码。
如果你现在要为自己或客户构建一个网站,你不会从 IDE 开始。你更可能从聊天框开始,向 AI 智能体描述你想要什么。但一旦你有了东西,你会发现更改简单的东西可能需要你回到那个提示框,要么掷骰子碰运气,要么为一行修改花费积分。
EmDash Build 创建的是一个 EmDash 站点,它带来了完整的堆栈:服务端渲染的 Astro 页面、数据库、媒体存储和管理界面。AI 智能体根据简报设计内容模型,通过 EmDash 的 MCP 服务器填充内容,并编写显示这些内容的页面。之后,你或你的客户可以直接在页面上编辑文本、安排帖子发布,或让 AI 智能体为你做这件事。
在 EmDash Build 中,每个项目都有自己的 Cloudflare Sandbox 容器,其中基于 Agents SDK 构建的 AI 智能体验证自己的工作成果。Artifacts 将每次更改作为 git 提交进行跟踪。当站点发布时,内容会移动到生产 EmDash 站点,并部署到主机的 Workers for Platforms 命名空间。
在 EmDash Build 中制作的网站:从一个提示开始,现在运行在完整堆栈上。

随着 EmDash 1.0 的发布,现在正是迁移公司营销网站或让 AI 智能体启动你一直在谈论的副项目的好时机。在此处试用 EmDash 演示站点。
要通过 CLI 在本地创建新的 EmDash 站点,请运行:
npm create emdash@latest
或者你也可以通过下面的 Cloudflare 仪表板执行相同的操作:
如果你已准备好开发 EmDash 插件,我们的文档有逐步指南,教你如何创建插件并将其发布到注册表。
我们也欢迎你加入我们不断增长的贡献者社区 Discord。你不必一定是工程师才能参与——我们欢迎翻译人员、Issue 分类管理者、用户体验设计师、营销人员以及对内容管理系统未来感到兴奋的所有人。