独立开发者的月度开支盘点
An indie developer's monthly expenses如果现在让我马上回答,上个月为了做产品一共花了多少钱,我可能需要翻银行卡、App Store、邮件账单和几个服务后台,才能慢慢拼出来。
费用散落在不同地方:
- 按月或按年订阅的工具;
- API 和云服务的按量账单;
- 临时升级的账号;
- 域名、模板和一次性购买;
- 已经忘记,但仍在自动续费的服务。
每一笔付款时,我通常都知道为什么。
但过了一个月,再回头看,可能已经说不清它具体支持了什么,或者下个月是否还需要继续。
所以,除了在花钱前做判断,我觉得独立开发者还需要一个固定动作:
每个月盘一次工作开支。
它不是简单记账,也不是集中取消订阅,而是检查:这个月的投入去了哪里,换回了什么,下个月准备怎样调整。
第一步:把真实开支找全
先把所有和独立开发有关的费用放在一起:
- AI 和开发工具;
- API 与第三方服务;
- 托管、数据库和存储;
- 域名、邮件、分析和监控;
- 一次性购买;
- 实验和临时升级。
年付工具可以折算成月度成本。
否则,它只会在付款当月显得很贵,剩下的月份又像完全免费。
还要留意:
- 免费试用结束后的自动扣款;
- App Store 或 Google Play 中的零散订阅;
- 不同币种支付;
- 已经很少使用但仍在续费的工具;
- 通用账号中实际用于某个项目的费用。
这一步只回答一件事:
维持现在这套工作方式,一个月实际需要多少钱?
第二步:把开支归到具体项目
总金额只能说明花了多少,不能说明花得是否合理。
每一笔费用最好能对应到:
- 哪个项目;
- 哪个阶段;
- 哪项具体工作;
- 得到了什么结果。
可以用一张很简单的表:
| 开支 | 项目或用途 | 本月结果 | 下月决定 |
|---|---|---|---|
| Coding agent | 主项目开发 | 完成阶段功能,但多次触顶 | 评估升级 |
| 模型 API | 输出质量 eval | 找到主要失败模式 | 继续保留预算 |
| UI 工具 | 页面方案尝试 | 没有进入正式产品 | 取消 |
| 数据库 | 产品基础设施 | 当前用量很低 | 检查能否降级 |
| 备用 AI 工具 | 主工具受限时使用 | 本月只用一次 | 保留免费版 |
这里经常会发现两种情况。
一种是工具很好用,却没有服务于目前最重要的工作。
另一种是工具使用频率很高,但项目没有明显推进。
每天都在调用 coding agent,不等于开发投入一定有效。它可能完成了重要功能,也可能只是在不断返工和重写。
“用了很多”只能说明消耗,不代表回报。
第三步:看这笔钱换回了什么
早期产品还没有收入时,不能只用“赚回多少钱”判断开支。
一笔投入可能带来三类回报。
产出
例如:
- 完成一个功能或阶段;
- 做出可以测试的 demo;
- 上线一个版本;
- 完成一轮用户验证;
- 得到一份可以交付的材料;
- 完成原本一个人无法完成的工作。
“提高效率”太模糊。最好明确到实际完成了什么。
学习
有些实验没有保留,却帮助排除了错误方向:
- 某个模型不适合;
- 某项需求不值得继续;
- 更贵的方案并没有更好;
- 一个 workflow 过于复杂;
- 问题不能靠继续修改 Prompt 解决。
只要结论改变了下一步,这笔实验费用就有价值。
如果只是试过,觉得“还可以”,既没有采用,也没有停止,就很难说得到了什么。
风险降低
有些费用不会直接生产功能,但可以避免更大的问题:
- 备份;
- 监控;
- 错误告警;
- 安全检查;
- 测试环境;
- API 使用上限;
- 数据恢复。
这类工具即使本月没有触发,也不一定应该取消。要看它所防范的风险是否真实,以及是否有可靠替代。
如果一项费用没有带来产出、学习或风险降低,就需要认真考虑为什么继续。
第四步:不要只盘工具,也要盘项目
月度盘点很容易变成订阅清理。
但有时真正需要停下来的,不是某个工具,而是一个项目的投入方式。
可能出现这样的情况:
- 每个工具都在使用;
- API 调用都有用途;
- 每天也在持续工作;
- 但项目没有接近上线,没有得到用户反馈,也没有解决关键不确定性。
这时需要问的不是“哪个订阅要取消”,而是:
这个项目下个月还值得继续这样投入吗?
可以按项目检查:
- 本月一共花了多少;
- 主要花在开发、实验还是运行上;
- 完成了什么;
- 得到了什么新证据;
- 最贵的部分是什么;
- 下个月继续投入,希望得到什么结果;
- 如果没有得到,准备缩小、暂停还是停止。
项目一直产生工作,不代表一直产生价值。
功能、文档和调用量都在增加,但如果没有更接近用户、上线或明确结论,就应该调整下一阶段。
第五步:检查是否在为重复工作付钱
除了工具功能重叠,还要检查工作本身有没有被反复执行。
例如:
- 同一个问题默认交给多个模型;
- 已确认的信息被重复提取;
- 每次都重新传递大量背景;
- 两个 coding agent 重复分析同一部分代码;
- 局部修改重新生成整个文档或产品;
- 因为不放心,默认再跑一次。
交叉验证当然有价值,但需要有明确目的。
第二次调用是在验证事实、找反例,还是只是重新听一个答案?
如果说不清,重复调用很可能只是把焦虑变成成本。
第六步:给每项开支一个决定
月底盘点的结果不应该只是一张记录表。
每项开支最好进入一个明确状态:
保留
持续支持重要工作,当前套餐也合适。
升级
已经出现明确、重复而且重要的瓶颈,升级能直接解决。
降级
工具有价值,但当前用量不需要现有套餐。
取消
没有进入真实工作流、和其他工具高度重复,或暂时不服务当前重点。
限额
服务仍然需要,但按量成本要设置预算、告警或使用规则。
再观察一个月
暂时没有足够信息,但需要写明下个月看什么,不能一直“以后再说”。
项目本身也可以得到一个决定:
- 继续;
- 缩小 Scope;
- 暂停开发;
- 先做验证;
- 完成本阶段后停止。
第七步:定下个月的预算
盘点不能只解释过去。
最后还要确定下个月准备怎样投入:
- 哪些固定订阅继续;
- API 和云服务的预算上限;
- 预留多少实验费用;
- 哪个项目优先获得预算;
- 哪些服务要取消或降级;
- 什么结果出现后,可以追加投入;
- 什么结果没有出现,就暂停下一轮开支。
这样,下个月的预算不是自动复制本月账单,而是根据本月结果重新安排。
一份简单模板就够了
每月底可以记录以下内容。
本月总览
- 固定订阅:
- 按量调用:
- 基础设施:
- 一次性投入:
- 实验费用:
- 总计:
- 相比上月变化:
分项目
- 项目:
- 本月开支:
- 完成的工作:
- 得到的验证或结论:
- 最大成本:
- 下月决定:
分工具和服务
- 名称:
- 金额:
- 支持的工作:
- 带来的产出、学习或风险降低:
- 是否与其他工具或工作重复:
- 下月决定:
异常检查
- 哪项费用明显增长?
- 是否出现失败重试或无效调用?
- 是否有忘记取消的服务?
- 是否在提前购买未来才需要的能力?
- 是否用更高套餐掩盖工作流问题?
下月计划
- 固定预算:
- API 上限:
- 实验预算:
- 优先项目:
- 取消或降级项:
- 允许追加投入的条件:
月度盘点不是为了证明每一笔钱都花得正确。
独立开发本来就需要试错,也不可能事先知道每个工具和方向是否有效。
它更实际的作用是:让钱花出去以后,不要就此失去踪迹。
月底至少应该知道:
- 钱去了哪里;
- 换回了什么;
- 哪些投入应该继续;
- 哪些需要及时停止;
- 下个月准备把预算放在哪里。
最后需要判断的,也不只是某个工具值不值得续费。
而是:
我现在这套做产品的方式,还值得继续这样投入吗?