
博客重写记:当 xLog 落幕,数据掌控欲与爱情同时降临
为什么离开 xLog
近两年,我一直在 xLog 上写博客。xLog 是一个基于区块链的去中心化博客平台,理念很美好,但随着时间推移,它逐渐不再适合我了。
xLog 目前的现状几乎等同于停止开发。作为开发者,我深知一个不再维护的平台意味着什么:没有新功能、没有 bug 修复、没有性能优化。然后是平台上充斥着低质量内容。去中心化的理念固然美好,但感觉缺乏内容审核机制,导致内容质量参差不齐,我希望博客是一个纯粹的技术分享和生活记录空间。最后,也是最重要的,我需要更多定制化功能。生活发生了一些变化,我发展了一段恋爱关系。这带来了新的需求:我想要一个专属的发言小空间,一个可以承载生活温度的地方。
为什么选择自己开发
离开 xLog 后,我简单比较了一下现成的博客平台(WordPress, Hugo 等)和文档框架(VitePress 等),最终选择了使用 Next.js 从零开发,我熟悉 React、对于 RSC(React Server Components)也很感兴趣,想尝试一下最新的技术栈。加上 AI 成熟,辅助开发效率大幅提升,自己开发的成本并没有想象中那么高。
混合渲染:静态与动态的平衡
选择 Next.js 是因为它的 App Router 让我可以同时拥有静态和动态的优势。
文章列表和详情页通过静态生成(SSG),构建时就生成好了 HTML,访问速度极快。同时,我又能写 API Routes 来动态更新内容,比如通过 Next.js 的动态 API 端点更新碎碎念内容。
当通过 API 添加新内容后,系统会自动向 GitHub 仓库提交更新,触发 Vercel 重新构建。这种方式让页面访问速度极快,而一两分钟的更新延迟对于博客这种非实时场景完全可以接受。
技术栈亮点
- Next.js 16: 利用最新的 App Router 和 Server Components。
- React 19: ViewTransition、新特性、编译器自动优化组件重渲染等。
- Tailwind CSS 4: 采用 CSS-first 配置,直接在样式文件中定义主题变量。
- Vitest 4: 进行部分逻辑的辅助单元测试,确保代码质量。
AI 辅助开发的真实体验
AI 辅助开发确实帮了大忙。这个博客从零到上线大约用了 3-4 天。AI 主要帮助生成重复性的样板内容、调试技术问题、优化细节。但关键决策,比如选择什么技术栈、如何设计架构、UI 细节要求和产品理念都是我自己做的。AI 是效率工具,不是替代思考的工具。比如这篇文章,就是我和 AI 一起完成的,我提供想法、基础内容、行文框架和技术判断,AI 帮我整理和润色表达。
设计理念:简约中的温度
在设计这个博客时,我一直在思考一个问题:如何让一个技术博客既保持专业简洁,又能承载生活的温度?
极简主义:黑白灰的克制
博客的主体设计基本只使用黑、白、灰三种颜色。这种极简不是偷懒,而是克制。见过太多为了炫技而堆砌功能的项目,最终都因过度复杂而难以维护。好的设计应该做减法,只保留最核心的元素,让读者的注意力集中在内容本身。但极简不等于冷漠。博客主体和「碎碎念」保持黑白灰的设计,代表着理性和专业;唯一的例外是「Mio 说」,它使用粉色作为点缀,代表着温馨和专属。这种设计不仅是视觉上的区分,更是氛围的营造。
体验优化:看得见与看不见的
阅读体验上,文章的宽度、行高、字间距都经过仔细调整。合适的行宽(65-75 个字符)、舒适的行高(1.6-1.8),这些数字背后是科学研究和用户体验的最佳实践。移动端针对不同设备特性做了优化:更大的字体、更大的交互区域、更简洁的导航。视觉细节上,外链自动添加 ↗ 图标,链接使用虚线下划线(悬停时切换为实线),主题切换过渡平滑无闪烁。内容增强上,会自动计算阅读时间,使用 Shiki 实现精确的语法高亮,图片自动优化为 WebP 格式。在 SEO 优化上,会自动生成站点地图、Robots.txt、RSS 订阅源,每篇文章自动生成 Open Graph 图片。
这些小心思可能不会被所有人注意到,但我知道它们在那里。就像生活中的很多小事,不需要被看见,但它们让一切变得更好。
特殊的功能设计
碎碎念与 Mio 说:两种记录方式
「碎碎念」用于记录我自己的点滴想法,类似 Twitter 的短内容,可以是早上起床时的灵感,也可以是晚上睡前的感慨。「Mio 说」则是一个专属空间。这个板块使用粉色作为视觉点缀,在黑白灰的基调上营造温馨氛围。设计初衷是打造一个独立的记录空间,让内容能够被完整保留。
两个板块都集成了 QQ 机器人,直接在 QQ 上发消息就能添加内容,不需要打开电脑,不需要懂技术,随时随地都能记录。这种方式把发布门槛降到了最低,让记录变得像发微信一样简单。
为什么不用数据库
我选择了最简单的方案,用文件存储(Markdown 和 JSON)。因为它简单可靠:纯文本文件,Git 管理版本,无需维护数据库。另外也数据自由:内容完全属于自己,不被任何格式锁定。还具有性能优势:静态生成,访问时直接返回 HTML。
写在最后
从 xLog 迁移到自建博客,不仅是技术上的尝试,更是一次完整的实践。在这个博客的设计中,我发现技术不应该仅仅服务于技术本身。好的设计应该服务于目的,而不是为了技术而技术。最让我满意的是「Mio 说」页面的设计。每次打开,看到标题和线条上那温暖的粉色点缀,会感觉到这个空间的氛围,温馨、独立、专属。
技术不是最重要的,重要的是你想通过技术实现什么。但掌握技术,能让你更自由地表达。
欢迎访问我的新博客:blog.viki.moe。所有源代码都开源在 GitHub 上。