My Third Year as a Solo Developer

Michael Lynch

我做独立开发者的第三年

原文由 Michael Lynch 发布,订阅该博客

今天是我从 Google 离职出来做自己的软件生意整整三周年的日子。我在第一年第二年结束时都发过总结,是时候再来分享一下进展了。

渐入佳境的一年

单干的前两年,我总共才赚了不到 1 万美元。第三年的目标是做到 2 万美元的营收。

到了年中,看起来又要落空了。所有业务加起来一个月只有大约 300 美元,新尝试的点子一个都没成。

奇迹般地,5 月上线的一款新产品扭转了一切。到年底,我的营收达到了 6.3 万美元,远超目标。

好吧,净利润还是负的,但这回我有个很好的理由!

现在我在卖实体产品,收入要比支出滞后两三个月。每一单的利润率在 30% 到 50% 之间,所以账面迟早会转正。

等等,你一直亏钱,怎么撑得下去?

这个问题我在去年的年度回顾里详细讲过,简而言之就是:生活成本低、在 Google 工作时攒下了不少积蓄,再加上被动的投资收入。

逐个项目来看

TinyPilot

TinyPilot 是我做的一款价格亲民的远程服务器管理设备。

过去几年,我所有的软件开发都在一台家用服务器上完成。平时用着挺好,就是一改错网络配置或者想重装系统就麻烦了。服务器没接显示器和键盘,每次都得把它搬到桌边,把工作站的线全拔下来换过去,弄完再换回去。

我读到过 Raspberry Pi 可以模拟成 USB 键盘,也知道它能采集视频。如果用一个网页应用把这两个功能结合起来,是不是就能把 Pi 变成一个迷你的远程管理设备?

捣鼓了几个月后,我做出了一个可用的原型。

TinyPilot 连接两台电脑的照片

TinyPilot 的原型,我做的开源 KVM over IP 设备

我曾怀疑这东西有没有市场。为什么会有人从我这里买?不就是一堆随处都能买到的硬件拼在一起吗?我想着,一周能卖出一两单就不错了,每套赚 80 美元,打包发货也算值了。

然后,我为此发了一篇博客

很快我就意识到,这次的生意和以往任何一次都不同。博客发布不到四小时,库存的 9 套就被抢光了,甚至在缺货预售的状态下还有人不断下单。

一周内,这篇博客就带来了 8800 美元的销售额。它登上了 Hacker News 首页,还成了史上最热门的“Show HN”帖子之一

TinyPilot 在 Hacker News 和 reddit 上的反响

首轮高峰过后销量有所回落,但此后 TinyPilot 一直在稳步增长。我完全没有卖实体产品的经验,只能现学怎么管理库存、把订单履约流程系统化,以及和供应商合作制作电路板3D 打印外壳

这一年 TinyPilot 的营收接近 5.4 万美元。净收入还是负的,但那是因为成本都前置了——2020 年的开支里包含了用到 2021 年 2 月的库存。

收支2020
销售额$53,362
捐赠$380
物料-$46,143
电气工程咨询-$7,130
订单履约-$2,570
软件开发*-$1,321
开源贡献-$1,270
广告-$675
平面设计-$250
主机 / 域名-$64
净利润-$5,681

* 绝大部分代码都是我自己写的,但我请了一位开发者帮忙做销售页面

Hit the Front Page of Hacker News

Hit the Front Page of Hacker News 是我关于博客写作的课程。

5 月,我在同伴互助小组里做了一次非正式分享,题目叫“如何成为一个还算成功的软件博主”。我试着拆解了让我的文章在 Hacker News 和 reddit 上获得关注的技巧。分享过程很有趣,但当时我也不知道这些素材还能怎么用。

这一年里,我越来越多地看到开发者把自己的经验做成付费课程。TinyPilot 也让我看到了博客与业务结合的威力。如果大家喜欢我的博客,或许也会愿意为一门关于写作的课程付费。

录制课程比我想象的要难得多。我本以为 30 到 40 小时就能搞定,结果花了将近 200 小时。

课程在 2021 年 1 月才正式发布,所以下面的数据不包括发布后的订单。目前销量一般,但现在判断长期收益还为时过早。无论如何,我对课程内容很满意,也有好几位学员告诉我,这些课对他们的写作产生了实实在在的影响。

指标2020
预售量29
预售收入$1,431
封面设计-$293
录制设备-$584
净利润$554

mtlynch.io(这个博客)

今年我在博客上最大的改变,是开始更策略性地选题。2020 年之前,我的态度是“想到什么就写什么,看看会怎样”。有时文章能找到读者,但更多时候石沉大海。

今年,每写一篇新文章之前,我都会先问自己两个问题:

  1. 有多少读者会对这个话题感兴趣?
  2. 我有没有触达到他们的方法?

就这么一点小小的规划,却让阅读量有了巨大提升。2019 年,我的文章首周平均有 5000 名读者,2020 年这个数字涨到了 25,000。我发布的 9 篇新博客中,除了 1 篇,其余都登上了 Hacker News 首页,其中 4 篇还冲到了第一名。

指标20192020变化
浏览量273,817719,899+446,082 (+163%)
联盟营销收入*$374$1,599+$1,225 (+328%)
开发-$460$0-$460 (-100%)
插画-$769-$964+$195 (+25%)
主机 / 域名-$150-$534+$384 (+256%)
编辑 + Grammarly-$200-$222+$22 (+11%)
净利润-$3,835-$121+$3,714

* 我在 2020 年底取消了这个博客的所有联盟营销合作

失败的项目

去年我学到的重要一课是,追寻正确的想法意味着要舍弃错误的想法。如果一个项目在六到八周内没能产生有意义的收入,我要么转型去面向不同的客户,要么就彻底换个新项目。

Is It Keto

Is It Keto 网站截图

Is It Keto 告诉读者哪些食物符合生酮饮食。

我在 2018 年创办了 Is It Keto。这是一个简单的网站,告诉你某种食物是否适合生酮饮食。

2019 年我放弃了这个网站,但在 2020 年 4 月,几个新点子接连失败后,我又灰溜溜地回来了。Is It Keto 能赚钱,但非常微薄,每位访客的收益不到 0.01 美元,所以必须大幅提升访客量或单客收益才行。

为了规模化增长,我尝试自动化写作。在 Is It Keto 的整个生命周期里,每篇文章都是由我或我请的写手原创撰写的。回顾已有内容时,我发现了一些可以抽象成模板的固定模式,只要填入正确的食物名称、图片和营养信息,就能快速生成新页面。

Is It Keto 文章与生成它的源代码并排对比

通过模板程序化生成 Is It Keto 的文章

起初,我以为模板化能让我每周新增几百篇文章,但事实证明,想在不牺牲质量的前提下这么快地扩张并不容易。两个月里,我只新增了 118 篇。模板越多,速度确实越快,但新增内容带来的用户太少,并不划算。

另一个想法来自我的朋友 Justin Vincent,他听说我的网站每月有 7 万到 10 万的浏览量却只赚这么点,感到非常惊讶。他建议我做一个付费的姐妹产品,用 Is It Keto 来吸引精准的潜在客户。

我为生酮社群和应用测试了几个落地页,但只有 0.1% 的访客注册以了解更多信息。恰好这时 TinyPilot 开始起飞,于是我把 Is It Keto 暂时搁置了。

指标20192020变化
浏览量521,9131,314,583+792,670 (+152%)
广告收入$940$2,934+$1,994 (+212%)
联盟营销收入$1,315$2,147+$832 (+63%)
膳食计划销售*$24$18-$6 (-25%)
自由职业设计师和写手-$4,322-$105-$4,217 (-98%)
主机 / 域名-$115-$241+$126 (+110%)
净利润-$2,158$4,753+$6,911

* 我在 2020 年 1 月放弃了膳食计划

WanderJest

WanderJest 网站截图

WanderJest 帮助喜剧爱好者发现附近的现场喜剧演出。

WanderJest 是我在 2020 年初启动的一个短命项目,我把它形容为“喜剧版的 Bandsintown”。

我很喜欢喜剧,却错过了无数次在家附近看喜剧演出的机会。要么没在对的邮件列表里,要么没关注对的社交账号,要么没在对的时间去刷 Ticketmaster。WanderJest 本想通过尽可能多地聚合演出信息来解决这个问题。

我本打算通过与剧场的联盟合作来赚钱,但从来没人用过我的优惠码。新冠疫情一来,我就把网站关掉了

Portfolio Rebalancer

Is It Keto 网站截图

Portfolio Rebalancer 帮助被动投资者管理投资组合。

我的投资组合由不同类别的股票和债券组成,每类资产都有一个目标占比。随着价格波动,投资组合的比例会偏离,我就得来回调仓才能回到目标比例。每年我都要这么折腾几次,枯燥地在表格里填数字,直到一切都对上。

如果有个网页应用能自动完成这件事呢?我快速做了一个原型,发到了 reddit、我的博客上,还投了 Google 广告。第一个月工具吸引了 1000 名访客,可惜只有一个人注册了免费试用,而且从未升级为付费用户。本来我对这个点子就没什么信心,所以一个月后就放弃了

经验教训

产品与市场契合的魔力

所谓“产品与市场契合”,就是做出一款产品,并找到足够多的客户让生意得以维持。创始人谈起实现产品与市场契合时,那种屏息激动的语气,就像找到了真爱。现在我明白为什么了。

单干的前两年半,我常常花几百小时去执行一个点子,结果只多赚几美元。TinyPilot 则是一见钟情式的契合。博客一发布,我就感觉到了。

做 TinyPilot 时,感觉是产品在推着生意往前走,我只是顺势而为。有好几个月,我在经营上犯了严重错误,生意却依然在增长。

而当我真正去改进产品时,回报是立竿见影且非常可观的。11 月,我发布了 TinyPilot 的一款高端新机型,首月就卖出 55 台,额外带来了 1.4 万美元的营收。这比起在 Is It Keto 和 Portfolio Rebalancer 上那 0.1% 的注册率,感觉好太多了。

不用 24 小时在线,也能做出成功的生意

我至今清晰地记得 2017 年底在 UCB 喜剧剧场看的一场演出,但一个笑点都想不起来了。我只记得整场都在担心口袋里的寻呼机随时会响,然后不得不冲回家。

我们在 Google 的团队实行“值班轮换”,每两个月就要轮到两周,随身携带寻呼机。一旦寻呼机响起,你必须在 30 分钟内“手指放到键盘上”开始处理。

离开 Google 时,我对未来还没什么规划,但有一件事很确定:再也不想带寻呼机了。而且我也确实做到了——任何会因宕机而酿成大问题的生意点子,我一概不考虑。

到了第二年左右,我心里开始冒出一个念头:会不会正是这种想法拖了我的后腿?别的创始人都在做承诺全天候可用的服务,凭什么我要求更低还能成功?

幸好,自筹创业的典范 Jason Cohen 告诉我要坚持自己的做法。严格说他不是对我说的,但感觉就是在对我说话。在他那场精彩的演讲《Designing the Ideal Bootstrapped Business》第 32 分钟处,Cohen 明确劝创始人不要做“实时性”生意。他解释说,如果你是一家自筹资金的小公司,半夜被客户叫醒根本不值得。

我很庆幸没有向恐惧屈服。TinyPilot 可以说离“实时性”再远不过了。客户在自己的硬件上运行我的软件,所以哪怕我关掉所有服务器和代码仓库,也不会影响任何人的使用。

成功比失败更让人焦虑

尽管 TinyPilot 并不需要全天候在线,我的大脑却常常忘了这一点。

重磅发布后,我两天没睡着觉。我把 9 套设备全部寄出后,就开始揪心接下来会发生什么。要是大家收到货,结果全都不能用怎么办?要是客户期待的 TinyPilot 是完全不同的东西怎么办?要是有个可怕的 bug 把大家的服务器都搞坏了怎么办?

我打包的前 9 份 TinyPilot 订单

好在,第一批客户都很喜欢 TinyPilot,我终于松了一口气。但每隔几周,总会有新的状况让我焦虑好几天。邮局弄丢了一批关键零件。一篇好评带来了订单激增,库存瞬间告罄。我填错了报关单,一度以为自己要因出口违规被关起来。

说到底,这些压力都是我自找的。缺货几天又能怎样?因为我计划不周导致订单延迟,我会为让客户失望而焦虑,但其实从来没人抱怨过。事实上,当我为发货延迟道歉时,客户的回复总是说,很感激我还特意告知。

我已经在慢慢学会给自己减压,把工作和生活分开,但这仍是一个持续的过程。

给去年的目标打分

去年年初,我定了三个大目标

在所有业务上实现 2 万美元营收

  • 结果:实现 6.3 万美元营收
  • 评分:A+

开头看起来很不妙,但最终远超目标。考虑到 2019 年的营收只有 7200 美元,接近 9 倍的增长算是一项重大成就。

发布 10 篇博客

  • 结果:发布了 9 篇博客
  • 评分:A-

本来有望完成 10 篇,但为了制作写作课程,我放弃了第 10 篇。尽管如此,我对今年的博客成果很满意。写了几篇让自己自豪的文章,也找到了欣赏它们的读者。

学习一项新技术

  • 结果:更深入地学习了 JavaScript
  • 评分:B-

我本来想找个机会学 Rust,但一直没找到合适的切入点。

取而代之,我在 JavaScript 上拓宽了广度和深度。我本来就会 Vue,但今年又学了 Gridsome,一个基于 Vue 的静态网站生成器。我用它搭建了 TinyPilot 的销售网站,并重写了 Is It Keto

我也学会了更高效地使用原生 JavaScript。TinyPilot 的网页应用是纯 JavaScript,没有任何构建或编译步骤。不用现代 JavaScript 框架,能省去的复杂度之大令人惊讶。

第四年的目标

将 TinyPilot 的年营收做到 60 万美元

好吧,从年目标 2 万美元一下跳到 60 万美元,听起来很疯狂,但我觉得可以实现。

TinyPilot 在 2021 年 1 月就赚了 4.3 万美元,只要每月平均增长 3%,全年就能达到 60 万美元。

发布 6 篇博客和 1 本书

自从开始为自己工作,我就一直幻想着自费出一本书。今年,我终于要付诸行动了。

这本书将教软件工程师提升写作的实用方法,暂定书名为Refactoring English: Effective Writing for Software Developers

自动化 TinyPilot 的运营

我的女朋友在 TinyPilot 上兼职帮我,负责管理库存和打包订单。我们很享受一起工作,但这套体系很脆弱,也难以扩展。只要其中一人几天不在,就会迅速积压大量待办。

我希望把足够多的流程系统化并外包出去,让我们即使休两周假,业务也不会陷入停摆。

结语

辞职前,我经常看书、听播客了解创业。最吸引我的就是那种无限可能的自由。

当你经营自己的生意时,你可以做任何事。手头有一个月时间和 1 万美元资金,就有无数种方式去发展业务。你可以加一个新功能,试一种新的营销策略,或招一个销售。你甚至可以发明一种你们行业前所未见的全新打法。

整个职业生涯里,我都处在某种既定的晋升阶梯上。要想晋升,就得证明自己满足那些与日常工作只有微弱关联的武断标准。如果经理让我加一个新功能,我不能说“不,我觉得我们更需要更好的营销策略,所以我要去做那个”。但有了自己的生意,我天天都这么说!(只不过现在,经理和员工都是我自己。)

随着其中一项生意终于在财务上取得成功,收入多了,可能性也更多了。一切和我期待的一样有趣。有压力,但很有趣。

我再次感到,能为自己工作是无比幸运的事,希望能永远这样做下去。

本文章由 muse-spark-1.2-contributor 进行翻译

评论