开发者自述:我把开源项目撤下GitHub,改为订阅收费
编者按:开源让软件世界蓬勃发展。而开发者则从GitHub不断增加的星星数量当中得到了满足——直到有天他收到了房东发来的账单。专门为开发者和设计师定制的浏览器Sizzy的开发者Kitze就经历了这样的心路历程,星星不能当饭吃。于是经过一段时间的思考之后,他决定把自己的项目从GitHub上撤走,然后把产品做成了订阅收费,尽管中间也遭遇了一些喷子的攻击,但是真正用户的反响却出奇的好。所以他在Medium上撰文描写了自己的心得体会,其中的经验教训值得其他开发者参考。原文标题是:GitHub stars won’t pay your rent
嘿,伙计,你好。
我到这里写了东西已经有很长一段时间了,但是我不想为了“让这个博客还有一口气”才写文章,得了吧,我不会这样的。
好了,现在我终于有个故事可以讲了。上个月我终于推出了新版的Sizzy 。它已经从一个简单的Web应用程序变成了供设计人员和开发人员使用的成熟的浏览器。要我说这个月非常令人兴奋,但实际上,这是一段为期2.5年的漫长旅程。在此期间,我犯了很多错误,但也学到了很多经验教训,所以我想跟你分享这整个故事。
解决好你自己的问题,其他一切都将迎刃而解
我在2017年想到了这个点子后写的Tweet
就像我之前做过的一切那样,我努力去解决自己的问题。当时我是一名自由职业者,在多台设备上预览同一个网站对我来说是一个很大的麻烦。客户希望应用程序在每台设备上都能完美地工作。因此,每次我的应用程序中进行变更后,我都不得不在Chrome里面切换20个设备变体,这让我发疯。我把事情自动化很痴迷。我会花几个小时来自动完成一项只需要3秒钟的任务,就为了今后不必再重复这些步骤。而我的姐姐就不一样,她为了懒得买第二对电池,每天可以轮流把一对电池互换到2个遥控器上,每天10次,就这样坚持了10年都没买电池。她这么做绝对是没问题的。我想每个人都不一样。
其实你可以看看我发布应用时发表的那篇文章。
扯远了。经过仅仅一天的工作,我在为将来的客户工作时就已经节省了很多时间。我把那个app发布了出去,然后在GitHub 上开源,这样每个人都可以用它并做出自己的贡献。大家很喜欢它。这个项目得到了5000多个星。分析数据疯了。我无法相信到底发生了什么事。
大家都这么喜欢所以会愿意捐点钱的,对吧?
我给它在Open Collective(开源项目筹资平台)上开了个户,结果2.5年的时间内它总共为我筹到的金额是93美元。我发Tweet讲了这件事以后,有几个人说:“好吧,也许是大家都不用这个。”我知道,他们只是想让我失望,但数据另有话要讲。每个月有7000到1万人使用这个应用程序。捐赠链接随处可见,所以不可能错过的。
问题在这里:当你完全免费把一些东西赠送出去时,大家就没那么有为它付费的动力了。人就是这么思考的,这没什么新鲜。你上一次给一个app的 “支付你愿意的费用”滑动条选择1美元以上是什么时候了?
我犯了一个巨大的错误
我用了很久才意识到把Sizzy 作为Web应用程序推出是一个很大的错误。有很多限制让我无法发挥该应用的全部潜力。我想法太多了,但是在web app里面是不可能全都实现的。我想制作一个真正的浏览器。所以我一头埋进了Electron。在让第一个0.0.0.0.0.1(打个比方,不是真正的版本好)Electron版本能用后不久,我发表了一篇文章,好让其他人避开我经历过的那些坑,来让React和Electron一起工作。我正在取得进展。
显然我想要做一个该app的付费版,因为捐赠并不完全适合我。但我又不知道该怎么做。
我给Greg打电话,问他是怎么熬过失眠症的,他非常热心,但是当一个目标看起来太过遥远,以至于我们无法想象实现的清晰路径时,我们总会想到同一个抽屉:
我们最喜欢的借口抽屉
我出生在马其顿,当时是住在荷兰,这两个国家都无法用Stripe。我联系了Stripe,他们告诉我荷兰很快就能用了(的确几个月之后Stripe登陆荷兰了),但是我已经很难再接受自己没有手段给这个应用收费的借口了。
我的意思是,每个很酷的开发者都在用Stripe,对吧?他们有一个很酷炫的网站,有人人都喜欢的仪表盘。我希望看到我的$$$数字在漂亮的、色彩缤纷的仪表板上呈现。其实,还有108351个其他的支付服务提供商可供我选择。但不行,付款很难。这是不可能的。另外,我必须想办法让这个应用程序自动更新吧?怎么才能做到这一点?我要到哪里去存储所有的安装程序?如果要花很多钱怎么办?我怎么去收拾所有这些烂摊子?还有那些许可、注册、电子邮件,新闻通讯等等......知道吗,其实我最好是把这些 “问题”忘掉,晾2年就行。
转移焦点
在推出该app后不久,我停掉了自由职业,我推出了React Academy,然后就忙着开研讨会,所以我根本没有用Sizzy的必要了 。我完全无视了这个应用,也停止了对问题等的关注。虽然它的使用率仍然很高,而且使用情况甚至还在上升。这说明应用对大家很有用,哪怕是最基本的形式。有几家公司想从我这里买下它,可是我不想卖。我知道有朝一日我会端正心态然后回到原点的。
如果它对我不起作用的话,我不想把它卖给别人
去年夏天,我再次试着用了一下这个应用,我的第一反应是“哦我的老天为什么大家要用这个鬼东西啊,它本来可以好很多的”。但大家并没有这样看待它。当你将大脑调整到这个解决问题的思维模式时,你就会开始看到所有东西的问题。我用这个应用的时候,之所以会不喜欢是因为我脑子里还想着它的其他潜在版本。所以我决定再次对它进行改造。我决定把它做到我每天都愿意用的东西时再推出。这就是我的目标。
第二次机会
我忙着开研讨会和各种会议,几乎没有时间专注于任何其他项目。我每周都要出差,然后我从借口抽屉里抽出了这个:
除非我长时间呆在一个地方,否则无法集中注意力把工作做好——Kitze
但是我不想让那个借口阻止我,所以我雇了Praneet每天弄几小时那个app。从技术角度来看,他帮助我让Sizzy 恢复了状态。我们更新了许多旧的依赖项,清理了一些代码,还切换了几个库等。
问题是,我不知道如何推进这个项目。还有很多事要做,我不知道从哪里开始。付款集成甚至都还没有启动,也没有登陆页面。他在修复错误和添加新功能时,我开始着手登陆页面的工作。大多数新功能并未出现在当前版本,因为我还没有考虑到所有情况。我们前进了一步又后退了两步。我不会说这完全是浪费时间,但我希望自己可以更好地确定优先事项和做好估计。不幸的是,我没有。我没有设定任何时间期限和每周目标。我们只是在编码。
另一个问题是我不能长时间专注到一个目标上。我开始登陆页的工作,但最终还是用一个React库来制作登陆页了。