AI时代到来,软件开发成本已大幅降低。Cloudflare最近利用人工智能编码代理在一周内重建了 Next.js。但过去两个月,Cloudflare也一直在进行另外一项更具雄心的项目:从零开始重建 WordPress 开源项目。
WordPress为超过 40% 的互联网网站提供支持。它取得了巨大的成功,让任何人都能成为内容发布者,并创建了一个全球 WordPress 开发者社区。但 WordPress 开源项目今年将迎来 24 周年。在此期间,网站托管发生了翻天覆地的变化。WordPress 诞生之时,AWS EC2 还不存在。而如今,这项任务已经从租用虚拟专用服务器,转变为几乎免费地将 JavaScript 包上传到全球分布式网络。现在是时候升级互联网上最流行的内容管理系统 (CMS),以充分利用这些变化了。
Cloudflare为这款全新的内容管理系统命名为 EmDash,认为它是 WordPress 的精神继承者。它完全使用 TypeScript 编写,采用无服务器架构,但您可以将其运行在您自己的硬件或您选择的任何平台上。插件通过动态工作区 (Dynamic Workers ) 安全地隔离在沙盒中,并在独立的环境中运行,从而解决了 WordPress 插件架构中存在的根本性安全问题。在底层,EmDash 由Astro提供支持,Astro 是目前速度最快的内容驱动型网站 Web 框架。
EmDash 完全开源,采用 MIT 许可证,并已发布在 GitHub 上。虽然 EmDash 旨在与 WordPress 的功能兼容,但其开发过程中未使用任何 WordPress 代码。这使得Cloudflare能够以更为宽松的 MIT 许可证发布此开源项目。我们希望这能鼓励更多开发者对 EmDash 进行适配、扩展并参与其开发。
您可以立即将 EmDash v0.1.0 预览版部署到您自己的 Cloudflare 帐户,或部署到任何 Node.js 服务器,作为我们早期开发者测试版的一部分:
或者,您也可以在EmDash Playground中试用管理界面:

WordPress 取得的成就
WordPress 的故事是开源软件的一次巨大胜利,它实现了前所未有的出版规模。很少有项目能像它一样,对成长于互联网时代的一代人产生如此深远的影响。WordPress 核心代码的贡献者,以及数以万计的插件和主题开发者,共同打造了一个让数百万人都能轻松出版的平台;这款无处不在的软件改变了许多人的生活和生计。
WordPress 永远都会有一席之地,但内容发布领域还有更大的发展空间。十年前,几乎所有拿起键盘的人都会学习用 WordPress 发布博客。而如今,他们同样有可能选择 Astro 或其他 TypeScript 框架来学习和构建内容。正如 23 年前 WordPress 的出现一样,整个生态系统也需要一个能够赋能广大用户的选择。
EmDash 致力于在 WordPress 创建的基础上继续发展:一个任何人都可以以低廉的成本安装和使用的开源发布堆栈,同时修复 WordPress 无法解决的核心问题。
解决 WordPress 插件安全危机
WordPress 的插件架构从根本上来说存在安全隐患。WordPress网站96% 的安全问题都源于插件。2025 年, WordPress 生态系统中发现的高危漏洞数量将超过前两年的总和。
为什么二十多年过去了,WordPress插件的安全问题仍然如此严重?
WordPress 插件是一种 PHP 脚本,它直接与 WordPress 集成,用于添加或修改功能。它没有任何隔离机制:WordPress 插件可以直接访问 WordPress 网站的数据库和文件系统。安装 WordPress 插件时,您实际上是将几乎所有权限都授予了它,并且信任它能够完美地处理所有恶意输入或极端情况。
EmDash 解决了这个问题。在 EmDash 中,每个插件都在其独立的沙箱(动态工作区)中运行。EmDash 不会直接提供对底层数据的访问权限,而是通过绑定为插件提供相应的功能,这些功能基于插件在其清单文件中明确声明的需求。这种安全模型提供了严格的保证:EmDash 插件只能执行其清单文件中明确声明的操作。您可以在安装插件之前预先了解并信任您授予插件的权限,这类似于通过 OAuth 流程授予第三方应用程序一组特定的权限范围。

例如,一个在内容项保存后发送电子邮件的插件如下所示:
import { definePlugin } from "emdash";
export default () =>
definePlugin({
id: "notify-on-publish",
version: "1.0.0",
capabilities: ["read:content", "email:send"],
hooks: {
"content:afterSave": async (event, ctx) => {
if (event.collection !== "posts" || event.content.status !== "published") return;
await ctx.email!.send({
to: "editors@example.com",
subject: `New post published: ${event.content.title}`,
text: `"${event.content.title}" is now live.`,
});
ctx.log.info(`Notified editors about ${event.content.id}`);
},
},
});
此插件明确请求两项权限:content:afterSave接入内容生命周期和email:send访问ctx.email特定函数。插件只能使用这些权限,无法执行其他任何操作。它没有外部网络访问权限。如果确实需要网络访问权限,它可以在定义中指定需要通信的确切主机名,并仅被授予与特定主机名通信的权限。
而且在所有情况下,由于插件的需求都是预先静态声明的,因此在安装时始终可以清楚地了解插件请求的权限。平台或管理员可以根据插件请求的权限,而不是使用已批准或安全的插件列表,来定义特定用户组可以安装哪些插件或不可以安装哪些插件的规则。
解决插件安全问题就是解决市场锁定问题。
WordPress 插件的安全风险不容忽视,以至于 WordPress.org会对市场上的每个插件进行人工审核和批准。截至撰写本文时,审核队列中已有超过 800 个插件,至少需要两周时间才能完成审核。WordPress 插件的漏洞面非常广泛,因此在实践中,各方都依赖于市场上的信誉、评分和评论。此外,由于 WordPress 插件与 WordPress 本身运行在相同的执行环境中,并且与 WordPress 代码深度集成,一些人认为它们必须沿用 WordPress 的 GPL 许可协议。
这些现实因素加在一起,对开发插件的开发者和托管 WordPress 网站的平台产生了寒蝉效应。
插件安全是问题的根源。在其他情况下,各方之间很难建立信任,而市场平台则提供了这种信任。就 WordPress 市场而言,插件安全风险如此之大且极有可能发生,以至于许多客户只能通过该市场平台来合理地信任您的插件。但是,为了加入该市场平台,您的代码必须采用某种许可方式,这意味着您必须在除该平台之外的任何地方免费提供它。您被锁定在了该平台内。
EmDash 插件具有两个重要特性,可以缓解这种市场锁定问题:
- 插件可以采用任何许可协议:它们独立于 EmDash 运行,不共享任何代码。这完全由插件作者自行选择。
- 插件代码在安全的沙箱中独立运行:可以将插件提供给 EmDash 站点,并使其受到信任,而 EmDash 站点永远不会看到该代码。
第一部分很简单——作为插件作者,您可以选择所需的许可证。这与您在 NPM、PyPI、Packagist 或任何其他注册表中发布插件时所做的选择相同。这是一个面向所有人的开放生态系统,插件和主题的许可证由社区决定,而非 EmDash 项目。
第二部分是 EmDash 的插件架构摆脱集中式市场束缚的地方。
开发者对第三方市场插件审核的依赖程度大大降低,因此他们无需过多依赖第三方市场对插件的审核来决定是否使用或信任该插件。以上述示例插件为例,该插件会在内容保存后发送电子邮件;该插件声明了三项内容:
- 它只能在
content:afterSave钩子上运行。 - 它具备这种
read:content能力 - 它具备这种
email:send能力
插件可能包含数万行代码,但与可以访问所有资源并能与公共互联网通信的 WordPress 插件不同,添加插件的人员可以精确地知道自己授予了插件哪些权限。这种清晰的权限边界使您能够就安全风险做出明智的决策,并专注于与插件权限直接相关的更具体的风险。
网站和平台越信任安全模型提供的约束机制,就越能信任插件,从而摆脱对市场和声誉的集中控制。换句话说:如果你相信你所在城市的食品安全得到有效保障,你就会勇于尝试新的地方。如果你无法确定汤里是否含有某种有害物质,那么每次去新餐厅之前你都会先上网搜索,这样一来,所有新餐厅的开业都会变得更加困难。
每个 EmDash 网站都内置了 x402 支持——对访问内容收费
网络商业模式正面临风险,尤其对内容创作者和出版商而言更是如此。过去那种让内容广泛传播、所有客户免费访问以换取流量的模式,在如今不再有真人浏览网站投放广告,而是客户通过代理人访问网络的情况下,便难以为继。创作者需要在这个代理人主导的新世界中继续盈利,并构建能够满足代理人需求且愿意付费的新型网站。几十年前,一批创作者创建的网站发展成为成功的企业(通常使用 WordPress 平台),如今类似的机遇依然存在。
x402是一个开放、中立的互联网原生支付标准。它允许互联网上的任何人轻松收费,并允许任何客户按需付费,即按使用量付费。例如,客户(例如代理商)发送 HTTP 请求并收到 HTTP 402 Payment Required 状态码。作为响应,客户按需付费,服务器即可允许客户访问请求的内容。
EmDash 内置了对 x402 的支持。这意味着任何拥有 EmDash 网站的人都可以对其内容收费,无需订阅,也无需任何技术工作。您只需配置哪些内容需要付费、设置收费金额并提供钱包地址即可。请求/响应流程如下所示:

每个 EmDash 网站都内置了适应人工智能时代的商业模式。
解决 WordPress 主机平台的零扩展性问题
WordPress并非无服务器架构:它需要像传统Web应用程序一样配置和管理服务器,并进行扩展和缩减。为了最大限度地提高性能并应对流量高峰,预先配置实例并运行一定量的空闲计算资源,或者以限制性能的方式共享资源,都是不可避免的。对于那些内容必须由服务器渲染且无法缓存的网站来说,这一点尤为重要。
EmDash 与众不同:它专为在无服务器平台上运行而设计,并充分利用了Cloudflare 开源运行时 workerd的v8 隔离架构。当收到请求时,Workers 运行时会立即启动一个隔离区来执行代码并提供响应。如果没有请求,它会缩减到零。而且它只对 CPU 时间(实际执行工作的时间)收费。

你可以在任何 Node.js 服务器上运行 EmDash,但在 Cloudflare 上,你可以使用Cloudflare for Platforms运行数百万个 EmDash 实例,每个实例都可以立即完全扩展到零或根据需要处理的任何 RPS,并且使用与全球最大网站所依赖的完全相同的网络和运行时。
除了成本优化和性能提升之外,Cloudflare之所以选择这种架构,部分原因在于我们相信低成本和免费套餐的重要性,并且认为每个人都应该能够构建可扩展的网站。我们很高兴能够帮助各个平台将这种架构的优势扩展到他们的客户,无论规模大小。
Astro 的现代前端主题和架构
EmDash 由 Astro 提供支持,Astro 是一个面向内容驱动型网站的 Web 框架。要创建 EmDash 主题,您需要创建一个包含以下内容的 Astro 项目:
- 页面:Astro 用于渲染内容(首页、博客文章、存档等)的路由
- 布局:共享的 HTML 结构
- 组件:可重用的用户界面元素(导航、卡片、页脚)
- 样式: CSS 或 Tailwind 配置
- 种子文件: JSON 文件,用于告诉 CMS 要创建哪些内容类型和字段
这使得创建主题对于越来越多选择 Astro 的前端开发人员以及已经接受过 Astro 培训的 LLM 来说都变得熟悉。
WordPress主题虽然极其灵活,但其运行方式与插件存在许多相同的安全风险。主题越流行、越常见,就越容易成为攻击目标。主题的运行依赖于与WordPress集成,functions.php而WordPress是一个功能全面的执行环境,这使得主题既拥有强大的功能,也可能带来潜在的危险。EmDash主题与动态插件一样,颠覆了这种预期。您的主题永远不会执行数据库操作。
一款人工智能原生内容管理系统——适用于 EmDash 的 MCP、CLI 和技能
使用任何内容管理系统 (CMS) 最枯燥乏味的部分莫过于内容迁移:查找和替换字符串、将自定义字段从一种格式迁移到另一种格式、重命名、重新排序和移动内容。这要么是枯燥乏味的重复性工作,要么需要编写一次性脚本和使用“一次性”插件及工具,而这些脚本和工具通常既不好写也不好用。
EmDash 旨在由您的 AI 代理以编程方式进行管理。它提供代理所需的上下文和工具,包括:
- 代理技能:每个 EmDash 实例都包含代理技能,向您的代理介绍 EmDash 可以为插件提供的功能、可以触发插件的钩子、插件结构指南,甚至包括如何将旧版 WordPress 主题原生移植到 EmDash。当您将 EmDash 代码库提供给代理时,EmDash 会提供代理所需的一切,以便他们能够按照您的要求自定义您的网站。
- EmDash CLI: EmDash CLI使您的代理能够以编程方式与本地或远程 EmDash 实例进行交互。您可以上传媒体、搜索内容、创建和管理架构,以及执行与在管理 UI 中相同的操作。
- 内置 MCP 服务器:每个 EmDash 实例都提供自己的远程模型上下文协议 (MCP) 服务器,允许您执行与在管理 UI 中相同的操作。
可插拔身份验证,默认使用密码密钥
EmDash 默认使用基于密钥的身份验证,这意味着不存在密码泄露的风险,也无需防范暴力破解攻击。用户管理功能内置了熟悉的基于角色的访问控制:管理员、编辑、作者和贡献者,每个角色都拥有与其所需操作严格限定的权限。身份验证功能支持插件式扩展,因此您可以将 EmDash 配置为与您的 SSO 提供商集成,并根据身份提供商 (IdP) 元数据自动配置访问权限。
将您的 WordPress 网站导入 EmDash
您可以通过两种方式导入现有的 WordPress 站点:一是登录 WordPress 后台导出 WXR 文件;二是安装EmDash Exporter 插件,该插件会配置一个仅您可见的安全端点,并由您控制的 WordPress 应用程序密码进行保护。迁移内容只需几分钟,并且会自动将所有附加的媒体文件导入 EmDash 的媒体库。

在 WordPress 上创建除文章或页面之外的任何自定义内容类型,通常需要安装像 Advanced Custom Fields 这样庞大的插件,并将结果塞进拥挤的 WordPress 文章表中。EmDash 则不同:您可以直接在管理面板中定义架构,它会为您创建全新的 EmDash 集合,并在数据库中单独排序。导入时,您可以使用相同的功能,将 WordPress 中的任何自定义文章类型转换为 EmDash 内容类型。
对于定制模块,您可以使用EmDash Block Kit Agent Skill来指示您选择的代理并为 EmDash 构建它们。
立即体验 EmDash
EmDash 已发布 v0.1.0 预览版,源代码码已经托管在 GitHub:
https://github.com/emdash-cms/emdash。
- 在线试用管理后台:https://emdashcms.com/
- 本地创建站点:
npm create emdash@latest - 也在可以 Cloudflare 后台一键部署





