Strapi 及其类似产品 & WordPress 的介绍与对比

3,412 阅读21分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情

温馨提示🔔:

本文仅建议参考,有不确切的内容可以在评论区提出,我会及时查证并修订,避免造成对后来者的误导。

我暂时还不太清晰从哪些角度对 CMS 进行背调,标题有些误导人了,有头和无头CMS或许不能直接相提并论,也希望有掘友可以帮忙指条明路。

就产品实现而言,或还要看CMS的市场份额(主要指有头CMS?),结合实际团队现有技术栈考虑,使用有头和无头CMS的难易度比较又如何等等…

踩坑里了….难受..AI 的辅助也十分有限,尤其是涉及数据…..npm数据趋势我手动查找下来..这是否公平正确也不知道..因为他们的诞生年份等原因….不知道怎么评估啊..

这篇文章还是看看就好了,,可能烂尾,现在在修订第二波..

或许这篇文章并没有什么意义?..

如对文章阐述形式有改进的建议,欢迎评论区提出 :applause👏。

本文涉及的 (Worth Noted Nouns) 值得注意的名词在文章末尾,可通过大纲链接提前查看相关解释。

本文涉及框架的 Github、官网、npm包地址在文末给出。


Strapi 基本描述 📃

  • Strapi 是一款产品
  • Strapi 是一个灵活的、开源的内容管理框架(CMS)

Strapi 的使用场景有哪些?🎯

  • 构建复杂的网站和应用程序:Strapi 提供了一个灵活的数据模型和 API 构建工具,使得开发人员可以轻松地构建复杂的网站和应用程序。
  • 快速构建原型和 MVP:Strapi 允许您快速创建原型和 MVP,因为它提供了自定义数据模型和字段、快速 API 构建工具、可视化管理面板等功能。
  • 创建头内容管理系统(CMS):由于 Strapi 具有强大的数据模型和管理界面,它可以用作灵活的内容管理系统,适用于各种不同的网站和应用程序。
  • 作为无头 CMS 的后端:Strapi 适合作为无头 CMS 的后端,因为它提供了一个可定制的 API,使得开发人员可以在任何前端框架中使用。
  • 构建电子商务网站:由于 Strapi 具有灵活的数据模型和 API 构建工具,因此它适合构建电子商务网站,特别是需要大量定制功能的网站。

Strapi 及相似产品对比

Strapi 与其相似产品的介绍?

  • Strapi:Strapi 是一个基于 Node.js 的开源 CMS 框架,可用于构建 RESTful API 和网站。它拥有一个可视化的界面,使得创建和管理内容变得非常容易,同时还支持插件和第三方集成。
  • KeystoneJS:KeystoneJS 是一个灵活的、开源的 Node.js CMS 和 web 应用程序框架,它使用 MongoDB 或 MySQL 作为数据存储。拥有类似于 Django Admin 的管理界面和一组强大的构建工具。它还支持 GraphQL 和 RESTful API,并支持自定义字段和数据类型。
  • Directus:Directus 是一个开源的、无头的 CMS 和 API 管理平台,它提供了一个可定制的 API 和可视化的管理界面,可用于构建各种类型的应用程序。
    • Built entirely in TypeScript (in Node and Vue)
    • 纯粹的 Headless CMS:Directus 是一个纯粹的 Headless CMS,它不会预先定义数据模型或数据结构,用户可以根据需要完全自定义自己的数据模型和内容结构。这使得 Directus 更加灵活,适用于不同的应用场景。
    • 多语言支持:Directus 支持多语言内容管理和翻译,并提供了可视化的语言翻译界面,使得内容翻译更加方便和高效。
    • 数据库和存储支持:Directus 支持多种数据库和存储后端,包括 MySQL、PostgreSQL、SQLite、MongoDB、AWS S3 等,用户可以根据自己的需求进行选择。
    • 易于扩展:Directus 提供了一个强大的插件系统,用户可以使用插件来扩展其功能和定制化特定的需求。
    • Directus 是一个非常灵活、功能丰富的 Headless CMS 框架,适用于需要高度自定义的应用场景。虽然在社区和市场上,它的知名度可能不如 Strapi、KeystoneJS、Ghost 和 ApostropheCMS,但是它在一些特定场景中已经被广泛使用和认可。
  • Cockpit:Cockpit 是一个轻量级的、开源的内容管理框架,它提供了一个灵活的数据模型、可定制的 API 和可视化的管理界面,适用于构建各种类型的应用程序。
  • ApostropheCMS:ApostropheCMS 是一个开源的 Node.js CMS 和 web 应用程序框架,它提供了一个可定制的数据模型、可视化的管理界面和内置的 SEO 优化功能。专门用于构建内容驱动的网站和数字产品。它具有一些独特的功能,如片段编辑器、可嵌入的内容、可定制的模块和一个自动生成的管理界面。
  • Wagtail:Wagtail 是一个基于 Django 的开源 CMS,它提供了一个可定制的数据模型、可视化的管理界面和强大的内容审核和工作流功能。
  • WordPress: WordPress 是一款流行的开源内容管理系统(CMS),可以用于创建各种类型的网站,包括博客、商店、社交网络等等。它是一个基于 PHP 和 MySQL 的平台,提供了许多易于使用的工具和功能,使用户可以轻松地创建和管理网站。
  • Ghost: Ghost 是一个开源博客平台,专门用于创建博客,支持 Markdown 编写和发布内容,也可以扩展使用JavaScript进行开发。它也拥有大量的npm下载量和很高的GitHub Star数,并具有简单易用的用户界面和自定义主题的功能。

Node.js 社区中较流行的4款框架的数据表现📊

下表数据仅供参考。

以下是 Strapi、KeystoneJS、Ghost 和 ApostropheCMS 四个框架的一些基本数据,这些数据是基于它们的 GitHub 仓库信息以及 NPM 下载量和使用情况等方面进行比较的。

表格中使用了一些关键指标,例如 GitHub 星级、Forks 数量、Contributors 数量、最新版本的发布时间和 NPM 下载量等。

这些数据来源于 2023 年 4 月 14 日的情况。

CMS 框架GitHub 星级Forks 数量Contributors 数量最新版本/Tags发布时间NPM 下载量
Strapi31,3466,6191,3042023 年 3 月 25 日31,600,000+
Keystone7,5831,0771282023 年 3 月 17 日778,000+
Ghost37,8027,5245932023 年 3 月 31 日7,280,000+
ApostropheCMS2,407486612022 年 10 月 13 日30,000+

下表数据为作者本人手动查找统计的数据,乐观统计。

时间:2023/4/14。

CMS 框架GitHub 星级Forks 数量Contributors 数量最新版本/Tags发布时间NPM 下载量 2013/1/1 - 2023/4/13NPM 下载量 2022/1/1 - 2023/4/13
Strapi53.1k6,6191,3042023 年 4 月 13 日9,540,437strapi: 1,349,745@strapi/strapi: 2,936,719 Total: 4,286,464
Keystone7.8k1,0772282023 年 3 月 17 日1,168,82683,258
Ghost42.9k9.3k5932023 年 4 月 13 日1,767,169400,531
ApostropheCMS4k5401022023 年 4 月 14 日30,000+138,113
Directus20.9k2.6k2922023/4/14581,788405,167

上述4款框架的发布时间线

  1. Strapi:
  • 2016 年 11 月:首次发布了 Strapi 的 0.1 版本。
  • 2017 年 8 月:发布了 Strapi 3.0 版本,这是完全重写的版本,使用了最新的技术栈和全新的架构。
  • 2020 年 9 月:发布了 Strapi 3.1 版本,增加了多语言支持、新的插件、RBAC 权限控制等功能。
  • 2021 年 3 月:发布了 Strapi 3.5 版本,增加了头条集成、可配置的角色和权限等功能。
  • 2022 年 3 月:发布了 Strapi 4.0 Alpha 版本,增加了 GraphQL 的集成和一些新的 API 功能。
  1. KeystoneJS:
  • 2013 年 5 月:首次发布了 KeystoneJS 的 0.1 版本。
  • 2015 年 1 月:发布了 KeystoneJS 0.3 版本,增加了 GraphQL 支持和文件上传功能。
  • 2018 年 5 月:发布了 KeystoneJS 4.0 版本,支持 React 16 和 Node.js 8,增加了权限系统等功能。
  • 2021 年 2 月:发布了 KeystoneJS 6.0 Beta 版本,支持 TypeScript,增加了新的 UI 组件等功能。
  1. Ghost:
  • 2013 年 9 月:首次发布了 Ghost 的 0.3 版本。
  • 2014 年 9 月:发布了 Ghost 0.5 版本,增加了标签、静态页面等功能。
  • 2017 年 4 月:发布了 Ghost 1.0 版本,重构了后端架构,增加了多作者支持、页面和标签集成等功能。
  • 2020 年 4 月:发布了 Ghost 3.0 版本,增加了 AMP 和 Koenig 编辑器等功能。
  • 2022 年 2 月:发布了 Ghost 4.0 版本,增加了新的博客模板和网站工具等功能。
  1. ApostropheCMS:
  • 2009 年:首次发布了 ApostropheCMS 的 0.1 版本。
  • 2016 年:发布了 ApostropheCMS 2.0 版本,重构了后端架构,增加了全文搜索、可嵌入内容等功能。
  • 2020 年:发布了 ApostropheCMS 3.0 版本,支持 Headless CMS 和 GraphQL,增加了新的编辑器等功能。
  1. Directus:
  • 2015年:Directus 7 发布,是一个基于 AngularJS 的开源项目,提供了一个管理界面和 RESTful API。
  • 2018年:Directus 7.5 发布,加入了对多语言支持的本地化翻译和管理,以及对自定义字段类型和表单验证规则的支持。
  • 2019年:Directus 8 发布,是一个全新的基于 Vue.js 的重构版本,重写了管理界面和 API,同时提供了许多新功能,例如扩展 API、多租户支持和自定义界面主题等。
  • 2020年:Directus 8.8 发布,引入了更好的 GraphQL 支持、自定义字段类型和许多新的插件。
  • 2021年:Directus 9 发布,是一个全新的重构版本,基于 React 和 Node.js,提供了许多新的功能,例如本地化、自动化工作流程、高级权限控制、实时同步和自定义部署等。
  • Directus 9.5.0:2022 年 2 月 15 日发布,新增了支持自定义表单验证规则的功能,支持通过 JavaScript 函数编写自定义验证规则,同时还改进了 GraphQL API 的性能和稳定性,并添加了新的 GraphQL 节点,以支持更多的查询操作。
  • Directus 9.6.0:2022 年 4 月 15 日发布,引入了一个全新的插件系统,使用户能够通过插件扩展 Directus 的功能和界面。此外,该版本还加入了对 AWS S3 存储的支持,并改进了多语言支持和界面主题的功能。
  • Directus 9.7.0:2022 年 8 月 23 日发布,增强了工作流程和权限控制功能,引入了审批流程和自定义角色权限,以及允许管理员根据具体需求定制不同的审核规则。此外,该版本还增强了 GraphQL API 的功能,允许用户通过参数自定义返回结果集,从而更灵活地满足业务需求。

Strapi 同其类似产品功能对比的表格输出

框架主要优点数据存储技术栈是否支持头部和无头 CMS
Strapi灵活的数据模型和 API 构建工具、可视化管理面板、强大的插件生态MongoDB、PostgreSQL、MySQL 和 SQLiteNode.js、React.js、GraphQL、REST API支持头部和无头 CMS
KeystoneJS灵活的数据模型和 API 构建工具、可视化管理面板、插件生态丰富MongoDB 和 MySQLNode.js、Express.js、React.js、GraphQL、REST API支持头部和无头 CMS
Directus可定制的 API 和可视化的管理界面、数据模型灵活PostgreSQL、MySQL 和 SQLitePHP、Vue.js、GraphQL、REST API支持无头 CMS
Cockpit灵活的数据模型和 API 构建工具、可视化管理面板、插件生态丰富MongoDBPHP、Vue.js、GraphQL、REST API支持头部和无头 CMS
ApostropheCMS可定制的数据模型和可视化的管理界面、SEO 优化MongoDBNode.js、Express.js、Handlebars、REST API支持头部和无头 CMS
WordPress易用性高、插件和主题生态丰富、社区活跃MySQL 和 MariaDBPHP、JavaScript、REST API支持头部 CMS

Strapi 及其类似产品使用量及流行度对比的表格输出📊

包名年下载量月下载量周下载量
Strapi8,231,834597,537138,702
Directus873,02858,98714,357
Cockpit656,11648,15510,695
Cockpit CMS486,71234,4107,214
KeystoneJS1,019,68651,27411,554
ApostropheCMS74,0514,4861,238
Ghost2,316,228124,06827,684

上述图表为五者 npm 下载量的 年、月、周对比数据总结📊

本段落总结

  • 先说结论:我们就用 Strapi 基本上不会出什么问题,看官网的页面精美程度就让人十分安心。
  • Keystone 虽然 Github Release 有在近期更新,但是 npm package 的发布已经是四年前了。
  • Apostrophe npm 下载量在 2015-2016 有一个高峰期,贡献了保守估计 90% 的下载量。
  • 跟 Strapi 能打一点的可能是 Directus 了?
  • Ghost 与 WordPress 不该与基于 Node.js 的 CMS 框架直接进行比较?技术栈和应用面有所不同。

Strapi 与 WordPress 对比相关

Notive: WordPress.com 是 WordPress 的商业托管版本。很容易将其与 WordPress.org 混淆,后者是开源、自托管的 WordPress。

WordPress 是用 PHP 后端编写的,但前端是可定制的,因此您可以将它与无头 JavaScript 平台一起使用。

所以 WordPress 应该还是有点讨论的意义?

WordPress 与其前五者的相同点和不同点

相同点:

  • 都是内容管理系统:WordPress 和前5者都是内容管理系统,用于构建和管理网站、博客和其他形式的内容。
  • 都支持自定义内容模型:WordPress 和前5者都支持自定义内容模型,允许用户根据实际需求自由定义内容类型、字段和关系等。
  • 都具有可扩展性和灵活性:WordPress 和前5者都具有一定的可扩展性和灵活性,可以通过插件、模板和开发扩展和定制功能。
  • 都具有多用户和权限管理功能:WordPress 和前5者都具有多用户和权限管理功能,允许管理员和编辑者等角色对内容进行管理和发布。

不同点:

  • 技术栈:WordPress 是基于PHP技术栈构建的,而前5者大多使用Node.js等现代技术栈。
  • 定位和用途:WordPress 是一个完整的博客和网站建设平台,具有大量的博客和CMS相关功能,而前5者则更侧重于作为开发框架和CMS构建器。
  • 界面和操作方式:WordPress 提供了强大的管理界面和可视化编辑器等功能,而前5者则大多采用代码驱动和自定义开发的方式,需要一定的开发技能和经验。
  • 社区生态:WordPress 拥有庞大的社区和生态系统,包括大量的主题、插件、模板和开发者社区等资源,而前5者则相对较小。
  • 部署和扩展方式:WordPress 可以使用共享主机、虚拟私有服务器和云托管等多种方式进行部署和扩展,而前5者则更依赖于自主部署和云原生架构。

Strapi 与 WordPress 产品功能对比

仅供参考 直接有头 和 无头 CMS 的领军角色进行对比吧。

功能StrapiDirectusWordPress
数据库支持MongoDB、PostgreSQL、MySQL、SQLite、MariaDBMySQL、PostgreSQL、SQLite、Microsoft SQL Server、MongoDB、Amazon AuroraMySQL、MariaDB、PostgreSQL、SQLite、Microsoft SQL Server
API 构建内置 RESTful 和 GraphQL API即时提供 REST + GraphQL内置 REST API,需要插件支持 GraphQL
管理界面自定义管理界面,易于使用和定制内置后台管理界面,具有相对较高的学习曲线
自定义字段支持自定义字段和关系支持自定义字段,可根据需求进行定制化开发支持自定义字段,但需要使用插件来支持自定义关系
主题和插件提供强大的插件系统和开发者工具,可以扩展功能和自定义界面提供灵活的插件系统和扩展性,可以自定义功能和界面拥有丰富的插件和主题库,易于扩展和定制
安全性内置安全性功能,如 CSRF 和 XSS 预防。
严格的安全机制,支持数据加密和访问控制
严格的安全机制,支持数据加密和访问控制一些安全性功能需要插件来支持安全性较差,容易受到攻击
性能非常快速,特别是对于大量的数据
极高的性能表现,支持横向扩展
极高的性能表现,支持横向扩展相对较慢,尤其是在大量数据的情况下
性能相对较弱,不适合大型数据集和高并发应用场景
学习曲线学习曲线相对陡峭,但易于上手,需要一定的开发经验和技能学习曲线相对平缓,容易上手,可定制性高学习曲线较浅,上手快,易于使用
适用场景适合构建复杂的、可扩展的应用程序
适用于中小型企业和创业公司的多种应用场景,包括博客、电子商务、CMS、物联网等
适用于企业级和中小型项目,特别适合大型数据集和数据驱动型应用场景适合构建博客、新闻网站等简单的网站、个人博客、企业门户、中小型网站等
工作流管理提供工作流管理功能可以通过自定义脚本实现工作流管理功能可以通过插件实现工作流管理功能
多语言支持支持多语言内容管理和本地化翻译支持多语言内容管理和本地化翻译提供基础的多语言支持
用户权限控制支持基于角色的权限控制,可以配置细粒度的用户权限支持多租户环境和用户角色权限,可以自定义管理和操作权限提供基础的用户角色和权限管理功能
数据可视化可以通过自定义仪表盘展示数据可以通过自定义报表展示数据可以通过插件实现数据可视化
社区支持和生态环境拥有活跃的社区支持和完善的生态环境拥有活跃的社区支持和完善的生态环境拥有庞大的社区支持和完善的生态环境

本文 (Worth Noted Nouns) 值得注意的名词

什么是 无头CMS有头CMS

有头(Headful)CMS 和无头(Headless)CMS 是两种不同的内容管理系统架构。

有头CMS 即 传统CMS?。最常见的 CMS 就是博客系统,作者登录管理后台写文章,点击发布后读者就可以访问指定网址,看到作者发布的内容。

有头CMS是指将前端展示层和后端数据管理层绑定在一起,通常由一个完整的系统提供整体解决方案,包括网站搭建、内容管理、用户管理、模板等方面的功能。

无头 CMS 就是指:仅包含内容管理的后台,没有现成的前台展示,前台需要自己实现。

无头CMS是将前端展示层和后端数据管理层分离开来,后端提供数据API和管理功能,前端则使用API获取数据并自主构建展示层和用户界面。无头CMS通常具有更高的灵活性和可扩展性,适合用于构建多平台、多设备和多应用场景的应用。

总体来说,有头CMS适合那些需要快速搭建和运营网站、博客和其他在线内容的用户,而无头CMS则适合那些需要更加灵活、多样化和创新化的用户和应用场景。

产品对比环节中,什么是横向对比?什么是纵向对比?

在产品比较的环节中,有两种主要的比较方式:横向对比和纵向对比。

横向对比是指将同一类别或类型的产品进行比较。例如,如果你正在比较不同品牌的手机,你会将它们的处理器速度、屏幕分辨率、相机性能等进行横向对比,以帮助你做出决定。

纵向对比则是指比较同一产品在不同时间点或不同版本之间的差异。这种比较通常是针对产品升级和更新而进行的。例如,如果你正在比较同一款手机的两个不同版本,你会将它们的硬件规格、操作系统、应用程序和其他功能进行纵向对比,以确定它们之间的区别和改进之处。

在 Strapi 和 WordPress 的比较中,表格呈现了两者功能的横向对比,例如它们的数据库支持、API 构建能力、管理界面、自定义字段支持、安全性、性能、可扩展性、学习曲线和适用场景等。


本文涉及框架的相关链接

template:

Github

Official Website

Npm Package

Strapi

strapi/strapi: 🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript, fully customizable and developer-first. (github.com)

Strapi - Open source Node.js Headless CMS 🚀

如果你直接查 strapi 的 npm 包,可能会查到这个 3.6.11 deprecated 版本包的地址: strapi - npm (npmjs.com)

它们名称不同,新版 npm 包名称为:@strapi/strapi,旧版包名称为:strapi。 新版带有组织名。

@strapi/strapi - npm (npmjs.com)

Directus

directus/directus: The Modern Data Stack 🐰 — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database. (github.com)

Directus: The Modern Data Stack, Democratized

directus - npm (npmjs.com)

Ghost

TryGhost/Ghost: Turn your audience into a business. Publishing, memberships, subscriptions and newsletters. (github.com)

Ghost: The Creator Economy Platform

ghost - npm (npmjs.com)

Keystone

keystonejs/keystone: The most powerful headless CMS for Node.js — built with GraphQL and React (github.com)

KeystoneJS: The superpowered Node.js Headless CMS for developers - Keystone 6

keystone - npm (npmjs.com)

ButterCMS

ButterCMS (github.com)

ButterCMS提供多种语言的SDK包。

ButterCMS/buttercms-js: Node/JS API client for ButterCMS (https://buttercms.com) (github.com)

Ditch your legacy CMS and build better with Butter | ButterCMS

buttercms - npm (npmjs.com)

Apostrophe

apostrophecms/apostrophe: Apostrophe is a full-featured, open-source CMS built with Node.js that empowers organizations by combining in-context editing and headless architecture in a full-stack JS environment. (github.com)

The website builder solution you've been looking for (apostrophecms.com)

apostrophe - npm (npmjs.com)


FYI - Websites / Pages

7 款殿堂级的开源 CMS(内容管理系统) - 知乎 (zhihu.com)

会前端:推荐 strapi 。它背后有商业化公司支持。

不会前端,但懂后端:推荐 Ghost。它玩法多、社区活跃、有免费主题。

会 Python:django-cms 容易接受,wagtail 则更新、势头更猛。

不会编程:首选 WordPress 因为它成熟简单,编程相关的东西都被藏在了背后。

CMS 的过去、现在以及未来 - 掘金 (juejin.cn)

【学习图片】14.网站生成器、框架和内容管理系统 - 掘金 (juejin.cn)

开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流 - 掘金 (juejin.cn) 2021 年 15 个最佳和最受欢迎的 CMS 平台(比较) - 知乎 (zhihu.com)

WordPress.com 是 WordPress 的商业托管版本。很容易将其与 WordPress.org 混淆,后者是开源、自托管的 WordPress。

WordPress 是用 PHP 后端编写的,但前端是可定制的,因此您可以将它与无头 JavaScript 平台一起使用。

2023年CMS内容管理系统全球市场份额 - 闪电博 (wbolt.com)

2023年,WordPress 保持其作为最受欢迎的 CMS 的领先地位。

WordPress是第一大平台,为互联网上43.2%的网站提供动力,约占CMS市场份额的63.5%。


Q&A 疑问

基于不同技术语言实现的 CMS 是否应该混为一谈呢?


蹲一波远程工作机会或外包,新手。。不知道有没有可能不线下上班

内容整理不易,如果觉得有帮助的话还望点赞支持一下,谢谢🙏。

....肝了大半天...