人们问我:你一个人,为什么要做这么多 App?
我的答案很简单:这些不是"产品",这些是我的"技能"。 每一个 App,都是我在生活某个战场上打了很久的仗,最后把打法沉淀成了一段可以反复运行的代码。它先服务我,再服务像我一样的人。
一、一个人的操作系统,需要一套自己的 Skills
我们每个人都在运行一套"个人操作系统":早上几点醒、如何学习、钱怎么花、旅行怎么规划、身体怎么练。绝大多数人这套系统是"出厂设置"——凭感觉、凭惯性、凭意志力。
而意志力是最不可靠的资源。它会随着一天的消耗而枯竭,会在深夜的短视频面前一败涂地,会在健身房第三组卧推的时候告诉你"差不多了"。
所以我做出了一个决定:凡是我反复失败、反复挣扎、反复需要的事情,我就把它做成一个 App。 把意志力的问题,变成系统的问题;把"我今天要不要坚持",变成"这个流程今天自动跑了没有"。
这就是我理解的 Skill:
- 它来自一个真实的、切身的痛点
- 它是我亲手打过的仗,不是想象出来的需求
- 它把我的经验"蒸馏"成一个可以重复执行的工具
- 它安装在我身上先跑通,再交给别人
下面是我目前的"技能树"。每一条分支,都是一段真实的、带血带肉的历史。
二、早点睡觉:一个人早睡的抗争史
如果要选一个 App 代表我"为什么做这么多 App",那就是《早点睡觉》。因为它不是一次做出来的,它是一场持续多年的战争的战报。
第一阶段:早睡提醒——天真的开始
最初我以为问题出在"忘了"。于是我做了一个最简单的功能:到点提醒。
结果是:提醒来了,我看一眼,划掉,继续刷。我发现自己根本不是忘了睡觉,我是清楚地知道该睡了,但就是不想停下来。提醒解决的是信息问题,而我的问题是欲望问题。
第二阶段:App 禁用——从提醒到强制
既然提醒没用,那就把刀伸向真正的敌人:那些吞掉我时间的 App。到了设定时间,短视频、社交、游戏统统锁死。
这一步真的有效果。但我也发现了新的漏洞:人在被禁用的时候,会本能地去找替代品。锁了 A 我就打开 B,锁了 B 我就打开浏览器。强制手段的边界,永远追不上人钻空子的本能。
第三阶段:睡眠森林——从对抗到经营
我开始意识到,光靠"堵"是不够的,还要"疏"。于是有了睡眠森林:你每一次按时入睡,就会种下一棵树;坚持一周,森林就会成型;熬夜,树就会枯萎。
这一步的意义在于,我把"早睡"从一件被剥夺的事,变成了一件有收获的事。它把负反馈换成了正反馈,把"我又没睡好"变成了"我的森林又长大了"。
第四阶段(进行中):睡眠调整计划
一个长期两三点睡的人,不可能今晚就十一点睡。硬来只会躺床上失眠两小时然后放弃。所以下一个功能是渐进式调整:每天提前 15 分钟,用两到三周把作息平移到目标时间。尊重生理规律,而不是跟身体硬碰硬。
第五阶段(规划中):睡眠代价
我想把"熬夜"这件事的代价可视化:这一夜熬掉的不只是几小时,还有明天的注意力、这周的健身表现、这个月的情绪基线。让代价从抽象变成具体的数字,让"再刷十分钟"的每一次决定都能看见它的账单。
第六阶段(规划中):倒扣手机入眠
这是我自己最想要的一个功能,灵感来自一个极其朴素的动作:把手机屏幕朝下扣在床头。 App 用传感器检测到这个姿态,就进入入眠模式,开始计时;一旦翻起来,森林里的树就开始摇晃。这个功能没有任何高深的技术,但它抓住了入睡前最关键的那一秒:手机放下的那一秒。
这六个阶段,每一个都是我在某个凌晨躺在床上、清醒地看着天花板的时候想出来的。它们不是功能列表,是一份逐渐升级的作战方案。 而且每一步的失败,都比成功更有价值——正是失败告诉我下一步该往哪里走。
正反馈驱动"] D --> E["睡眠调整计划
渐进平移"] E --> F["睡眠代价
看见账单"] F --> G["倒扣手机
进入入眠"] G --> H(("真正睡着")) B -->|"乖乖睡了"| H C -->|"没找到替代品"| H
三、烤鸭英语:烤鸭路上的血泪史
"烤鸭"是考雅思的人对自己的自嘲。烤过的人都知道,那种被反复烤、反复烤不熟的感觉。
我做《烤鸭英语》,不是因为我英语好,恰恰是因为我在这条路上摔得够多:
- 背单词背到 A 开头的都认识,B 开头的就模糊,背了一个月还在 abandon
- 听力总是在最后一题的那个数字上丢分,而那个数字我明明听到了
- 写作永远在 6 和 6.5 之间反复横跳,不知道问题出在结构还是词汇
- 口语 Part 2 一开口就是"Well, um, I think...",然后大脑一片空白
市面上的雅思 App 很多,但它们都是"老师视角"——从考纲出发,告诉你该学什么。而我需要的是"考生视角"——从我今天错的那道题出发,告诉我为什么错、下次怎么不错。
所以《烤鸭英语》里的每一个功能,都对应着我一次具体的失败:
| 我踩过的坑 | 我做的功能 |
|---|---|
| 单词背了就忘 | 基于遗忘曲线的复现,只重复我真正记不住的 |
| 听力数字、拼写丢分 | 专门的数字听写、拼写听写训练 |
| 写作分数卡住不动 | 拆解高分范文结构,逐段对比自己的作文 |
| 口语开口就卡 | 题库计时练习,录音回放,听自己哪里在拖 |
| 备考没有节奏,越临近越焦虑 | 按考试日期倒推的每日任务 |
这就是我说的蒸馏:把我付出的时间和挫败感,压缩成一套下一个人可以直接用的方法。我多走的每一步弯路,都变成了别人可以少走的一步。
四、钱钱记账:只在出去玩的时候记账
很多记账 App 想让你记一辈子的账。我试过,坚持不过两周。日常生活的花销太琐碎,记账本身就变成了负担。
但旅行的时候不一样。旅行是一个有明确开始和结束的"项目",有预算、有多币种、有跟朋友的分摊、有回来之后想复盘的欲望。这时候记账不是负担,是刚需。
《钱钱记账》就是为这个场景做的:
- 一次旅行一个账本,出发建立,回家关闭,不给日常生活添麻烦
- 多币种自动换算,在国外掏出的每一张钞票都能换成一个我熟悉的数字
- 多人分摊结算,旅行结束时一键算清谁该给谁多少,不用在群里翻聊天记录
- 按天、按类别复盘,让我知道下一次预算该往哪里倾斜
它是一把只在特定场景下才拔出来的刀。它不贪心,不想占据我的每一天,它只想在我最需要的那几天做到最好。这也是我对"Skill"的另一层理解:一个好的 Skill 知道自己什么时候该出现,什么时候该退场。
设预算·选币种·加同伴"] --> B["路上:随手记
多币种自动换算"] B --> C["结束:一键结算
谁给谁多少"] C --> D["回家:复盘
按天·按类别"] D -.->|"下一次预算"| A
五、亚欧非大环线:做攻略做到吐之后的产物
如果你做过一次跨越十几个国家的长线旅行攻略,你就知道那是什么感觉:几十个标签页、上百条收藏、Excel 表格里塞满了航班时间和签证要求,最后你已经不记得自己为什么要去这个地方了。
《亚欧非大环线》就是我做攻略做到吐之后,愤怒中想出来的东西。
它解决两个问题。
第一个问题:路线本身。 把一条大环线上的城市、交通、签证、季节、预算串成一条可以拖拽调整的线,而不是散落在各处的碎片。
第二个问题,也是我自己最需要的:听背景故事。 我发现攻略做到吐的根本原因,是信息和意义的割裂。我知道要去伊斯坦布尔,但在赶路的时候我早就忘了它为什么叫君士坦丁堡、为什么它站在两大洲之间。所以我做了一个功能:在路上、在飞机上、在等车的时候,戴上耳机,听目的地的背景故事——历史、传说、地理、为什么这座城市会长成今天这个样子。
这个功能让我在到达一个地方之前,就已经和它有了情感联系。攻略是"去哪、怎么去",背景故事是"为什么去、去了看什么"。前者是逻辑,后者是灵魂。
只剩信息,没了意义"] C --> D{"痛点拆解"} D --> E["路线碎片化"] D --> F["知道去哪
忘了为什么去"] E --> G["可拖拽的环线规划"] F --> H["听背景故事
路上戴耳机就能听"] G --> I(("既知道怎么去
也知道为什么去")) H --> I
六、练伴:在健身房撸铁时想出来的 App
《练伴》诞生在两组深蹲之间的休息时间。
那时候我坐在凳子上,脑子里在想一个问题:我上周这个动作做了多重?多少次?这周到底有没有进步? 我不知道。我只有一个模糊的"感觉好像差不多"。
而健身这件事最残酷的地方就在于,没有记录就没有进步。身体是最诚实的系统:你给它的刺激如果和上周一样,它就没有任何理由变强。
所以《练伴》要做的事情很朴素:
- 记录每一组的重量、次数、感受,快到在组间休息的 60 秒里就能完成
- 画出进步曲线,让我看见每个动作的重量、容量在过去几周是怎么爬升的
- 指导下一次训练:根据上一次的表现,告诉我今天该加重还是加次数、该推进还是该退阶
- 让训练更高效:把每一次去健身房的 90 分钟,都花在真正能让我变强的事情上
它叫"练伴",是因为我希望它像一个懂行的训练伙伴:不会替我举铁,但会在我要偷懒的时候说"上周你做了 8 个,今天来 9 个"。
看上次记录"] --> B["训练中
组间 60 秒快速记录"] B --> C["训练后
进步曲线更新"] C --> D["分析
该加重还是加次数"] D --> E["下一次训练指导"] E --> A C -.->|"看见进步 = 动力"| B
七、刻迹:一个人同时跑很多条线,靶子到底在哪
前面五个 App,每一个都在解决一个具体的战场。但当我真的开始同时维护五六个 App、几条产品线、几个平台的时候,一个更上层的问题浮出来了:我自己,成了瓶颈。
我的一天是这样的:手机上收到一条用户反馈,电脑上有三个终端在跑,平板上在看设计稿,浏览器里开着十几个标签页,笔记软件里躺着昨天没处理完的待办。想法在通勤的时候冒出来,记在手机上;回到电脑前,忘了记在哪里;晚上想复盘,发现今天到底做了什么、每件事花了多少时间,一片模糊。
这不是某一个工具的问题。这是多客户端、多流程之间没有一条主线的问题。每个工具都很好,但它们彼此不认识,而我是唯一在它们之间来回搬运信息的人。搬运本身,就吃掉了我一天里最清醒的那几个小时。
《刻迹》就是为了终结这种搬运。它的名字来自"刻下痕迹":我做过的每一件事、花过的每一段时间、想到过的每一个念头,都应该被自动刻下来,而不是靠我事后回忆。
它做三件事。
第一,多客户端合一。 手机、电脑、平板、浏览器,不管想法从哪个入口进来,都落到同一条时间线上。通勤时手机上一句话,回到电脑前它已经在那里等着,带着上下文,而不是孤零零的一行字。
第二,多流程编排。 我同时在跑的每一条线——《早点睡觉》的新功能、《练伴》的 bug、下一趟旅行的攻略、一篇要写的文章——都是一条独立的流程,有自己的阶段和节奏。刻迹把它们并排放着,让我一眼看见每条线走到哪了、哪条卡住了、哪条该推进了。不是把所有事情堆成一个待办列表,而是让每一条线有自己的轨道。
第三,AI 管理助手 + 时间管理。 这是刻迹真正不一样的地方。传统的时间管理是我来规划、我来执行、我来复盘,三件事都靠我。刻迹里的 AI 助手接过了其中最消耗的两件:
- 规划:早上它根据每条流程的进度、截止时间和我过去的精力曲线,给出今天该攻哪几条线、大概各花多少时间
- 执行中:我切换客户端、切换任务,它在后台把时间自动归到对应的流程上,不需要我手动开始、结束计时器
- 复盘:晚上它把一天的痕迹整理成一份简报——时间花在哪、哪条线推进了、哪条被打断了几次、明天该从哪里接上
我不需要再"管理"时间,我只需要做事,时间自己被刻下来,AI 帮我看清它的形状。
自动刻下每一段痕迹"] L --> F1["流程 A
早点睡觉 v6"] L --> F2["流程 B
练伴 bug 修复"] L --> F3["流程 C
下一趟旅行攻略"] L --> F4["流程 D
写一篇文章"] F1 & F2 & F3 & F4 --> AI["AI 管理助手"] AI --> R1["早:今天攻哪几条线"] AI --> R2["中:时间自动归到流程"] AI --> R3["晚:一日简报与明日接口"] R3 -.->|"第二天"| R1
它和其他几个 App 的关系,有点像操作系统和应用程序:前面五个 App 各管一个战场,刻迹管的是我怎么在这些战场之间调度自己。它是我给自己安装的第一个"元技能"——一个用来管理其他技能的技能。
八、这些 App 的共同基因
把这五个 App 放在一起看,会发现它们有一套完全一致的底层逻辑:
| 维度 | 早点睡觉 | 烤鸭英语 | 钱钱记账 | 亚欧非大环线 | 练伴 | 刻迹 |
|---|---|---|---|---|---|---|
| 起点 | 我睡不着 | 我考不过 | 我算不清 | 我做攻略做到吐 | 我记不住进步 | 我成了自己的瓶颈 |
| 战场 | 深夜的床 | 备考的桌子 | 异国的街头 | 几十个标签页 | 健身房的凳子 | 多个屏幕之间 |
| 核心洞察 | 意志力靠不住 | 要从我的错题出发 | 只在该出现时出现 | 信息要有意义 | 没有记录就没有进步 | 搬运信息比做事更耗人 |
| 蒸馏物 | 一套渐进的作战方案 | 一条少走弯路的路径 | 一把场景化的刀 | 一条有灵魂的路线 | 一个懂行的伙伴 | 一个会调度我的助手 |
| 服务对象 | 所有熬夜的人 | 所有烤鸭 | 所有出去玩的人 | 所有想走远路的人 | 所有想变强的人 | 所有多线并行的人 |
把六个 App 分层来看,五个在"战场层",一个在"调度层"——这就是为什么它们不是一堆散落的工具,而是一套有结构的个人系统。
它们都遵循同一个三段式:
不是想象出来的用户需要"] end subgraph S2["2 · 蒸馏自己"] B["把挣扎的过程
压缩成可重复的方法"] end subgraph S3["3 · 服务他人"] C["先在自己身上跑通
再交给和我一样的人"] end S1 --> S2 --> S3 S3 -.->|"他人的反馈让方法更锋利"| S2
九、为什么不做"一个大 App"
一定有人会问:既然逻辑都一样,为什么不合成一个"超级 App"?
因为 Skill 的本质就是单一、锋利、可插拔。
- 一个人可能需要早睡,但不需要考雅思
- 一个人可能常年旅行,但从不进健身房
- 一个 Skill 应该在它的战场上做到极致,而不是在一个庞杂的界面里做一个入口
更重要的是,每个 App 独立存在,才能独立进化。《早点睡觉》从提醒到倒扣手机,走了六个版本,它的迭代节奏和《练伴》完全不同。如果绑在一起,任何一个的进化都会被其他的拖慢。
就像人的技能一样:你不会把"游泳""做饭""开车"合并成一个技能。它们各自练、各自精进,只是都装在同一个人身上。
当然,这些 Skill 之间需要一个调度者。这正是《刻迹》的位置:它不合并任何一个 App,它只负责让我在它们之间高效地切换。战场层各自锋利,调度层负责统筹,这才是一个人的操作系统该有的样子。
多客户端 · 多流程 · AI 时间管理"] K --> A["早点睡觉"] K --> B["烤鸭英语"] K --> C["钱钱记账"] K --> D["亚欧非大环线"] K --> E["练伴"] A -->|"独立迭代"| A1["v6 倒扣入眠"] B -->|"独立迭代"| B1["错题驱动"] C -->|"独立迭代"| C1["场景化账本"] D -->|"独立迭代"| D1["背景故事"] E -->|"独立迭代"| E1["训练指导"] A1 & B1 & C1 & D1 & E1 -.->|"进度与耗时回流"| K
十、结语:我在做的,是把自己写成代码
回到最初的问题:我为什么要做这么多 App?
因为我不相信意志力,我相信系统。
因为我不想让每一次挣扎白白消耗,我想把它们沉淀下来。
因为我知道,如果一个问题我反复遇到,那一定有成千上万的人也在反复遇到。
每一个 App,都是我在生活某个角落里打过的一场仗。我把打法写下来,先装在自己身上,验证它确实有用,然后交出去。
一方面蒸馏自己,一方面服务他人。
这句话不是口号,它是我做每一个 App 时的顺序:先解决我自己的问题,再看它能不能解决别人的问题。因为一个连自己都没治好的药方,没有资格开给别人。
这份技能树还会继续长。睡眠代价、倒扣手机入眠只是下一批。而《刻迹》的出现,意味着这棵树已经长到了需要一个调度者的高度——当 Skill 多到我自己都管不过来的时候,就再造一个 Skill 来管它们。只要我还在生活,还在挣扎,还在某个凌晨盯着天花板、某个组间休息坐在凳子上、某个做攻略做到吐的深夜、某个在多个屏幕之间来回搬运信息的下午——就还会有新的 Skill 长出来。
因为归根结底,我做的不是 App。
我是在把自己,一个功能一个功能地,写成代码。