独立开发者血泪复盘:为何我放弃移动端SaaS

独立开发者复盘PhotoLang失败:移动端优先被抽成、政策风险与供应商锁定三重挤压。
一位独立开发者用12个月开发语言学习应用PhotoLang后宣告失败,并将原因归结为“移动端优先”这一路径选择。文章从成本、控制权、技术架构三个层面展开复盘:Google Play 与 App Store 的30%抽成、发布费与年费,以及 C 端用户更难成单,共同压缩了利润空间;平台算法与政策变动则让应用随时可能归零,如同在租来的土地上盖房子。技术上,Firebase 登录、Durable Object 强一致积分账本、Gemini 与 Google TTS 的组合清晰但导致深度供应商锁定,作者建议改用 Hono 和 Serverless Redis 换取可移植性。最后他指出 AI SaaS 护城河难建、token 成本高,但 AI 辅助编程对有工程基础者确有价值,并给出不优先做移动端、重视可移植性、按场景使用 AI 三条教训。
一位独立开发者用12个月时间开发语言学习应用PhotoLang,最终失败。他的结论很直接:如果重新来过,绝不会再选择移动端优先。这不是情绪化的抱怨,而是一份基于真实架构决策和成本核算的技术复盘。
两个功能逼我走进移动端
选择移动端并非出于盲目跟风,而是被两个核心功能倒逼:相机调用和Anki直连。Anki是语言学习者最常用的闪卡工具,PhotoLang希望用户把卡片直接同步到Anki中,减少手动搬运的摩擦。标准Web应用无法实现这种本地集成能力。
需求本身合理,但实现路径让这位开发者付出了远超预期的代价。他从五个维度拆解了移动端对独立开发者的系统性不利因素。
为什么标准 Web 应用无法直连 Anki?
Anki 的核心能力建立在本地文件系统和本地进程之上:桌面端通过 Python 插件(add-on)读写 .apkg/.colpkg 集合,并可通过 AnkiConnect 插件开放一个仅监听 127.0.0.1 的 HTTP 接口。浏览器受同源策略和沙箱限制,既不能随意访问本地端口,也无法读写本地文件系统,因此纯 Web 页面无法自动完成卡片导入导出。
要绕过这一限制,通常有三条路:让用户手动下载再导入、用桌面客户端(如 Electron/Tauri)封装本地能力、或改用 AnkiWeb 的官方同步协议。前者体验最差,后者需要处理账号凭据与同步冲突,中间路线则意味着你仍然要发布一个可安装的桌面程序。理解这一点,才能明白作者所说的“被功能倒逼进移动端”,本质上是本地集成能力的缺失,而不是移动端本身有多大的产品优势。
平台抽成、固定成本与用户结构的三重挤压
最直接的冲击来自平台抽成。Google Play和App Store对每笔交易抽取30%分成,Google Play虽对前100万美元收入降至15%,但对有持续服务器成本的SaaS来说,这仍然严重挤压利润空间。作为对比,Stripe或Shopify的费率仅约3%,中间27%的差距意味着定价竞争力被大幅削弱。
固定成本同样不可忽视。Google Play一次性收取25美元发布费,组织账号再加25美元;Apple开发者账号每年99美元。Stripe则没有前置费用。
用户结构是第三重挤压。移动端用户以C端消费者为主,决策依赖情绪和冲动,成单难度更高。B端客户虽然更难触达,但关注ROI,只要能证明价值几乎必然成交。开发者坦言,事后才发现自己更偏好B端市场。
此外,Google Play个人卖家账号会公开开发者地址,想隐藏就得注册公司并使用商业地址。
真正的风险:你在租来的土地上盖房子
比成本更根本的问题是控制权。《百万富翁快车道》中的"控制法则"在这里体现得淋漓尽致:选择移动端,就是选择在Google和Apple的规则下生存。

平台调整搜索算法,你的流量可能一夜归零;修改政策条款,你的应用可能被直接下架。开发者把这称为"在租来的土地上盖房子"——地基不属于你,随时可能被收回。
PhotoLang的技术架构:精妙但被锁死
应用的技术实现本身相当清晰。用户通过Firebase实现Google登录,Worker验证身份后请求Durable Object。Durable Object是Cloudflare提供的特殊Worker类型,具备单线程保证,适合处理积分增减这类需要强一致性的计算。随后Worker调用Gemini和Google TTS生成内容,输出存入R2桶并以JSON返回。
支付流程通过Google Play一次性购买完成:客户端获取purchase token,Worker调用Google购买API验证,确认后更新Durable Object余额。退款通过Webhook通知,路由到Durable Object记录。积分系统采用append-only账本而非简单整数存储。

这个设计的用意在于:如果只用整数存积分,出问题时就是黑盒,无法追溯是购买失败还是退款遗漏。账本记录了每一笔增减的来龙去脉,在退款或购买异常时能断言余额的正确性。
但Durable Object的代价是深度供应商锁定。开发者建议:如果用它,务必使用SQL存储而非KV兼容方法,因为KV模式在仪表盘上无法执行查询。
append-only 账本与传统余额字段的区别
所谓 append-only(只追加)账本,是指不直接维护一个可被覆盖的 balance 字段,而是把每一次积分变动都作为一条不可修改的记录写入,余额由所有记录的累加推导得出。它与银行业的复式记账思路同源:任何一次调整都必须以新增一笔反向或正向记录来完成,历史记录永不被原地修改。
这样做的好处在于可审计性。当用户投诉“我买的积分没到账”时,你不需要猜测是支付回调丢失、重复写入还是并发覆盖,只要按时间顺序重放账本,就能定位断点。代价是查询成本上升,需要借助索引或定期生成快照(checkpoint)来避免每次全量求和。这也是为什么作者强调账本式设计必须配合强一致性存储——否则并发写入会破坏记录顺序,账本的可追溯性就失去意义。
Cloudflare的锁入困境与可移植性方案
Cloudflare Worker运行在专用V8 isolate上,代码无法直接迁移到AWS Lambda,后者需要完整Node.js运行时。如果深度依赖KV或Durable Object,数据访问层就得完全重写。

如果重来,他会用Hono这类通用Web框架让逻辑更可移植,甚至把Hono应用打包进Node镜像的容器中,实现真正的"拎包入住"。数据层方面,用Serverless Redis替代KV可以让数据完全云无关。
不过Cloudflare的优势同样明显:免费层每天10万请求,付费方案比AWS、Azure更具竞争力。开发者表示仍会使用Cloudflare,但下次会设计清晰的数据层退出策略。
什么是 V8 isolate,为什么它不是 Node.js
V8 isolate 是 V8 引擎中的一个独立执行上下文,拥有自己的堆内存和 JavaScript 全局对象,但共享同一个进程。Cloudflare Workers 正是基于它实现毫秒级冷启动和高密度多租户隔离:每个请求跑在一个轻量 isolate 中,请求结束后上下文即可被回收。
问题在于,isolate 里没有完整的 Node.js 运行时——没有 fs、net、child_process 等内置模块,也没有长期存活的进程模型可供依赖。很多 npm 包之所以在 Worker 上跑不起来,不是语法不兼容,而是它们依赖了这些 Node 专有 API。AWS Lambda 则提供完整的 Node.js 运行时和文件系统(虽然 /tmp 之外只读),因此从 Worker 迁移到 Lambda 往往需要替换 HTTP 框架、重写数据访问层,甚至重做构建流程。这正是“可移植性要从数据层开始设计”的现实含义。
AI创业的现实:成本高、护城河难建
对于AI SaaS,开发者持保留态度。以AI为中心的应用很难建立护城河,虽然理论上可行,但需要大量领域专有数据,普通人很难获取。Token成本远高于标准计算,进一步压缩利润空间。
但他对AI辅助编程持肯定态度。将编码交给大模型可以显著加快MVP构建和迭代速度。前提是开发者本身具备扎实的软件工程基础,否则难以判断AI输出的可维护性和安全性。如果目标是学习编程,不建议用AI;如果已有技能,可以用AI节省时间,把精力投入到商业运营的其他关键环节。
为什么 AI 应用的护城河格外难建
传统 SaaS 的护城河常来自三处:数据积累带来的网络效应、迁移成本、以及领域工作流中沉淀的隐性知识。AI 应用恰恰在前两项上天然薄弱——底层模型可被替换,API 供应商随时可能自己推出同类功能,用户切换成本极低。
唯一相对可靠的壁垒是第三项:别人拿不到的领域专有数据。例如医学影像标注、特定行业的合规文本、或长期积累的用户行为反馈闭环。但这些数据要么受监管限制、要么需要多年沉淀,个人开发者几乎无法在短期内获得。再加上 token 成本随使用量线性增长,毛利结构比传统软件更差,使得“用 AI 做点东西”这件事在商业上远比听起来困难。
三条核心教训
这位开发者总结的三条经验值得每位独立开发者参考:移动端不应作为首选平台;架构设计要优先考虑可移植性;AI的使用高度依赖场景,只在真正契合时才引入。
相关推荐

房产经纪人用AI提效的5个实操方法(2026版)
房产经纪人如何用AI提效?结合YouTube实操演示,拆解ChatGPT写房源描述、Canva做营销物料、表单管理开放日线索、Zapier自动跟进、卖家面谈准备5个方法,并提示公平住房法规、照片真实性与定价核实等风险边界。

Grok Bot vs ChatGPT Agent:两大AI代理谁更强?
Grok Bot 与 ChatGPT Agent 有何区别?本文对比两者的工作方式:Grok Bot 拥有云端计算机、可常驻工具内自动执行多步任务;ChatGPT Agent 在浏览器中操作网页,通用任务更成熟。附选型建议。

Walmart Agent Gateway:AI帮你自动购物,亚马逊为何反其道而行?
沃尔玛推出Agent Gateway,允许ChatGPT、Gemini等AI助手直接接入商品库替用户搜索比价加购,并设消费限额与逐笔审批三道安全阀。亚马逊则封堵外部AI代理,两大零售巨头走向相反路线。功能目前仅限美国,印度市场或随后跟进。