博客又改了:这次连服务器都不要了
上次大改才过去两周,这回干脆把 Go 后端整个删了:博客变成纯静态的页面应用,托管在 GitHub Pages 上,外观换成了冷色调的玻璃质感,每篇文章还多了一张按内容画出来的封面。
上次那轮大改才过去两周,我又把博客翻了一遍。这次改得更彻底:服务器不要了。
为什么
上次改完,我盘了一下这个博客真正在干的事:文章是 Markdown,放在 blog-data 仓库里;页面是服务端渲染好吐出来的;点赞、阅读数这些动态功能,我自己其实从来不看。
说白了,它就是一堆静态页面,却要我维护一台服务器、一个 systemd 服务,外加一套登录后台。
那还要后端干嘛?
现在是什么样
睡前我把需求丢给了 Claude:去掉后端,改成纯页面应用,多用点玻璃特效和动画。第二天早上就有了一个能点的版本。
- 没有服务器了。构建脚本读取 blog-data,生成整站静态文件,用 GitHub Actions 发布到 GitHub Pages。往 blog-data 推一篇文章,一小时内自动上线。
- 像 App 一样切换页面。每个页面都提前生成好 HTML,搜索引擎照样能读到全文;站内点链接时不整页刷新,卡片上的标题会「飞」进文章页。
- ⌘K 搜索。以前靠后端建索引,现在全文索引跟着站点一起生成,在浏览器里搜。
- 旧链接都还在。
/posts/...、/?tag_id=这些老地址一个没丢;评论区按文章原来的地址去找 GitHub Discussions,以前的评论也都在。
代价也有:点赞和实时阅读数没了,这两个离不开服务端。管理后台也没了,以后写文章就是直接往仓库里提交 Markdown——说实话,这反而是我最喜欢的写法。
换了身衣服
第一版是粉紫绿的极光加毛玻璃,好看是好看,就是太「甜」了,不像一个后端的博客 😅️
于是又改成了冷色调:深蓝、青、钢灰,背景铺一层很淡的工程网格,鼠标移到哪儿,哪儿的网格就被照亮。
另一个变化是封面。以前卡片上要么是文章里的第一张截图,要么只有一个大字。现在每篇文章都有一张构建时画出来的封面:讲 context 超时的那篇是一段 WithTimeout 的代码,讲分表的是一个库拆成一堆分片,死锁那篇是两个协程抱着两把锁互相等,《五人墓碑记》是一块刻着原文的石碑。全是 SVG,不依赖任何图床。
顺便说说 AI
和上次一样,这一轮几乎都是 Claude 干的。我做的事情只有几件:提需求,看效果,说「太甜了,要冷峻一点」「大字封面不好看」,然后决定什么时候收手。
有意思的是,它自己会写测试、开浏览器截图检查效果,还会对着截图挑毛病。中途它发现导航栏的毛玻璃糊不住后面的字,来回排查了半天,最后确认是它所在的云端容器没有 GPU,软件渲染出来的假象——换成真浏览器就正常了。这种事要是我自己碰上,大概会对着 CSS 怀疑人生一晚上。
从服务端渲染到纯静态,两周时间,博客的形态变了两次,而我写的代码几乎为零。
上一篇结尾我说希望科技慢一点。两周过去,它并没有慢下来。
既然拗不过它,那就加入它吧。
评论
评论区快到眼前时才会加载。