Article

个人网站的 Headless CMS 选择对比

更新于:2025-05-16 10 min read

为什么选择 Headless CMS?

我目前在设计和开发一些小型网站和个人网站,考虑到对无代码经验的用户使用上的便捷,所以在研究和挑选合适的 Headless CM (无头CMS) 来使用在项目中,希望找到一个适合自己的最佳实践。传统CMS(比如 Wordpress 我觉得太臃肿不够灵活自由)。

由于网站体量小,并且没有太多商业化需求,因此我希望选择的标准是免费(免费额度足够使用)、配置简单、操作友好,有一定的社区支持。


什么是Headless CMS?

CMS 全称是 Content Management System,即内容管理系统。Headless CMS 也称为 无头CMS,与传统CMS对比,它将前端和后端分离,只提供内容管理系统和内容API的CMS,注重内容的创建和管理,而不处理呈现内容的前端界面,将内容与前端逻辑完全解耦,在前端页面设计和开发时更加灵活自由。

传统的 CMS 代表有 Wordpress、Drupal、DEDE(织梦CMS)、Joomla等,特点是一般将所有内容捆绑到一个系统中。

而 Headless CMS 按照项目规模和具体需求可以有更多的选择。常见的有:Sanity、Contentful、Strapi、Dato CMS、Prismic、Tina CMS等等。

结论:体验 TinaCMS

在经过一般寻找和筛选后,我最终选定了几个进行具体对比和具体分析:Sanity( Star 5.6K)、Dato CMS(定位不同)、Tina CMS( Star 12.5K - 开源关注高)、Keystatic(Star 1.5K - 新项目)。具体的对比在后文。

先说结论,在简单的体验过后,我是选择了 TinaCMS 来进行开发。

  • TinaCMS 提供可视化的编辑工具,可直接在网站前端编辑内容,这点对于用户来说很友好,而且轻量,配置文档也不算太复杂。缺点就是官网真不好看,而且文档阅读起来也不是特别友好。

  • Sanity 实际上在功能性和体验上面是最舒服的。Sanity Studio 提供了强大的自定义编辑界面,且支持实时内容更新。但配置难度较高,整体框架相对较重,不太适合当前项目的需求。后期如果有开发体量较大的网站需求,会优先尝试用 Sanity 来开发。

  • Keystatic 对于 Next.js 项目应该更为友好,集成性强且轻量。但由于我目前使用的是 Astro 框架,适配性稍差;此外,其 Star 数量相对较低(约 2,100),社区资源和支持有限,暂时不做考虑。

  • Dato CMS:作为托管型 Headless CMS,管理界面直观,适合非技术用户,且支持多语言内容管理。但免费计划限制较多,功能扩展需付费。类型上不是我目前的最佳选择。**

Sanity、Dato CMS、Tina CMS、Keystatic 对比

简单 CMS 对比

  • Sanity:适合需要现代化内容管理体验和动态更新的用户。
  • Dato CMS:适合内容简单的小型网站,尤其是非技术用户友好。
  • Tina CMS:适合静态网站开发者,可视化实时剪辑和版本控制。
  • Keystatic:适合 Next.js 用户,追求简单和免费的解决方案。

全面对比

1. Sanity

  • 免费使用:有免费计划,适合小型项目。免费计划包括 1 个用户、3 个数据集和一定量的 API 请求,足够用于个人网站。

  • 类型:托管型 Headless CMS。

  • 技术要求:中等(托管型),通过 API 集成到前端框架,但配置 Sanity Studio 和 GROQ 查询语言需要一定的开发经验。

  • 功能特点

    • 提供强大的内容编辑工具(Sanity Studio),支持自定义编辑界面。
    • 支持实时内容更新,适合动态网站。
    • 支持多语言内容管理。
  • 对中文支持

    • 管理界面默认英文,无官方中文本地化,但可通过自定义配置实现部分中文支持。
    • 内容管理上对中文支持良好。
    • 文档主要是英文,中文社区和资源较少。
  • 适用场景:需要现代化内容管理体验,适合与 React、Next.js 等框架集成的个人或小型团队项目。

2. Dato CMS

  • 免费使用:有免费计划,但功能有限。免费计划适合小型项目,包含 1 个用户和少量内容记录。

  • 类型:托管型 Headless CMS。

  • 技术要求:低(托管型),通过 API 集成,界面友好,适合非技术用户管理内容。

  • 功能特点

    • 提供直观的管理界面,易于使用。
    • 支持多语言内容,适合国际化项目。
    • 提供丰富的 API 和 webhook 功能。
  • 对中文支持

    • 界面默认英文,无官方中文本地化,可能需要手动配置。
    • 内容管理上对中文支持良好。
    • 文档主要是英文,中文社区和资源较少。
  • 适用场景:希望使用托管型 CMS,预算有限,适合小型个人网站或内容简单的项目。

3. Tina CMS

  • 免费使用:是的,完全开源,提供免费使用(基于 Git 的内容管理)。

  • 类型:开源 Headless CMS,可使用 Tina Cloud。

  • 技术要求:中等(需开发经验),专注于与现代 JavaScript 框架(如 Next.js、Gatsby、Astro)集成,需配置。。

  • 功能特点

    • 轻量级,提供可视化编辑工具,可直接在网站前端编辑内容。
    • 内容存储在 Git 仓库中,适合版本控制。
    • 强调开发者友好,配置灵活。
  • 对中文支持

    • 界面和文档主要是英文,中文文档有中文版本,暂时不全面。
    • 内容管理上支持中文输入和渲染。
    • 社区支持有限,中文资源较少。
  • 适用场景:熟悉静态网站开发的用户,追求轻量级和免费的 CMS 解决方案。

4. Keystatic

  • 免费使用:是的,完全免费的开源项目。

  • 类型:开源 Headless CMS,通常自托管。

  • 技术要求:中等(需开发经验),专为 Next.js 项目设计,需集成到项目中。

  • 功能特点

    • 轻量级,基于文件的内容管理(内容存储在本地文件或 Git)。
    • 提供简单的编辑界面,集成到 Next.js 应用中。
    • 适合小型项目,功能较为基础。
  • 对中文支持

    • 界面和文档主要是英文,无官方中文支持。
    • 内容管理上支持中文输入和显示。
    • 社区和中文资源非常有限(项目较新)。
  • 适用场景:使用 Next.js 构建网站的用户,追求轻量级和免费的 CMS 解决方案。

官方文档