Loading...
跳到主要内容
开发

什么是 Git 型 CMS?「无数据库」运营内容的最现实做法

· siimplelab

什么是 Git 型 CMS?「无数据库」运营内容的最现实做法

做网站做到一定阶段,往往会遇到这样的纠结:

  • 「博客/文档/落地页要经常更新,但不想再维护一套数据库。」
  • 「希望每次内容变更都能追踪是谁改了什么。」
  • 「需要先审稿再上线的发布流程。」

这时,Git 型 CMS(Git-based CMS) 是其中一种最干净的方案。一句话概括:

把内容存成「文件(Markdown/JSON/YAML)」而不是数据库,用 Git 提交(或 PR)记录每次修改的 CMS。


Git 型 CMS 的核心概念

1)内容是「文件」

传统 CMS(如 WordPress)把内容放在数据库里。Git 型 CMS 通常是这样存的:

  • content/posts/hello-world.md
  • content/docs/getting-started.md
  • data/products.json

也就是说,仓库本身就是 CMS 的数据存储

2)修改以「提交」形式记录

编辑内容时,CMS 会在 Git 里生成提交,于是自然得到:

  • 谁改的(作者)
  • 什么时候改的(时间)
  • 改了什么(diff)
  • 回滚(revert)

「内容变更历史」几乎由 Git 免费提供。

3)发布靠「构建」完成

多数 Git 型 CMS 搭配 静态站点(SSG)混合方案(Next.js/Astro 等)

流程一般是:

  1. 在 CMS 里改内容 → 生成 Git 提交/PR
  2. CI/CD 触发 → 站点构建
  3. 静态资源部署(Vercel/Netlify/Cloudflare Pages 等)

为什么选 Git 型 CMS?

运维成本低(少管 DB/服务器)

  • 数据库备份、迁移、安全补丁等运维大幅减少。
  • 「数据」本质是文件,最坏情况只要有 Git 仓库就能恢复。

协作与审稿流程自然

用 PR 驱动的话,内容可以像代码一样走审稿:

  • 写初稿 → 开 PR
  • 审稿(校对/事实核查)→ 通过
  • 合并后自动发布

内容团队越大,这种结构越有价值。

性能好

静态站天生快:

  • 利于缓存和 CDN
  • 服务器成本低

缺点也很明显(很多人栽在这里)

1)不适合「写多」的服务

评论、点赞、订单、购物车这类 用户频繁写入数据 的场景,用 Git 型 CMS 很难撑住:

  • 提交量暴增
  • 并发编辑、冲突增加
  • 构建频繁则部署成本/时间上升

2)复杂搜索/筛选/关系型数据较难

「按标签列文章」「按热度排序」「关系型 join」是数据库的强项。

Git 型 CMS 也能做,但通常要绕一下:

  • 构建阶段生成索引 JSON
  • 预生成标签/列表页
  • 接 Algolia 等搜索服务

也就是说,性能可以很好,但设计和实现难度会上去

3)内容规模大时构建时间变长

文章到几千、几万篇时,构建和部署时间就不可忽视,需要 ISR 等混合策略。


最适合哪类站点?

Git 型 CMS 特别适合:

  • 公司介绍/落地页(营销站)
  • 博客/新闻站
  • 产品/服务文档
  • 作品集/案例
  • 静态目录(价目表、菜单、课程说明等)

下面这些更适合「内容用 Git 型 CMS,其余用别的存储」的混合方案:

  • 会员/登录/权限
  • 评论/评价/论坛
  • 支付/订单/库存

常见的 Git 型 CMS 类型(按类别理解)

A)「给站点加 /admin」型

  • 在静态站上挂一个 CMS 界面,编辑后往仓库提交。
  • 优点:结构简单,和 SSG 搭配好。
  • 缺点:编辑体验因项目而异,配置可能有限制。

B)「和框架深度集成」型

  • 在 Next.js、Astro 等里集成 CMS 能力。
  • 优点:开发体验好,易定制。
  • 缺点:初期配置可能比 A 重。

C)「商用/托管」型

  • 非开发者编辑体验往往更顺滑。
  • 提供协作、权限、预览等。
  • 缺点:有费用,可能有厂商绑定。

实战架构示例(推荐形态)

「内容用 Git,动态数据分开」

比较现实的组合是:

  • 文章/文档/页面:Git 型 CMS(文件 + 提交)
  • 点赞/浏览量/简单配置:KV 等无服务器存储
  • 会员/支付/交易:SQLite 或 Postgres 等数据库

也就是 Git 型 CMS 只用在「内容」这一块,业务数据按用途分开存。


引入前检查清单(不看容易后悔)

  1. 谁在编辑?
    非开发者编辑多的话,UI、权限、预览很重要。
  2. 是否需要审稿?
    想要 PR 式审稿流程,Git 型 CMS 的优势才能发挥。
  3. 更新频率多高?
    一天改几十次的话,要考虑构建和部署成本。
  4. 搜索/筛选/列表是否核心?
    需要规划构建期索引或外部搜索。
  5. 内容规模会不会变大?
    提前想好 ISR、缓存和构建优化。

小结:「无 DB 运营」的答案通常是 Git 型 CMS

Git 型 CMS 很贴合「不想用数据库也能运营内容」的需求:

  • 变更历史/协作/审稿:Git 解决
  • 发布/性能:静态构建 + CDN 解决
  • 运维成本:低

但把业务数据也硬塞进 Git 会出问题。内容用 Git 型 CMS,其余用 KV/SQLite/DB 分开存,最稳妥。