返回文章列表

为什么不用 CMS

Framer / Webflow / WordPress 看起来更快,实际绑死了内容、抽成、SEO。用 MDX + git 一劳永逸。

我用了 5 年 Notion 写博客,3 年 WordPress 做客户案例,1 年 Ghost 做 newsletter。每一次都后悔。

CMS 的”快”是新项目的糖

CMS 看起来快:注册账号,选模板,拖拽区块,上线。但前两个月不显形的成本:

  • 内容锁在平台数据库里 → 导出只能拉 Markdown / HTML,样式全丢
  • 平台抽成 / 月费 → 写一篇 1000 字博客,平台抽 5%
  • 改样式要付月费 → 想加个暗色模式?升级到 Pro $20/月
  • SEO 受限于平台 → 标题、meta、结构,你写完了平台不一定听
  • 平台政策变了 → 突然不允许某类内容,前功尽弃

Framer / Webflow 解决了”写”的部分,但没解决”的东西”的问题。

真正想要的

  • 内容是 纯文本 + Markdown,git 可追踪
  • 域名是我的,平台换了内容还在
  • 样式我自己写,想加任何东西 5 分钟搞定
  • 性能自己优化,SEO 自己控制
  • 部署 5 分钟,迁移 30 分钟

听起来工程量大?实际上是个 1 周的项目,之后 5 年都不需要碰基础架构。

我用什么

  • Astro 5 — 默认静态,需要时切 SSR。文件即路由,组件即布局。
  • MDX — Markdown + 组件。我写正文时偶尔 import 一个小组件,搞个 chart / callout / embed。
  • TypeScript — 内容 schema 用 Zod 校验,改字段名 build 时报错。
  • Cloudflare Pages — 静态 + Functions 一起,免费层够用。
  • Git — 全部内容都在 git 里。改名一句话 commit,误删能恢复。

真的不累吗

写一篇博客,我需要:

  1. 打开 VS Code
  2. 编辑 src/content/articles/zh/<slug>.mdx
  3. 写完 git add && commit && push
  4. 30 秒后 Cloudflare 自动部署

跟 CMS 比:多了一步(commit),但少了一堆头疼事:导出格式、自定义 CSS、平台弹窗、付费解锁功能。

什么场景不该用这个

  • 不懂 git — 每次写文章要 commit + push,这个门槛对非开发者太高
  • 3+ 协作者 — git merge conflict 在多人编辑时很烦
  • 频繁更新 design — 改样式要碰 CSS,设计师改不了

如果只你一个人写,git 是优点(版本可追溯)。如果团队多人,git 是负担,Notion / Sanity 这类 headless CMS 更合适。

收尾

CMS 是给不会写代码的人用的工具。我会写代码,而且我不想以后某个平台改政策了我被卡住。

用 MDX + git + Cloudflare,3 年后这个站点还能跑,内容还能导出,平台换了也不影响。

如果你也写代码,试试 Astro / Next.js + MDX + MDX content collections。15 分钟跑起来。

更新(2026-09-03)

上线 6 周后回头看:Astro + MDX + Cloudflare Pages 这套组合没让我碰过一次”基础架构”。期间加了 11 个 web 工具页面 + 5 个内容集合(products / services / testimonials / articles / now)+ 完整 auth + 双通道支付,全是 feature 代码,零迁移零重构。Astro 5 的 scoped CSS 在这次升级里还救了我——以前工具页 document.head.appendChild 注入 CSS 会把整个站的 body 撑爆,scoped 后只影响工具内。

— 老蔚

键盘快捷键

先按 g 再按下面的键。? 打开这个面板。