2020/04/20

写一个开源的 macOS 程序可以赚多少钱?

五年前,我在 GitHub 开源了一个 macOS 上的 Redis 管理工具,取名 Medis,同时把它放到了 App Store 以 30 元一个的价格出售。换句话说,你既可以直接免费下载使用,也可以花 30 元购买,两者功能一样,全凭自愿。

昨天在看美剧《Better Call Saul》时,来了封邮件说有人帮忙给 Medis 的帮助文档改了个语法错误。

我这才想起来已经有接近一年没有好好维护 Medis 了。

一些数据
Medis 现在在 GitHub 上有 8.7k 个 star,我和我很多的工程师朋友都在用它来管理 Redis 服务器。一部分人是在白嫖(当然包括我图片),另一部分人秉承着乐于助人、帮助落后群体的心态花了 30 软妹币买了 Medis(隐约记得我之前悄摸摸宣传过如果谁花钱买 Medis 的话我就请谁吃饭,不过好在一直没有人找我兑现过)。

回复了邮件后,我久违地打开了 iTunes Connect 想看看 Medis 的销量。

💰 Medis 到底带来了多少收入?

不绕弯子,直接看图!你瞧…

Medis 销量 Dashboard

到去年年底,Medis 的总销售额是 40.8K 美刀,不到 💰30 万人民币的样子。除去孝敬给 🍎 苹果爸爸的好处费,剩下来一共 20 多万。

看上去也不少,不过哦!这个可是 4 年多的收入,分摊到每个月不到 5000 元人民币。要在帝都的 🍎 苹果研发中心旁边租一个一居室可能还要添一两千块钱,否则至少要租在四环开外了。嗯…这样想想也不多。不过换算成饭钱,每天 160 元的白吃餐标感觉奢侈到了天际!

🕙 开发的成本如何

回想一下,Medis 大概 90% 还在用的代码都是在 2015 年国庆节写的。不过为了维护这个项目,掐指一算应该也花了好几个本来可以用于 花前月下 凿壁借光 刷抖音 的周末时间。

即使这样,就时间成本而言这个投入还是很划算的。

🏫 不仅仅是金钱收入

计算 ROI 时,还要考虑到除了金钱以外,Medis 还给我带来了其他更很重要的收益。

✅ 学习新技术:React & Electron

打算写 Medis 时我正在学 React 和 Electron,想找一个实际的项目写着练练手。因为自己对 Redis 很熟悉,之前也写过一本关于 Redis 的书,所以就决定搞一个可以在 macOS 上管理 Redis 的工具,这样两个技术都能用上,岂不妙哉!

结果写出 Medis 来之后,我的收获果然非常大:

  1. 终于会用 React 写个像样的项目了,顺便也把 Redux 搞明白了;
  2. 我 TM 再也不要用 Electron 了嘤嘤嘤!太 TM 难用了…

❤️ 收获虚荣心

之所以如开头所说,Medis 采用了类似开源 ➕ 捐赠的模式,主要还是因为希望能有更多的人用上自己写的东西,让自己的 GitHub 看起来厉害一些。

…当然我还是在项目说明上谦卑地写着:

如果这个程序帮到你了,欢迎在 App Store 上买一份拷贝来鼓励我一下。

没想到发布后关注的人非常多,真的超出了我的预期。其中一大部分得益于很多开源社区的人自发地帮忙宣传,比如这位:

Taylor Otwell 🪐 profile image
Taylor Otwell 🪐
Medis is a really nice Redis GUI for Mac. Buy it if you like it! github.com/luin/medis 👍

嗯…这位是 Laravel 的创始人。

“对对对,Laravel 的创始人自愿义务帮我推销软件,还朝我比划大拇指呢!”

😭 英语水平提升

除了上面的收获外,Medis 的开源能让热心的程序员朋友们参与进来,一起帮忙参与改进。

有趣的是,因为 Medis 所有的文档都是由我的散装英语组成的,很多国际友人都表示看不下去,纷纷帮我改病句。以至于到现在改病句的提交数量甚至都超过了改代码的数量。

顺便说一句,通过别人帮我改英语语法这一点,我收获了一个非常有用的人生经验:

授人以鱼不如授人以渔。

在这个过程中我真的是半点语法知识也没学到。

✨ 结尾

很久很久以前(估计得有十年了,不要问我为啥记性这么好)看过一篇文章,写了美国和印度的程序员们对开源项目的不同参与度。文章的作者拿马斯洛的需求层次理论做了个比较,说是美国的程序员们已经处在社交、尊严和自我实现阶层,而印度的兄弟们还在生理、安全阶段。

因为开源项目更多是满足最顶端的三个需求,而较少带来直接的收入,所以从开源项目总数来讲,美国的开源项目要比印度多了 17 倍。

有意思的是,前几周 Twitter 上有一股透明化薪资的浪潮,很多人在推上公开了自己的收入。前端开源框架 Vue 的作者尤雨溪如是说:

Evan You profile image
Evan You
My last salary job was remote for an SF startup for $130k base and options of unknown worth (which I didn't exercise when I left in early 2016). Now I've been self-employed for 4 years and making more than I ever dreamed of, doing what I enjoy. Best decision in my life. twitter.com/johnlindquist/…

当然,要是想搞一个能雨露均沾马大爷提的那五个层次需求的开源项目还是很有挑战的事情。要想到好的切入点,解决大家的痛点,还需要赶上好的时机。之前和朋友调侃过如果能做 20 个 Medis 那就可以财务自由了。如果好做的话,谁不愿意做呢?

这时我想到了有人讲过找工作最重要的是要看你未来的的同伙——哦不同伴——的水平如何,Code Review 时能不能指出点干货,结对编程时能不能让你忍住不抡起键盘往后拍。从这点看,开源项目能直接把你拉到世界的舞台,带你和各地的程序员们过招,是不是非常心动!

更不要说干这事还不需要产品经理。