从能部署到能恢复:PostgreSQL、R2 与灾难恢复
部署成功只证明当前容器能运行。Kita 怎样用质量门禁、migration、backup sidecar 和恢复清单逐步接近真正的可恢复状态。
为什么 OpenList 是独立应用,而不是 Kita 的一个微服务
Games 与资源目录在体验上应该连接,但这不代表 OpenList 必须进入 Kita 的数据库、Compose 和发布流程。
Games 封面从源码枚举到 Payload Media + R2
Kita 的 Games 图片经历了枚举、静态路径和 Payload Media 三个阶段。这次迁移真正解决的是让内容变化不再等于代码发布。
从静态页面到 Payload Local API:Kita 的数据流怎么形成
页面效果确定以后,Kita 怎样用 Payload、PostgreSQL、Local API、server getter 和 mapper 建立一条可解释的数据流。
为什么我重新做了 Kita,而不是继续修旧项目
重做 Kita 不是否定 Kralgame,而是把旧项目真正有价值的视觉与内容意图,从已经无法可靠重建的代码和配置里分离出来。
为什么 Kita 要 Self-host:我怎样从 VPS 走到 Coolify
Self-host 对我不是拒绝自动化,而是理解代码怎样穿过 GitHub、Docker、域名和数据库,最终运行在自己管理的服务器上。
为什么我一直使用 Dev Container:开发环境也应该写进仓库
源码能够提交到 Git,并不代表开发环境就能复现。这篇记录 Kita 为什么把 Node、pnpm、Docker 和编辑器配置一起放进 Dev Container,以及我为此付出的代价。
从一个视频开始:我怎样为 Kita 搭起 Next.js 开发基座
作为初学者,我先要解决的不是页面设计,而是弄明白一个 Next.js 项目需要哪些基础工具,以及每个工具究竟解决什么问题。
个人网站,简单比复杂更重要
少一些框架和功能,多一些真正能够持续更新的内容。
把学习过程写成可以复用的笔记
不追求日更,只记录以后还会再次用到的知识。












