Strapi 是 GitHub 上 star 数最多的无头 CMS。开源,基于 Node.js,灵活的内容类型构建器和自动生成的 REST + GraphQL API。2015 年由法国团队推出,现已成长为拥有数千个插件和数十万用户的生态系统。
官网:strapi.io
工作原理
与 WordPress 不同(内容与主题和前端紧密绑定),Strapi 是纯 API。你在管理后台中创建内容类型(文章、产品、落地页等),通过可视化编辑器填充内容,前端通过 REST 或 GraphQL 获取数据。
管理后台基于 React,可定制。可以添加任何类型的字段:文本、富文本、媒体、日期、关联(一对多、多对多)、JSON、枚举、密码。可复用组件用于重复块。动态区域用于灵活组合页面。
创建内容类型后,Strapi 自动生成 API — 控制器、路由、模型。开发者只需要编写前端。
插件与生态系统
Strapi 市场拥有数百个插件。部分是官方插件:GraphQL、文档(根据内容类型自动生成)、邮件和上传提供商。部分是社区贡献:SEO、网站地图、Algolia、Cloudinary、评论、Webhook。
插件架构成熟 — 可以为任何需求编写自定义插件。这对代理商来说尤其有价值:装上 SEO 插件、网站地图、接入 Cloudflare Images — 全部免费。
自托管 vs 云端
Strapi 可以部署在任何地方:VPS、Railway、Render、Heroku、Docker。数据库 — 开发用 SQLite,生产用 PostgreSQL 或 MySQL。自托管版本免费。
Strapi Cloud 是创建者提供的托管服务:每个项目 $99/月。自动备份、CDN、CI/CD 开箱即用。对于不想折腾服务器的代理商和团队 — 是不错的选择。
重要提示:Strapi v5(当前版本)需要 Node.js 20+ 并使用 ES 模块。文档已更新,但旧的 v4 教程部分已不适用。
优点
内容建模的灵活性是主要亮点。可以构建任何复杂度的架构:从博客到具有相互关联实体的市场平台。API 自动生成,过滤、排序、分页 — 开箱即用。
基于角色的访问控制(RBAC)允许为编辑、作者和管理员划分权限。国际化(i18n)内置 — 可以在不借助取巧方法的情况下创建多语言内容。
管理后台体验好。干净的 Material Design,直观易懂,速度很快。内容编辑人员一小时内即可上手。
缺点
Strapi 是 Node.js 单体应用。如果项目增长到数百万条记录,数据库会开始出现问题。v5 包含性能改进,但距离基于 Go 的无头方案(如 Payload CMS 3)还有差距。
大版本升级 — 是痛点。从 v3 到 v4 的迁移犹如探险,从 v4 到 v5 简单一些,但迁移仍需要手工操作。对于长期项目来说,这是一个重要因素。
TypeScript 支持在 v5 中有所改进,但并非处处深入。一些社区插件仍使用纯 JavaScript,没有类型定义。
总结
Strapi 是 90% 需要无头 CMS 的项目的绝佳选择。免费、开源、灵活,拥有出色的管理后台和活跃的社区。非常适合博客、落地页、企业网站和小型电商。对于高负载场景,可以看看 Ghost(如果只需要内容)或 Payload。