// small things, done wellconst idea = "a little better";
build(idea);
learn();
repeat();
代码 · 2026.09.20 · 3 分钟
不装框架,也能做一个好网站
原生浏览器能力,往往比我们记忆里的更完整。
阅读全文 ↗
我喜欢工具,也喜欢暂时不使用工具。最近这个博客就没有构建步骤:一个 HTML 文件负责内容,CSS 负责外观,几行 JavaScript 负责搜索和主题。
浏览器已经会做很多事
展开阅读用 details,链接用 a,表单校验用 required。这些看起来朴素的元素,本来就拥有键盘支持和默认行为。把这些基础利用好,常常能少写很多代码。
对于一个文章不多的个人博客,所有内容可以直接放在页面里。搜索只需要比较标题和正文。没有请求,也就没有等待加载的状态,离线打开也一样。
规模决定工具
当你需要多人编辑、登录权限、数百篇文章管理时,系统会出现新的需求。到那时再选择框架或内容管理平台也不晚。工具应该解决已经存在的问题。
LOCAL FIRST / PRIVATE BY DEFAULTsave(yourThoughts);
// no network needed
keepItSimple();
代码 · 2026.08.26 · 3 分钟
把一份小工具,留在本地
在需要联网之前,让工具先在自己的电脑上跑起来。
阅读全文 ↗
我给自己写了一个灵感记录板。开始时想加登录、同步和分享,后来决定先把“随手记下一个念头”做好。数据保存在浏览器,可以导出成文件。
这种方式有明确的边界:浏览器数据被清除时,记录会消失;不同设备不会自动同步。所以工具要把保存状态说清楚,也要给出简单的导出入口。
从可控的范围开始
本地工具适合个人试验,也适合演示。它不需要服务部署,不会因为网络波动中断。但当用户开始依赖它时,备份和迁移就应该成为体验的一部分。
我喜欢这种先把事情做小的过程。问题越清楚,代码越容易写,使用起来也越安静。