跳到主要内容
NKDShinKu
日常更新于 5 分钟阅读

这个博客的由来与打算

为什么要建这个站:从一版废弃的 Vue 尝试换到 Next.js 静态导出,以及选型、设计和与 AI 结对时做的取舍。

这个博客的由来与打算

平时学的东西不少,但大多停在「收藏夹吃灰」的阶段。笔记散落在各种软件里,时间一长自己都找不到;做过的小项目躺在硬盘和 GitHub 上,除了简历里的一行字,没地方给人看;追番的记录在 Bangumi,踩过的坑留在聊天记录里。

所以我想要一个完全属于自己的地方:学习、踩坑、做小东西的过程能沉淀下来,项目能摆出来,兴趣也能装进去。域名是我的,数据是我的,长什么样我说了算:不用管平台改规则和限流,也不用担心服务哪天关停,一段记录跟着消失。

第一版是 Vue 写的,然后推倒了#

最早那版用 Vue 手搓。搭到一半发现真正的阻力不在技术,而在工作量:我想要的不是一个「能显示文章的页面」,而是一整条内容管线:Markdown 渲染、代码高亮、标题锚点、标签归档、搜索、RSS、评论、部署。每一样都得自己造轮子;等轮子造得差不多,最初的动力也消耗完了。

于是推倒重来,换成 Next.js(App Router)+ 全静态导出。这次把决策收成一条:整站就是一堆静态文件,没有 API 路由、没有数据库、没有运行时。git push 之后 CI 构建、生成搜索索引、部署上线,全程没有服务器参与。

好处很直接:托管不花钱(GitHub Pages 对公开仓库免费);没有服务器,也就没有可被攻击的面;静态文件交给任何一家托管都能跑,国内访问不理想还能整体搬到 Cloudflare Pages,代码不用改。

代价也有:所有「动态」能力都得找静态友好的方案,选型时绕了些弯路。

选型:每一项都写下了理由#

  • 评论用 giscus:数据存在仓库的 GitHub Discussions 里,不用额外维护服务端。之前考虑过 Waline 和 Twikoo,功能更全,但要为一个评论区再养一个后端,跟全静态的初衷冲突。
  • 图片放 Cloudflare R2:自定义域直连,出口流量免费。
  • 追番数据直连 Bangumi 公开 API:实测 CORS 放行、并发不限流,不需要代理层。
  • 搜索用 Pagefind:构建期对产物生成静态索引,没有服务端。

框架之外的几个决定:

  • TypeScript 开 strict:类型写清楚,构建期就报错,比线上出问题强;
  • Tailwind 4 管设计 token,配色、字号、圆角改一处全站生效;
  • 组件全部自研,只在弹窗这种对无障碍要求高的地方引入 Radix 的无样式原语;
  • 动效交给 GSAP,滚动入场、极光漂移都尊重系统的「减弱动态效果」偏好;
  • 图标用 Iconify + MDI 按需生成,不背一整套图标库;
  • 内容管线是 unified(remark / rehype),锚点、高亮、图表占位都能插拔;
  • 代码高亮用 Shiki 双主题,亮暗两套在构建期就烘进 HTML,切换不会闪。

设计:天空和夜空#

设计方向在动工前就定了:浅色为主、蓝白基调、柔和阴影、圆润造型,带一点 ACG 气质。给 AI 的关键词只有两个——天空、夜空。

最后落地的方案叫 Soft ACG Fusion:玻璃卡片、极光渐变背景、萤火粒子,主色是天蓝、樱粉、暮紫。二次元素材克制使用,氛围藏在背景里,排版和交互才是主角。白天是晴空,晚上是星夜,两套主题共用同一套 token。

还有一条是全站的硬性要求:无障碍不是可选项。对比度、键盘可达、焦点可见、动效尊重系统偏好、图片必须有替代文本。这些在设计走查里是关卡,不是加分项。

和 AI 结对做完的#

这个站是我和 AI 一起做出来的,从第一行代码到上线。分工大致是:我提需求、定方向、做决定,并且盯着审美和质量;调研、写代码、走查细节、整理文档由 AI 执行。

这个过程里我觉得最值钱的不是「写得快」,而是决策记录。现在记了 21 条决策,每条都写清结论、备选方案和为什么这么选。写下来的过程会逼着模糊的想法变清楚;后面不管是回头查,还是跟 AI 对齐,都有据可依。这篇文章里提到的每个选型,背后都有一条编号。

另一个感受:AI 时代做个人项目,瓶颈从「会不会写代码」变成了「能不能把需求讲清楚」。AI 几分钟就能实现一个组件,但这个组件该不该存在、长什么样、交互顺不顺手,还是得有人一关一关地看。工具越强,判断越值钱。

明确不做的#

下面这些在决策记录里写死了,主要为了防止自己以后手痒:

  • 不做用户系统和登录
  • 不做多语言
  • 不做友链页面
  • 不做访问统计
  • 不做实时聊天和弹幕
  • 不做打赏

接下来#

  • 博客本身继续打磨:动效细节、性能、移动端体验;
  • 文章继续写:建站过程、前端学习的笔记;
  • 实验室继续加东西:学到新技术,先做成能跑的小玩意放上去;
  • ACG 橱窗跟着 Bangumi 的记录自动更新。

更新节奏不固定。想看更新可以用 RSS,想说什么就在文章下面留言,评论用 GitHub 账号就能发。