Cloudflare 宣布在 MIT 协议下开源了一款命名为 EmDash 的全新内容管理系统,完全使用 TypeScript 编写,采用无服务器架构,但用户可以将其运行在自己的硬件或所选择的任何平台上。“我们认为它是 WordPress 的精神继任者”。
EmDash 旨在与 WordPress 的功能兼容,但其开发过程中未使用任何 WordPress 代码。公告称,“EmDash 致力于在 WordPress 创建的基础上继续发展:一个任何人都可以以低廉的成本安装和使用的开源发布平台,同时修复 WordPress 无法解决的核心问题。”
文章指出,WordPress 的插件架构从根本上来说存在安全隐患,WordPress 网站 96% 的安全问题都源于插件。2025 年,WordPress 生态系统中发现的高危漏洞数量将超过前两年的总和。
而 EmDash 解决了这一问题。插件通过 Dynamic Workers 安全地隔离在沙箱中,并在独立的环境中运行,从而解决了 WordPress 插件架构中存在的根本性安全问题。在底层,EmDash 由 Astro 提供支持,Astro 是目前速度最快的内容驱动型网站 Web 框架。
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函数)。该插件除了使用这些权限外,无法执行任何其他操作。它不具备外部网络访问权限。如果确实需要网络访问,可以在定义中指定需要通信的具体主机名,并仅被授予与该特定主机名通信的权限。
而且在所有情况下,由于插件的需求都是预先静态声明的,因此在安装时始终可以清楚地了解插件请求的权限。平台或管理员可以根据插件请求的权限,而非依赖于已批准或安全的插件白名单,来定义哪些插件允许或不允许由特定用户组安装。
EmDash 插件具有两个重要特性:
-
插件可以采用任何许可协议:它们独立于 EmDash 运行,不共享任何代码。这完全由插件作者自行选择。
-
插件代码在安全的沙箱环境中独立运行:EmDash 站点可以接收并信任某个插件,而该站点完全无需查看插件的源代码。
且 EmDash 内置了对 x402 的支持 —— 一个开放、中立的互联网原生支付标准。这意味着任何拥有 EmDash 网站的人都可以对其内容收费,无需订阅,也无需任何技术工作。只需配置哪些内容需要付费、设置收费金额并提供钱包地址即可。请求/响应流程如下所示:
![]()
目前,EmDash v0.1.0 预览版已发布。
更多详情可查看:https://blog.cloudflare.com/emdash-wordpress/