除了WordPress,我们还有什么


回忆

折腾自己的博客已经有 20 多年了,从最早的 blogcn、MSN space,到虚拟主机 + WordPress、NAS + WordPress、Hosted WordPress…… 几乎每隔一段时间就会折腾一下。结果就是博客的连续性被打断,历史数据以及各种备份最终不知所踪。虽然后期都用了 WordPress,但备份始终不太易用。各个平台都有自己的备份机制,历史却依然淹没在了时间的长河中。

执念

回头想想自己对博客的执念,最终化为以下几点:

  1. 必须要有自己的域名
  2. 必须要有 SSL
  3. 速度要快(国内优先)
  4. 要能备份
  5. 省心
  6. 省钱

必须要有自己的域名

互联网时代,域名就是自己的名片。虽然现在有很多个性化域名,免费而且彰显个性,但我还是保留了自己用了十几年的 .net 顶级域名,以彰显我互联网老鸟的 B 格(划掉),以告慰我十几年的折腾历史。

必须要有SSL

其实没有也没什么,咱也没啥敏感信息,唯一要担心的可能是登陆。但是作为一个软件工程师,自己的博客不支持 SSL,这能忍?太不 Geek 了。

目前免费的可信任的 SSL CA 越来越少,更多的是购买云主机/虚拟主机送入门 SSL 证书。翻了一大圈都不简便,或者不便宜……

速度要快

首先,没有什么比一肚子话却因为编辑器 Load 不起来而写不下来更难受了。对于这个我有一肚子苦水。Wordpress.com 啥都好,甚至连 Business 的价格我都能忍,就是编辑器打开速度不能忍。如果我连编辑器都打不开,我要这个博客作甚…… 再高级的编辑器在网速面前都得跪。

其次,页面的读取速度也是很重要的因素。面对目前流行的静态化,WordPress 还是太慢。虽然有静态化插件,还是被各种复杂花哨的功能拖了后腿。更别提各种要钱的不要钱的主题和插件了…… 丰富的功能是有代价的。

目前流行的 Markdown Source + 静态化框架(Hexo 之类)可以解决速度问题,特别是国内的 Gitee Pages,不在乎花哨布局和域名的完全可以用起来。

要能备份

WordPress 导出导入能用,整站备份则略微麻烦,尤其是当自定义了很多东西之后。有插件能解决,就看省心程度和插件价格了。Markdown + Static 的方案通常就是开个 Git Repo,倒也省心。本地 Clone + Pull 就能解决备份问题。

总的来说,备份复杂程度和框架的功能丰富程度成正比。我现在比较倾向于极简风:)。

省心

为啥从自己搭建 WordPress 转成 Wordpress.com,就是不再想折腾了。自己搭建博客其实没啥技术含量,却要耗费大量心力做运维。常见要处理的问题有:

  • 备案,和电信周旋(如果是自己的 NAS)
  • 机器/服务当机(如果是自己的 NAS 或者云机)
  • 垃圾评论(好的插件要付费)
  • 自己定义备份策略
  • 被攻击(如果是自己的 NAS 或者云机,不常见,但还是有的)

等等等等。不是说不能解决,但是想想自己博客的初衷是什么,就觉得这些时间花的不是那么值了……

省钱

有钱能使鬼推磨。上述所有问题在有钱的情况下都好解决。理想情况我可以搞一套:

  • 国内高性能云机器 + 域名备案
  • 付费 SSL 证书
  • WordPress + 付费静态化插件 + 付费垃圾评论过滤 + 可选付费主题
  • 看情况上 CDN(海内 + 海外)
  • 付费插件备份整站数据到本地 NAS

算了下一年两三千要的。尤其是过了第一年的各种云平台新用户优惠之后更甚:)

Wordpress.com Business Plan 其实挺好的,七八百一年,就是对于国内环境来说是真水土不服。而国内的虚拟主机要 Host WordPress 要么是性能太烂,要么是第二年起太贵(各种意义上),对于没有收入的博客来说真是有点奢侈。

免费的 GitHub Pages 和 Gitee Pages 可以满足一部分要求,但是免费自定义域名 + SSL 仍然不可及。

Hashnode

这一切烦恼在我遇到 hashnode 后立马烟消云散!域名绑定 + SSL,自动化备份到 Git,国内国外都不错的速度,Markdown + 静态渲染,还都免费!免运维!功能上我已经没脸提出更多要求了。

简单的风格,核心功能的支持,hashnode 直击我的痛点,开启了我的后 WordPress 时代。

再折腾:从 Hashnode 到 Astro

本来我以为 hashnode 就是终点站了,毕竟白嫖 + 省心 + 快,还要啥自行车。

结果呢,我还是没忍住。时间一长,手就痒了。当我发现 hashnode 里那些我根本没碰过的社交功能、评论区、醒目页眉,被塞得越来越多;而我只想要一个干干净净、装着我文字的页面时,我又开始蠢蠢欲动了:

  • 我想要完全控制页面,包括被塞进来的那些我不想要的元素。
  • 我想要真正的本地优先——文章就是我的文件,跑得了和尚跑不了庙。
  • 我想把“折腾”这件事本身,做成一种乐趣,而不是一种负担。

于是我又回到了自建的怀抱。这次,我选的是 Astro

为什么是 Astro?因为它几乎完美命中了我当年那六条执念:

  1. 域名 + SSL:Astro 是纯静态站点,丢到任意静态托管(Vercel、Cloudflare Pages、自己的 Nginx)都能配自己的域名和免费的自动 SSL。当年的老大难,现在是默认配置。
  2. 速度:Astro 默认“零 JS 优先”,生成的是纯静态 HTML,打开速度跟裸文件一样快。国内再套个 CDN,编辑器更是本地写,想卡都卡不起来。
  3. 备份:所有内容就是 src/content/ 下的 Markdown 文件,整个站点是一个 Git Repo。git clone 就是全量备份,git pull 就是恢复。这条对我这种“历史屡屡丢失”的老病号,是最大的安全感。
  4. 省心:没有服务器要管,没有数据库要备份,没有垃圾评论要过滤(我甚至可以不开放评论)。构建、部署都是自动化的。
  5. 省钱:静态托管基本免费。
  6. 可掌控:最重要的是,页面完全归我。想改主题?改 CSS 就行。想加功能?Astro 的组件模型很清爽,不会绑架我。

而且 Astro 玩起来还挺有 Geek 乐趣的:文件就是内容,路由就是目录,一切都透明又可控。折腾博客这份爱好,终于从“运维负担”变回了“拆玩具的快乐”。

这一路:blogcn → WordPress → Hashnode → Astro,折腾了二十多年,我终于觉得这次大概能安定下来了。大概吧:)