2 分钟阅读

为什么我把博客做成了纯静态的

一台小服务器、几页 Markdown,和一个几乎不需要维护的写作系统。

这个博客没有数据库,没有登录后台,也不需要我每天关心服务器负载。它只是几页提前生成好的 HTML,安静地躺在 Nginx 的目录里。

对个人博客来说,这可能是最舒服的形态。

三个足够用的部件

整个站点只由三部分组成:

  1. Astro 负责把 Markdown 和页面模板编译成静态 HTML;
  2. Markdown 文件 是全部内容的来源,放在 Git 里就能随时回滚;
  3. Nginx 只做一件事:把文件发给访问者。

没有运行时服务,也就没有进程崩溃、数据库连接失败或者依赖升级带来的意外。服务器甚至不需要安装 Node.js,构建可以在自己的电脑上完成。

const posts = (await getCollection('blog', ({ data }) => !data.draft)).sort(
  (a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(),
);

需要发布新文章时,流程也很简单:新建一个 .md 文件,填好标题和日期,构建,上传。整个过程不到一分钟。

放弃了什么

静态站点不是没有代价。

  • 没有浏览器里的写作后台,文章必须在本地写;
  • 评论、点赞这类需要持久化状态的功能,要么接入第三方,要么自己加服务;
  • 每次修改都要重新构建和部署。

但这些东西,恰好都不是我现在需要的。个人博客最重要的功能是持续地写,而不是把产品功能清单填满。

一个更小的承诺

选择静态方案,也是在给自己一个更小的承诺:不需要维护一整套系统,只要维护一个写作习惯。

服务器一年花不了多少钱,构建只需要几秒钟。剩下的时间里,我唯一要做的,就是打开编辑器,把想法写下来。

这听起来朴素,但已经足够。