Last updated on

为静态博客添加编写功能的方案对比


背景

我的静态博客基于 Astro 构建,内容以 Markdown/MDX 文件形式存储在 src/content/blog/ 目录下。为了提升创作体验,我希望能够在页面上直接编写内容,而无需手动编辑本地文件并提交 Git。

经过与 AI 助手的讨论,共梳理出五种可行的方案,各有优缺点和不同的实现难度。本文记录这些方案,作为后续实现的参考。

方案概览

方案一:Decap CMS(原 Netlify CMS)

核心思路:基于 Git 的 Headless CMS,将内容直接提交到仓库的 Markdown 文件中。

优点

  • 完全免费:开源、自托管,无需支付服务费。
  • 数据自主:所有内容都存储在自身的 Git 仓库中,无需担心供应商锁定。
  • 架构契合:完美匹配静态站点生成(SSG)的工作流,内容变更触发重新构建。
  • 权限控制:利用 GitHub 等 Git 平台的权限管理,支持多人协作。

缺点

  • 需要配置:需在项目中添加配置文件、设置 GitHub OAuth 应用等。
  • 发布延迟:内容提交后,需要等待 CI/CD 流水线完成构建和部署才能看到更新(通常几分钟)。
  • 功能相对基础:相比成熟的 SaaS CMS,功能和扩展性可能有限。

实现难度:中等。需要了解 Git 工作流、基本的 Web 配置,但社区文档丰富。

方案二:Astro Studio CMS

核心思路:使用 Astro 官方提供的托管式 CMS 服务。

优点

  • 与 Astro 深度集成:官方支持,可能提供更流畅的开发体验。
  • 开箱即用:无需自行搭建后端或处理身份验证。
  • 实时预览:可能提供更快的发布体验。

缺点

  • 可能有费用:免费套餐可能有功能或用量限制,超出需付费。
  • 数据不在自己手中:内容存储在第三方平台,存在供应商锁定风险。
  • 功能限制:可能不如自建方案灵活。

实现难度:低到中等。遵循官方文档步骤即可,但需要注册 Astro Studio 账户。

方案三:自建后端 CMS(如 Strapi、Directus)

核心思路:自行部署一个开源的 Headless CMS 服务器,通过 API 提供内容。

优点

  • 完全控制:可以自定义内容模型、用户角色、工作流等。
  • 功能强大:成熟的 CMS 系统提供丰富的管理和编辑功能。
  • 数据独立:数据库由自己掌控,可部署在任何地方。

缺点

  • 维护成本高:需要购买服务器、配置环境、进行安全更新和备份。
  • 实现复杂:需要搭建后端、配置数据库、处理部署和运维。
  • 初期投入大:时间、精力和金钱成本都较高。

实现难度:高。需要全栈开发及运维知识。

方案四:使用 SaaS CMS(如 Contentful、Sanity)

核心思路:采用成熟的云端 CMS 服务。

优点

  • 功能全面:提供强大的内容建模、协作、版本控制和多语言支持。
  • 无需运维:由服务商负责可用性、安全和扩展。
  • 开发生态好:通常有完善的 SDK 和开发工具。

缺点

  • 持续费用:随着内容量和用户数增长,费用可能显著增加。
  • 供应商锁定:迁移到其他平台成本高。
  • 可能不符合简单需求:对于个人博客而言,功能可能过于庞大。

实现难度:低到中等。主要工作在于集成 API 和配置内容模型。

方案五:客户端编辑器(如 Tina CMS)

核心思路:将编辑界面直接嵌入前端,在“编辑模式”下直接修改内容并提交到 Git。

优点

  • 无缝体验:直接在网站上编辑,所见即所得。
  • 保留 Git 工作流:内容仍存储在 Markdown 文件中。
  • 适合技术用户:编辑体验接近传统 CMS。

缺点

  • 配置复杂:需要在 Astro 组件中深度集成。
  • 可能有性能开销:编辑模式需要加载额外 JavaScript。
  • 仍在发展:某些功能可能不够稳定或文档不全。

实现难度:中到高。需要深入前端集成。

对比总结

方案成本数据控制实现难度适合场景
Decap CMS免费完全自主中等个人或团队博客,希望免费且数据自主
Astro Studio CMS可能付费第三方低-中希望快速上手,信任 Astro 生态
自建后端服务器费用完全自主需要高度定制化,有运维能力
SaaS CMS订阅费第三方低-中企业级需求,愿意付费省心
客户端编辑器免费完全自主中-高开发者希望无缝编辑体验

当前决策

基于“最初只需要简单”的原则,并综合考虑免费、数据自主、与现有静态架构契合度等因素,我决定首先实现方案一(Decap CMS)

方案一虽然在发布上有几分钟延迟,但对于个人博客完全可以接受。它避免了服务器维护成本,也无需持续付费,同时保持了内容的完全所有权。后续若需求增长,可再评估其他方案。

后续计划

  1. 实施 Decap CMS:配置 admin 目录、GitHub OAuth、编辑界面,并测试完整流程。
  2. 自动化部署:确保内容提交后能自动触发构建和部署(当前已通过 GitHub Actions 实现)。
  3. 体验优化:考虑添加草稿、实时预览等增强功能。

这篇记录将帮助我在未来需要扩展功能时,快速回顾各方案的优劣,做出更合适的选择。


本文由 AI 助手协助整理,基于 2026 年 1 月 30 日的讨论。