我买过一盒语录卡片。实体的。厚纸,有手感。遇事不决翻一张,无聊翻一张,没理由也翻一张。
30 秒。看完。放回去。
那盒卡片搬家的时候丢了。一直没买新的。
今年一月,我做了一个替代品。iOS App,叫一页。SwiftUI,零依赖,¥15 买断。功能三个:随机出一张卡、翻转看背面、生成图片分享。没了。
有意思的不是它做了什么。是它拒绝做什么。
不做清单
写代码之前,先写了 17 条红线。不是"以后再说"。是"做了就死"。
不做搜索。不做标签。不做目录。不做阅读进度。不做"第 7 条 / 共 342 条"。
不做 AI 解读。不做评论。不做社交。不做 UGC。
不做订阅。不做广告。不做内购解锁更多卡包。
不做推送通知。不做每日提醒。不做登录。不做账号。不做云同步。
不做原文解读。不做编辑评论。UI 里不出现"学习"二字。
每条红线只干一件事:保护 30 秒的仪式感。别人可能建议的功能——搜索、分类、AI 摘要、打卡天数——每个听起来都合理。每个都会让产品"客观上更好"。每个都会毁掉它值 ¥15 的理由。
反过来想
大多数产品思维的起点是:我们该做什么?
一页的起点是:什么会杀死我们?
答案不是技术债,不是扩展性。答案是:变成一个阅读 App。用户打开一页的那一刻如果想"我应该多看几条",就完了。这个产品的设计目标是被关掉,不是被消费。30 秒,然后走。
这听起来像用哲学包装懒惰。不是。不做一个功能比做一个功能需要更大的纪律。每个功能都有它的支持者。搜索?重度用户想要。分类?有条理的人期待。AI 摘要?都 2026 年了,谁没有 AI。
对所有人说不,前提是你确切地知道这个产品是什么。不是大概知道。确切知道。
它到底是什么
不是阅读 App。不是教育工具。不是内容平台。
是精神层面的指尖陀螺。
你打开它。看到一张卡。几句老话——一句,有时候两句。你翻过来。背面是一段更长的。看不看随你。然后关掉。
最近的类比不是 Kindle。是一块把玩石。你不会用把玩石学地质学。
用户来这儿不是为了学到什么。是为了定一下神。一个不肯安静的世界里,30 秒的安静。
设计即删除
审美方向一句话定的:原研哉。
白。静。克。序。四个字。剩下的全是推导。
卡片是 1:1 正方形。不是 16:9,不是 4:3。正方形——因为它是最安静的比例,而且发朋友圈最稳。
字体用宋体——系统宋体,STSongti-SC。像你爸书柜里那种书的字。不现代,不潮,不过时。
背景材质:宣纸纤维、旧书页、极淡水墨晕染、纯色象牙白。四种。不做渐变,不做插画,不做"设计感"。
分享图零品牌元素。没有 Logo,没有 App 名,没有二维码,没有"来自一页"。只有文字和材质。目标:别人看到分享图问"这是什么?"而不是"又在推广"。
每个设计决策的检验标准:"如果这是原研哉工作室墙上贴的测试稿,会不会显得多余?"会,删。不会,留。
¥15 不是定价,是态度
全球 $1.99。中国区 ¥15。
不是免费增值。不是订阅。不是广告。一个价格,全部功能,永久使用。
为什么?因为精神物件不应该按月付费。你不会给把玩石办包月。买一次,是你的。
¥15 不是因为"值 15 块钱"。是因为 ¥15 说的是"我选择拥有这个"。低于 ¥12 有清仓感。高于 ¥18 犹豫成本上升。¥15 卡在"便宜工具"和"郑重选择"之间的甜蜜点。
定价在写第一行代码之前就决定了。因为定价不是商业决策。是产品决策。它告诉用户他手里拿的是什么东西。
App 是外壳
这是一页里我觉得最有意思的部分。
真正值钱的内容——深度解读、决策框架、从这些文本里蒸馏出的方法论——一个字都不进 App。App 里只有原文。没有评论,没有引导,没有分析。
为什么?三个原因。
第一,解读是审核风险。App 的生存靠的是"中性的语录卡片工具"定位,不是意识形态产品。解读的那一刻就有了立场。有立场就可能被拒。
第二,¥15 的容器保护不了重内容。好东西放在 ¥15 的 App 里,五分钟被截图传完。真正有价值的留在我能控制分发的地方——私域、课程、付费内容。
第三,这是架构正确。App 是 L1——公共层,干净、可售、低风险。深度内容是 L2——私域层,高价值、控分发。这不是内容策略,是组织架构应用在知识产权上。
L1 — 公共层:一页 App(原文,无解读)
L2 — 私域层:深度分析(方法论、框架)
L3 — 未来层:决策训练(情境 × 历史样本)App 是表面。不是载体。
零依赖
一页零第三方依赖。SwiftUI、StoreKit 2、UserDefaults、打包的 JSON。全部技术栈。
没有数据分析 SDK。没有崩溃上报。没有 A/B 测试框架。没有远程配置。没有 Firebase。什么都没有。
这不是固执。是一致性。产品承诺安静,但暗地里向六个分析服务传数据——那叫说谎。架构应该和承诺一致。
还有一个好处:这个 App 10 年后还能编译运行。没有依赖会被废弃。没有 SDK 会强制升级。没有第三方服务器会挂掉。App 是一个自包含的制品,和它替代的那盒实体卡片一样。
怎么造的
一个人。SwiftUI。两周。
整个产品用的和我做所有项目一样的方法:宪法先行,spec 其次,代码最后。
CLAUDE.md 定义了审美标准、红线、文件组织、命名规范。Spec 定义每个功能为独立的、可验收的单元。Agent 执行。
讽刺的是:造一页最复杂的部分不是代码。是文档。17 条红线、10 个架构决策、4 份设计约束文档、1 份产品灵魂文档——全部在第一个 SwiftUI View 存在之前写完。
比例大概是 3:1。三天想,一周写。对一个这么简单的产品来说,这个比例听起来荒谬。但"简单"是产出。输入是我为任何产品写过的最精确的约束集。
越简单的产品需要越严格的思考。因为没地方藏。
一句话
「一页不是你野心的载体,是你野心的外壳。」
它让我:
- 在 App Store 留一个干净的 ¥15 产品
- 把真正值钱的东西留在我控制的地方
- 有一个完成了的制品,证明一个观点
观点是:用"拒绝做什么"来定义的产品,可能比用"加什么功能"来定义的产品更有力。
17 条红线。零依赖。一个手势。30 秒。
写完了,上了。

