关于本站

怎么做的

TanStack Start + React,构建期把全站预渲染成静态页,跑在 Cloudflare Workers 上;样式是 Tailwind CSS,正文是 MDX。文章里的那些 demo——打散的字、游走的墨滴、会长的梅——都是嵌在文章里的活代码(three.js / d3 / canvas),不是录屏。

照片页的图在构建期过一条管线:读出 EXIF 里的快门、光圈和拍摄时间,带 GPS 的坐标自动换算成地名,压成两档尺寸,再各生成一枚几百字节的占位小图内联进页面—— 所以照片显形之前,你看到的那团颜色就是它自己。运动页没有地图瓦片:轨迹从 Strava 同步后直接解码成 SVG 路径,路自己就是地图。

设计

全站只有一套墨色阶加一个黛蓝的强调色,底色是纸。正文用 Inter,衬线和等宽走系统默认。背景里的墨梅不是图片,是每次打开时在 canvas 里现场长出来的——分叉的每一步都掷骰子,所以你看到的这一株,别人看不到。

左上角那行小字

桌面上有个小程序(ProcessReporter)每分钟把我正在用的应用、正在听的歌上报给站内的一个端点。落库的只有应用名和歌名,窗口标题这类带隐私的东西在服务端就被丢掉了。人不在电脑前,那行字自己消失。

没有的东西

没有统计脚本,没有追踪像素,没有 cookie——所以也不用弹窗问你「接受全部」。

顺手的键

列表页可以用 j / k 上下走,任何页面按 t 回到顶部;照片点开后,方向键或 j / k 翻页,Esc 合上。

这个网站也算我的一件作品 →