我为什么越做越小
我为什么越做越小
今年上半年我在写「平台」,下半年我在写「工具」。星数没变多,但交付的东西变完整了,而且我不用天天惦记它们。
一、上半年:每个项目都要先解释怎么装
把 2026 年前几个月的仓库排开看,气质很一致:
X-admin:一套 PHP 的轻量 CMS,卖点是动静分离——后台 PHP 管内容,前端 Nginx/Apache 直接吐静态 HTML,请求完全不经过 PHPxfm-cms:面向小微企业官网的 PHP 程序,支持 SQLite 和 MySQL 两套库x-site:跨平台的静态博客桌面客户端,Vue 写的x-collector:Tauri 2 + React + Rust + SQLite 的采集与发布工具,关键词采集、RSS / 网页 / 站点地图,清洗带伪原创,能导出 Hexo、能自动发布到 WordPress / Typecho / Z-Blog
这些项目有一个共同点:它们的说明书都比代码长。
每个都要回答同一串问题:装在哪、什么版本、数据库怎么建、伪静态怎么配、附件目录给什么权限、升级会不会丢数据。这些问题没有一个是「功能」,但它们决定了这个东西能不能被别人跑起来。
我当时觉得这叫「专业」。后来发现更准确的说法是:我在为复杂度付利息。
二、下半年:双击就能用的东西
然后画风突变。
tools-box:508 款工具,纯前端、零依赖、不用框架、不打包,index.html 双击就能开。所有计算在浏览器本地做完,一个字节都不上传。
whois:一个 Cloudflare Workers 的单文件,域名 / IP / ASN 的 RDAP 查询,走 RDAP.org 自动路由,中文结构化展示。没有后端,没有服务器账单。
cf-kv-nav:把别人的导航站 fork 过来改,跑在 Workers + KV 上,改完部署一次就完事。
和上面那批放在一起,第一眼看像是「能力退化」——从 CMS 退到计算器。但我自己的体感完全相反:
| 维度 | 平台类项目 | 小工具 |
|---|---|---|
| 上手成本 | 先读安装文档 | 打开就用 |
| 部署 | 数据库 + 运行时 + 反向代理 | 一个静态目录 / 一次 wrangler deploy |
| 维护 | 依赖升级、安全补丁、数据迁移 | 基本为零 |
| 出故障 | 用户数据可能没了 | 刷新一下 |
| 谁会用到 | 需要「一套系统」的人 | 包括我自己 |
最后一行是分水岭。平台类项目的用户是「别人」,小工具的用户首先是「我自己」。这个区别决定了我会不会在半夜想起来去修它。
三、做小不是看开了,是承认精力有限
我不想把这件事包装成「断舍离」或者「极简主义」。真相朴素得多:我同时维护不了那么多东西。
一个 CMS 的真实成本不在写完那天,而在之后的每个月:PHP 版本升级要测、依赖有漏洞要补、用户问「为什么上传图片失败」要回。这些成本不会因为我这段时间在写别的项目而暂停。
而小工具的成本是一次性的:写完、部署、忘掉。它不需要运营,只需要在坏掉的时候修一次——而它坏掉的频率,通常比 CMS 低一个数量级。
所以现在的取舍标准只有一条:
这个东西一年后还需要我管吗?需要,就先别做。
四、小不等于简单
有件事要澄清:做小不是降低要求,是换了一种难法。
tools-box 两天堆到 508 个工具,看起来是「快」,实际上一半的功夫花在两件很枯燥的事上:
- 去重。第四批上线时发现 4 款和旧工具功能重叠,直接替换掉,没留着凑数。508 这个数字只有在每一款都能独立站住的时候才有意义。
- 守住约束。不许用框架、不许联网、不许上传——这三条一破,第五百个工具就会先把我拖进构建配置和依赖升级里。约束不是限制,是产能。
而 whois 那种单文件程序,难点全在「不写后端」:怎么在 Worker 里做超时控制、怎么处理上游 RDAP 服务器不响应、怎么把一个嵌套 JSON 渲染成人能看懂的结构。省掉服务器,复杂度并没有消失,只是被挤进了同一段代码里。
小项目的难,是「一次做对」的难;大项目的难,是「一直做对」的难。我现在的耐心只够前者。
五、心态变化
最初做开源,我想的是「做一个有用户的产品」。这个词很有诱惑力,也很容易让人把「功能多」当成「有价值」。
现在我更在意另一件事:做出来的东西,是否真的进入了我自己的日常。
tools-box 我每天都开,x-video 是我电脑上唯一的播放器,这个站(hexo-theme-lovou)承载了我全部输出。它们都没什么星,但它们被使用——被我使用。
至于那些平台类项目,我不后悔写过。正是写过 CMS、写过采集发布、写过桌面客户端,我才知道哪些复杂度是必要的、哪些只是我在自我感动。没做过大的,做小的时候容易把「简单」当成「随便」。
- 工具站:tools.lovou.pw
- Whois:whois.xfm.qzz.io
- 相关仓库:xfm0797/tools-box · xfm0797/x-collector
评论