我为什么选择独立开发这条路
2009 年我写了第一行 PHP 代码,那时"独立开发者"这个词还没火起来。到现在 17 年了,中间经历过打工、创业、接项目、做产品,最后走上了独立开发这条路。
2018 年我进入了 Web3 领域。那时候区块链开发还很早期,Solidity 编译器版本号还在 0.4.x,但我在那个时间点做了个现在看来很关键的决定——不找工作,自己做。不是因为我有多自信,而是因为 Web3 的技术栈变化太快,大公司的招聘节奏根本跟不上。等他们开出 JD,你可能已经换了两个技术方向了。
后来我搭建了 XPayLabs——一个自托管的加密支付网关,现在支持 20 多条链、每天处理真实的交易量。去年又开始做 GetCiteFlow,一个 AI 搜索引擎可见性优化平台,帮助网站在 ChatGPT、Claude、Perplexity 这类 AI 引擎中获得引用。
说这些不是炫耀,是想说明一个模式:自研产品 + 客户交付,两条腿走路,互为支撑。
独立开发最吸引我的不是"不用上班",而是直接对结果负责。在大公司,你写的代码可能要在三层审批和五轮会议之后才能上线,一年后你都不确定那段代码还活着没有。独立开发完全不一样——你写的每一行代码、做的每一个产品决策,结果都会直接反馈到你身上。这种反馈循环极其高效,也非常残酷。
独立开发的三个关键阶段
阶段一:纯接项目——先活下来
我刚开始独立的时候,没有任何缓冲。接项目是最快产生现金流的方式。
那段时间说实话挺苦的。客户从各种渠道来——前同事介绍、GitHub 上的 issue 讨论、技术社区的私信。2018 到 2020 年间,我接过智能合约审计、DApp 前端开发、DeFi 协议咨询等各种项目。有的项目很好,客户清楚自己要什么;也有的项目做到一半需求全变了,但你得硬着头皮接着做。
这个阶段的核心目标不是赚多少钱,是建立口碑和现金流底线。你要让足够多的人知道你能交付,你才有选择权进入下一个阶段。
这个阶段最大的教训:不要什么项目都接。我接过一个项目,对方预算不高但说"后续还有很多项目",我信了。做完之后,后续根本没有。现在我有一条铁律——只看当前这个项目的价值和报价,不为"未来的可能性"打折。
阶段二:项目 + 产品并行——建立资产
接了两年项目后,我开始意识到一个致命问题:接项目是用时间换钱,你的时间总量是固定的。
2020 年左右我开始有意识地把一部分时间留出来做自己的产品。XPayLabs 最初的版本就是这么来的——我在接项目的间隙,用晚上和周末搭建了一个自己需要用的支付工具。当时动机很简单,就是觉得市面上的加密支付方案要么太贵(每笔抽 1%),要么托管风险太大。
这个阶段最难的是精力分配。项目是眼前的面包,产品是未来的可能性。每周我大概这样分配:周一到周四做客户项目(保证交付),周五和周末做自己的产品。听起来简单,执行起来极其考验自律。
这个阶段的关键认知:你的产品不需要一开始就很"大"。XPayLabs 的第一个版本只支持 TRON 一条链,核心功能就是生成收款地址 + 监听链上转账。它很简陋,但它能用,而且它是我的资产——不管我今天接不接项目,它都在那里运行,带来收入。
阶段三:产品驱动——让被动收入成为安全网
当 XPayLabs 的用户量和交易量开始稳定增长后,我的状态发生了变化。
最明显的变化是选择权的增加。以前一个客户项目报价低了我可能会纠结——不接呢怕断粮,接呢觉得性价比太低。有了产品收入托底之后,我可以更从容地对低质量项目说"不"。这不是傲慢,是生存策略的优化。
GetCiteFlow 的诞生也跟这个阶段有关。XPayLabs 稳定运行后,我终于有了一整段完整的时间去探索一个新方向——AI 搜索引擎优化。如果没有产品收入做缓冲,我可能没办法花几个月时间从零开始研究一个全新领域。
接项目的实战经验
怎么找到好的客户
我试过各种渠道——自由职业平台、LinkedIn、技术社区。说句实话,最好的客户几乎都来自口碑推荐和社区关系。
Upwork 和 Fiverr 这类平台我也用过,但体验不太好。平台上的客户往往价格敏感,你需要跟全球的开发者竞价。相比之下,GitHub 上因为你维护的开源项目找来的客户、技术社区里因为你的文章和回答找来的客户、前同事和前客户推荐来的客户——这些渠道来的项目,沟通成本低很多,预算也合理得多。
我的建议:把时间和精力花在能积累的事情上。你在 GitHub 上维护一个开源项目,写了一篇高质量的技术文章,或者在社区里帮人解决了问题——这些都会持续带来机会,不需要你主动去"找"。
报价技巧
经过十几年的摸索,我现在只用一种报价方式:按项目整体报价,不按小时计费。
按小时计费的问题在于,它把效率和报酬对立起来了。你做快了反而少赚钱,这个激励机制是扭曲的。按项目报价,你只需要回答一个问题:这个项目的价值是多少?
具体做法是:
- 明确项目范围——写一份一页纸的 scope document,说清楚包含什么、不包含什么
- 按你的日费率 x 预估天数算基础价,这个日费率应该让你在正常工作节奏下活得不错
- 加 20%-30% 的缓冲——每个项目都有不可预见的复杂度,别觉得自己能完全预估
- 超出范围的需求单独报价——scope document 就是你的护城河,任何不在范围内的需求都是新需求
如何管理客户期望
这是个比技术能力更重要的技能。客户的不满,绝大多数不是因为你做得不好,而是因为你以为他懂,他以为你懂,实际上谁也不懂谁。
我现在的做法:
- 先出文档再写代码。项目开始前,我会花 1-2 天写一份详细的技术方案,包括架构图、API 设计、数据结构。客户不一定看得懂细节,但这个动作本身就传递了专业度——而且它帮我提前发现了大量模糊需求。
- Demo 驱动开发。每 1-2 周给客户看一个可交互的 Demo,而不是发一份进度报告。"看到了"比"听说了"有说服力一万倍。
- 把决策权还给客户。你是开发者,不是产品经理。遇到需要权衡的决策(比如某功能用 A 方案做快但扩展性差,B 方案慢但更灵活),把选项和利弊讲清楚,让客户选。出了问题是他的决策,不是你替他做的。
什么项目值得接,什么要拒绝
经过这些年,我总结了三个拒绝信号:
- "很简单,你花不了多少时间"——如果客户替你来评估工作量,说明他要么不懂技术(后面沟通会很难),要么在压价(更糟糕)
- 不愿意签合同或付定金——这条看起来像是废话,但很多独立开发者因为"面子上过不去"就跳过了。不要跳过。不定金的项目,对方随时可以取消,你的时间投入没有任何保障
- 自己都不知道要做什么——"我想做一个类似 XX 的东西,但更好"。这种需求说明对方没有经过认真思考,项目范围会无限膨胀,你是填不完的坑
时间管理和技术栈选择
一个人怎么同时做产品 + 接项目
说实话,很难。我试过各种时间管理方法,最后发现核心只有一句话:同一时间只做深度工作。
什么意思?就是不要在同一个上午又写产品代码又回客户消息又改 BUG。上午 9 点到 12 点,我只做一件事——要么写产品代码,要么做客户项目。通讯工具(微信、Slack、邮件)全部关掉。中午集中回复。下午再换一个深度工作块。
细分的话,我的节奏是这样的:
- 早晨(7:00-9:00):读文档、看行业动态、处理昨天没回复的低优先级消息
- 上午(9:00-12:00):核心编码时间,不被打扰
- 下午(13:30-17:30):客户沟通、方案写作、Code Review(自己的代码也要 review)
- 晚上(20:00-22:00):自己的产品开发(如果当天上午在做客户项目的话)
技术栈收敛的重要性
刚开始独立开发的时候,我对新技术特别热衷。今天出个新框架,明天就想试试。现在我态度完全变了——稳定大于酷炫,熟悉大于时髦。
原因很简单:一个人时间有限。你用 Rust 写一个服务可能性能更好,但从零学到能交付,要多花一个月。这个月不做项目就没收入,这笔账算不过来。
我现在的技术栈选择逻辑:
- 前端:React + TypeScript。生态最大,招人也好招。偶尔接点 Vue 项目也能做,但自己的产品统一 React
- 后端:Node.js(Express / Fastify)。全栈能力复用,前后端一种语言搞定
- Web3:Solidity + Hardhat + ethers.js。已经在生产环境验证过的组合
- AI 集成:直接调 API(OpenAI、Claude、和各家的大模型接口),不搞自训练模型。我是应用层开发者,不是 AI 研究员
- 基础设施:PostgreSQL + Redis + Docker。老几样,够用、稳定、出了问题能定位
你可能注意到这套技术栈很"老派"。确实,它没有 Rust 的性能,没有 Go 的协程,没有 Svelte 的简洁。但它有一个巨大的优势:出问题的时候,我知道怎么修。在生产环境里,这个优势比任何 benchmark 都重要。
独立开发的真实一面
收入不稳定是常态
如果说独立开发只有一个最大的挑战,那就是收入的不确定性。
做得好月入十万不难,但下个月可能只剩三万。这种波动对人的心理影响远超财务影响。你需要一种能力——在收入高的时候不膨胀,在收入低的时候不恐慌。
我的策略是两条:
- 不把项目收入当"工资"。每个项目结款后,先扣掉税费和生活必需支出,剩下的全部作为产品开发和投资的储备金
- 产品的被动收入是安全网。XPayLabs 每个月的稳定收入,让我不用每个月都焦虑"下个项目在哪"。如果你也想走独立开发这条路,我强烈建议你尽早开始做自己的产品
孤独感和怎么解决
一个人写代码、一个人做决策、一个人面对 Bug——这种孤独感是独立开发最大的隐性成本。
在大公司,你遇到技术难题可以转头问同事。独立开发不行,你只能自己扛。有几次生产环境半夜出问题,我一个人对着日志排查到凌晨三点,那种感觉不太好描述。
我的解决方案:
- 保持开源贡献。你不需要一个人造轮子。参与开源项目让你和全球的开发者保持连接,遇到问题也能在社区找人讨论
- 加入独立开发者社区。Twitter/X 上的 indie hacker 圈子、国内的独立开发者群,多交流。你会发现你遇到的问题别人早就踩过了
- 写博客。这也是我写这篇文章的原因之一——把经验分享出来,其实是一个自我梳理和对外交流的过程
健康管理不是选修课
我 2019 年因为长期久坐,腰椎出了问题。最严重的时候坐 20 分钟就得站起来,不然腰疼得受不了。花了大半年才恢复,那段时间接项目、写代码都很艰难。
现在我把运动放在和写代码同等的优先级上:每天至少 30 分钟运动(跑步、游泳或力量训练),每坐 50 分钟必须站起来走动 10 分钟。不是建议,是执行。
不管你技术多牛,身体是你的核心基础设施。这个基础设施崩了,一切都停摆。
结语
我写这篇文章不是想说独立开发有多好或者多不好。实事求是地说,它不适合每个人。
如果你喜欢确定性——固定的工资、明确的晋升路径、稳定的社交圈——那在大厂做技术也是非常好的选择。我很多在大厂的朋友过得很好,技术深度和资源都不是独立开发者能比的。
但如果你是这种人:喜欢自己掌控方向、愿意承担不确定性、对结果有直接的 owner 意识、能享受从 0 到 1 的建造过程——那独立开发可能很适合你。
这条路不好走,但它给你的自由度和成长空间也是独一无二的。你不用跟任何人解释为什么要做一个东西,不用为别人的 KPI 加班,你写的每一行代码都在构建你自己的资产。
如果你正在纠结要不要开始独立开发,我的建议是:别裸辞。 先利用周末和晚上做一个小的 SaaS 产品——哪怕一个月只能带来 50 美元的收入。那个从 0 到 1 的过程会告诉你,你适不适合这条路。做成了,你就有底气辞职;做不成,你也没有失去什么。
我的 Discord 服务器一直对独立开发者开放,遇到具体问题可以来找我聊。这条路不需要一个人走。
