写作

围绕可运行的软件,重做个人网站

静态个人网站可以保持简单,同时为交互式演示和终端项目留下足够的空间。

一份源文档经过静态页面,分别连接到阅读内容与独立运行的软件

个人网站没有必要变成另一个应用后端。我想发布的大部分内容本来就是静态的:文章、截图、短录屏和源代码链接。交互式项目则可以保留各自独立的发布周期。

这形成了一套很小的发布模型:

为什么项目彼此分离

如果把每个项目的构建产物都复制进个人网站仓库,不相关的发布就会被绑在一起。修改一篇文章不应该重新构建浏览器实验,Freeform 发布新版本也不应该要求修改 Working Set。

因此,首页是一份经过选择的索引。它负责描述与视觉呈现,而每个项目自己的仓库仍然是代码、文档、版本和验证证据的事实来源。

Local-first 演示

Freeform 很适合说明静态托管仍然可以做到什么。公开发布的画布是一份模板。首次打开时,浏览器会基于模板创建本地工作区。后续编辑存储在 IndexedDB 中,并且只属于当前浏览器配置。

这里没有账户系统,也没有共享数据库。访客可以自由实验,而不会修改公开模板或其他人的画布。导出与导入则构成明确的数据迁移边界。

网站应该承载什么

并不是每个仓库都需要一个网页界面。终端产品更适合用真实的终端 UI、简洁的说明和直接的安装方式来呈现。目标是提供软件实际存在并能够工作的证据,而不是把它伪装成网页。