2 分钟阅读 · 699 字
为什么我又把博客重写了一遍
每次搭博客都会经历同一个循环:兴致勃勃地挑框架、配主题、写下第一篇 Hello World,然后在第三篇之后彻底停更。复盘下来,问题不在写作欲,而在维护成本。
上一版踩的三个坑
1. 数据库是最大的负债
用数据库存文章,就意味着要维护连接串、备份、迁移,还要担心哪天免费额度到期。而我的全部数据量是——几十篇文章。为几十篇文章养一套数据库,属于典型的用大炮打蚊子。
2. 后台编辑器并不好用
我最终发现,比起在浏览器里对着富文本框敲字,我更愿意在 VS Code 里写 Markdown:能全文搜索、能 diff、能顺手贴代码块。
3. 部署链路太长
「本地写 → 提交 → 后台发布 → 触发构建 → 等 CDN 刷新」,任何一环出错都会让我把写作往后拖。而现在这条链路被压缩成了一件事:git push。
现在的方案
文章是仓库里的 .mdx 文件,构建时编译成静态 HTML,整站部署到 Vercel 的 CDN 上。整条链路只有三样东西:
| 环节 | 用什么 | 我要做的事 |
|---|---|---|
| 写作 | MDX 文件 | 新建一个 .mdx |
| 构建 | next build | 什么都不用做 |
| 发布 | Vercel + Git | git push |
我特意保留的两个「不」
- 不加数据库:需要结构化数据时,先用 YAML frontmatter 顶着。
- 不加客户端状态:整站目前没有一个
'use client',全靠服务端渲染 + CSS。
第二条带来的好处很直接:没有业务组件需要水合,深色模式也不用写一行 JavaScript(直接用 prefers-color-scheme)。
接下来想做的
- 静态生成 + RSS 订阅
- 标签页与目录
- 全文搜索(打算用 Pagefind,构建后扫 HTML,仍然不需要服务端)
- 图片灯箱
博客的第一版永远是最热闹的,能不能活过第十篇才见真章。先把链路铺到最短,剩下的交给时间。