Headless CMS(无头内容管理系统)是一种将内容管理与前端展示分离的 CMS 架构。它只负责内容的创建、编辑、存储、管理和分发,不负责页面渲染,也不限定前端技术栈。前端应用通过 REST API 或 GraphQL 获取内容,自行完成展示。
其核心优势是内容与展示解耦,同一份内容可以同时分发到网站、移动应用、小程序、桌面应用等多个终端。典型功能包括内容模型管理、富文本编辑、媒体资源管理、用户权限控制、工作流管理、多语言支持、版本管理和 API 分发。
Headless CMS 适合多端内容分发、企业官网、内容平台以及需要灵活定制前端的项目。常见开源项目包括 Directus、Strapi、Payload CMS 和 Sanity。
与 Directus 定位相近的 Headless CMS 知名开源项目:
| 项目 | 开发语言 | GitHub Stars |
|---|---|---|
| Strapi | TypeScript | 73.4k |
| Payload CMS | TypeScript | 45.5k |
| Ghost | JavaScript | 55.6k |
| Wagtail | Python | 21k |
| KeystoneJS | TypeScript | 10k |
| Squidex | C# | 2.5k |
| Filament | PHP | 32k |
项目简介(每个约 100 字):
-
Strapi — GitHub。知名 Headless CMS,基于 Node.js,提供可视化内容模型、REST/GraphQL API、角色权限和插件扩展。适合企业官网、内容平台、移动应用后端。
-
Payload CMS — GitHub。基于 TypeScript 和 Next.js 的全栈 CMS,采用代码优先模式定义数据模型,自动生成管理后台和 API。适合 Next.js 项目及需要深度定制业务逻辑的应用。
-
Ghost — GitHub。专注于博客和专业内容出版的平台,内置文章管理、会员订阅、Newsletter 邮件发送及 Headless API。适合媒体网站、独立博客和付费内容业务。
-
Wagtail — GitHub。基于 Django 的 Python CMS,提供丰富的内容编辑体验、权限管理、版本控制和 API。适合 Python 技术栈下的企业内容管理和大型网站。
-
KeystoneJS — GitHub。TypeScript 开发的可编程 CMS 和后端框架,通过代码定义数据模型,自动生成 GraphQL API 和管理界面。适合开发者主导、需要灵活数据结构的业务系统。
-
Squidex — GitHub。基于 ASP.NET Core 的 Headless CMS,提供结构化内容管理、REST API、GraphQL、版本控制和多语言支持。适合 .NET 技术栈及企业级内容管理。
-
Filament — GitHub。基于 Laravel、Livewire 的后台管理 UI 框架,提供 CRUD、表单、数据表格、仪表盘等组件。适合快速开发企业内部管理系统,但它不是完整的 Headless CMS。
选型建议:
| 需求 | 优先考虑 |
|---|---|
| 已有 SQL 数据库,快速生成 API 和后台 | Directus |
| 内容管理、Headless CMS | Strapi |
| Next.js 全栈应用 | Payload |
| Laravel 管理后台 | Filament |
| Python/Django 内容平台 | Wagtail |
我的判断:如果目标是寻找 Directus 的直接替代品,优先比较 Strapi、Payload、KeystoneJS;如果目标是寻找通用业务后台和 API 平台,则应该把 PocketBase、Supabase、Appwrite 纳入比较。两类产品的架构定位并不完全相同。