开发者自述:我把开源项目撤下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库来制作登陆页了。

我也希望解决这个问题,但我最终得到了一个半途而废的解决方案。要做的事情太多了,发布似乎遥遥无期,我已经筋疲力尽,又失去了兴趣。Praneet最后决定不想全职加入我的项目,我们于是分道扬镳。

最后的机会

我又回到了出差,开会,举办研讨会的生活里面。我开始拍摄视频博客。我有很多好玩的事情,然后以要出差作为没有时间处理我的应用的借口。

2019年初的某一刻,我们再次开始跟Praneet讨论他的全职工作。经过大量的反复,我们达成了一年的合同,于是又重新回到了应用程序的开发上。还没赚钱就要每月自掏腰包给某人对我来说是个极大的鞭策。说实话,我自己也认为光靠自己一个人是没法把所有事情都做完的,这个应用就不会看到光明的那一天。

繁忙的会议和研讨会几乎要告一段落了,所以我终于有了很多时间呆在家里,我终于回到了我的地盘。说实话,旅行和到处流浪也许看起来挺有趣,但相信我,没有什么事情比呆在同一个地方工作并长时间保持专注更好的了。如果你看到那些在泳池边惬意地工作的宣传照,只需想想阳光有多刺眼,旁边的小孩有多操蛋就行了。在Instagram上面的生活是假的人生。

无论如何,我终于决定要坐下来做好这个玩意儿了。

如果用任何一款拖放工具来开发的话,登陆页本来可以一天就搞定,但是不行,对于住在我内心的完美主义者来说这样还不够好。我必须从头开始做所有事情。一切都必须进行优化,动态化,并考虑到最小的细节。我是#YOLO #JUSTSHIPIT开发的信徒,但正确的登陆页基本上就可以替你推销应用了。我用Twizzy证明了这一点,我还在IndieHackers上写了一篇谈“只管交付未必总是正确的心态”的文章。在没有营销人员的情况下,大家愿意分享和购买这款app只能是由于其到处埋有彩蛋的独特登陆页。

Sizzy 的登陆页面已经完成,现在是时候继续前进了。

哦,伙计,还有支付的问题

虽说Stripe在我目前所在的波兰可以使用,但我仍然选择Paddle作为支付提供商,因为它自动为欧盟的客户处理增值税。我本来在荷兰就可以用Paddle,但是我的手当时还卡在借口抽屉里。

由于应用是在Electron里面,我无法使用Paddle的SDK来对应用进行授权。“加几行代码”变成了“用几周时间手动计算一切”。我不得不从头开始编写支付逻辑的一切。从后端到用于管理许可和订阅的独立应用,以及用于激活,去活和验证许可的所有Electron代码。当你只看一个应用的功能时,你可能会想“我可以在几周内自己写出一个”,但实际上把它封装成可以分发给用户的东西需要做很多工作。不要让我动手弄更新和发布服务器啊。

我在这个过程中学到了很多,但我不希望其他人人工完成这项工作。我已经有了一些关于把整个基础设施作为服务发布出去的计划,这样大家就可以轻松地用Paddle来卖他们的Electron应用了。发布它只用了我3年的时间。

删除GitHub 代码库

老实说,删除代码库并从我的档案里面拿掉这个项目的感觉有点糟糕。我讨厌这种感觉,但我不得不耸耸肩。我必须说服自己,我没有做错任何事。2.5年的时间里这个应用服务了很多人,但是我很少得到任何贡献。现在是时候认真考虑一下什么才是重要的了。

呃,接下来......我要提到那个M字了,然后会失去大量读者了恐怕。

钱(Money)。

钱很重要。

见鬼,大多数开发者,大多数人都认为金钱是邪恶的,认为钱不重要。这是一个禁忌话题。好吧,向你的朋友抱怨你这个月赚不够钱或者不能支付账单吧。他们会喜欢这种对话,每个人都会讲自己的故事。现在继续告诉你的朋友你这个月赚了很多钱。你可以用刀来切开空气中的紧张气氛。别人可不想听到那样的话。钱不重要。滚蛋去吧。。我几乎没攒下任何钱,但我现在不想考虑这一点。至少我学到东西了嘛。总有一天,情况会神奇的反转的,我知道。那家伙赚钱是因为他的爷爷很有钱。那个女孩赚钱是因为她很幸运。现在我们不讨论这个问题,请回到你的抱怨吧。

有这么多出色的开发者开发出了如此出色的工具,他们却没考虑用来赚钱,哪怕一秒钟都没有。一位朋友曾经说我很“贪婪”,因为我为了拿更高的薪水而离开了一家公司。什么玩意儿。这是非常幼稚的心态,我正在尽我所能把这一信息传播给每一位开发者......

整天开源,写博客文章,调整设置、编辑器主题,这些完全都没问题,直到你的房东过来敲门或你来到收银台结账时。你天天都要坐疯狂的2小时通勤,然后你告诉自己“至少我了解了很多SVG方面的东西”。见鬼去吧。我们不知道这种状态能保持多长时间。没有人能保证我们能够保住自己的工作,并且在未来10年内还能呆在最有利可图和最被宠坏的行业。

一名工厂主管——一个正在给工厂工人读报纸的人

工厂主管以为自己的工作是安全的,直到有一天工厂老板走进来用无线电取代了他。但工厂主管每天没有Medium和Hacker News告诉他无线电要夺走他的工作了。然而,开发人员不断看到消息说AI和ML的势头很猛,一切都变得越来越自动化。我们完全忽略了这一事实,并且愿意相信我们用CSS移动一下方框的高薪工作永久都可以高枕无忧。(知道如何修打印机的人是例外,你的工作可以永远保住)

很久以前我就学会了不要迷恋明星之类。我仍喜欢开源,而且我也还开源很多东西,但不是所有东西都必须是开源的。不要反驳我,不要误会我的意思。如果不是因为开源的话,我们什么东西都做不了。社区里面有很多出色的人,有人靠开源谋生,也有资金充足的开源项目,如Babel、Webpack 等。

但是, 大部分开发人员没有从开源赚过一分钱。一分都没有。

我有很多朋友(所谓的朋友是指回复过我的tweet两次的人)都开发过出色的应用或者服务,他们没有做成付费的原因有很多,现在他们已经葬身到问题的海洋里面,基本上就是免费替别人解决问题。无论这听起来有残酷,但这就是悲哀的现实。我真的希望有了GitHub Sponsors情况会有所改变,但它距离推出付费SaaS 产品还很远,因为捐赠是可选的。

我的理念是,如果我投入了大量的时间和金钱去做一个可以节省全球各地用户和公司大量时间的工具,我可能一样也要对它收费。

上帝,这篇文章到底是讲什么的......呃,是的,Sizzy 。

是时候该发布了。一切我都计算过了,我希望至少有一小部分已有用户可以转换成付费用户。

是时候了。

这个应用的0.0.1版本已准备好,可以下载了。

一切都经过了恰当的测试。

我制作了一个专业视频,展示了应用的所有功能。

Twitter的帖子也准备好了。

Product Hunt文章也已经准备就绪。

是时候按下按钮了,但这实在是太难了。

我非常害怕所有的原有用户都抓起一把干草叉到我家门口等着,因为这个工具再也不免费了。

但是,天呐......我完全没有为接下来发生的事情做好准备。

盛大发布

一定是神圣猴子球(吸引注意力的东西)划过了天空!我完全没想到大家会是这样的反响!

Sizzy 在Product Hunt上获得2352 票。当时被选为了当日最佳、本周最佳,以及当月的第三名。它拿到的票数比Facebook的Libra和Raspberry Pi 4还要多。

我决定在Twitter上用赠品来鼓励大家转发,结果还真管用!在之后的赠品做我找不到合适的挑选获胜者的工具于是又做了个Lucky Retweet。你不妨试试给自己的产品做赠品活动,你一定会对它的效果感到惊讶。我赠送了30个终身许可而不仅仅是3个。虽然你的几个朋友可能会抱怨不帮你转发,但所有的获奖者都会很高兴并表示感激。总的来说这是个非常正面的体验。

最初的反馈令人惊讶。当我开始收获第一批订阅者时,我简直无法相信。现在自发布以来已经过去了1.5个月,但每当我收获新用户时,仍然有此同感。

喷子的声音总是更大声

我相信每月掏几美元就能节省你和你的团队每月数百小时的东西是不用过脑子就能决定的。回想起来,我应该把价格定高点才对。卖得太火了。如果你去看登陆页上的公司列表,你会发现三星、宾利、Comcast,丰田,Sketch,Hallmark,Basecamp,Algolia 等赫然在列。

到底怎么回事?

那些认识到某个工具可以拯救自己甚至帮他赚钱的人,他们会毫不犹豫就买下来然后继续自己的生活。

可是,那些显然是SaaS 产品定价专家的人的嗓门却要大得多。如果你只是在不了解实际统计数据的情况下去看那些外部评论的话,可能就会产生一种完全错误的印象,好像这个产品的效果不佳啊。

最常见的抱怨是:

  • 我只想付一次!!! 111 !11 !

  • 这不应该做成订阅

  • 嘿,这应该是免费的!111 !1

  • 我要开发自己的版本并免费分发给大家,那些正在向用户收取类似费用的贪婪公司见鬼去吧

  • 这难道跟Google Chrome不一样吗?

  • 这跟2007年推出的Chrome扩展程序难道不一样吗?我用那个也可以啊。

好啊,没人强迫你要用这个啊?

不妨想象一下,如果你进了一家服装店看到一件衣服然后嚷嚷“哦我的天呐这件衬衫居然要20美元?你疯了吗?我去隔壁家花7美元就能买到一件。我可以还可以买条裙子,剪两刀,然后当T恤穿。其实我也可以自己缝衬衫!!!!“

或者想象一下你去到一家超市然后开始对收银员嚷嚷“什么?!这瓶牛奶要3美元?你知不知道在城西那边我用2.5美元就能拿到1瓶?我甚至可以自己埋头奶牛,把它养大,然后天天免费挤奶喝!!!“

在这两种情况下,你可能会被看作是疯子,让后被保安押送出去。但遗憾的是,在互联网上,大家忘了自己也是在跟真人交谈的。很简单,如果你对产品定价不认同,那就别买离开这里就是了。你大可把同样的钱花在一杯大杯拿铁上,然后每周花25个小时人工去做一些专用工具可以为你做的事情。你自己看着办!

聚焦客户

值得庆幸的是,我学会了忽视那些负面评论,而且没有在无意义的互联网讨论上浪费太多时间。

我没有浪费精力去说服人们大家买我的应用,而是决定把焦点放在实际购买了它的客户身上,并确保他们能从中获得最大价值。自推出应用以来,我们一直在努力改进它,我们已经发布了5个具备大量新功能的新版本。我还设立了一个公开的Trello看板,这样大家就能看到我们的路线图并对他们希望实现的功能进行投票了。

电子邮件堆积如山,有太多的邮件需要我去处理。我尝试了好几种工具,但没一个管用。我意识到不能所有事情都靠我一个人。于是我的女朋友,当时她已经担任本项目QA,又主动提出加班来帮我处理邮件等其他管理事务。一周后,我决定雇用她做兼职并适当地补偿她的时间。对某些人来说,这听起来可能非常奇怪,说实话,将工作与个人生活分开的确有点困难,但我们还是设法做到了这一点。她对这个项目非常兴奋,全身心地投入到各种事务里面。

Sizzy开发者Kitze和他女友

我想要确保尽快解决每个客户问题和投诉,她的作用至关重要。在解决客户报告的问题后,我们会亲自给他们发送电子邮件,让他们知道新的更新已经解决了他们的问题。每个人都喜欢这种档次的客户支持。我们知道,规模再大点是难以承担这种客服的,但我们会尽最大努力来保持这种服务方式。

下一步

目前,Sizzy 拥有大约1600名用户,这很疯狂,因为迄今为止我所做的唯一的营销是给一份新闻邮件列表做赞助,那是上周的时候。大多数的营销都是喜欢本产品的口碑营销。在开始营销投入之前,我想进一步提高应用的稳定性。它离我的最终目标还很远。关于让Sizzy 成为每个开发人员和设计师日常工作中依赖的工具,我有太多的想法了。我希望它能实现一百万的用户。这听起来可能很疯狂,但我知道我会实现的。我和那个目标之间唯一的问题就是......我。但我不会再迷失自己。Sizzy 现在是我的主要关注点,其他一切都是次要的。当你知道你有多依赖你的客户时,你真的会彻夜难眠。这是一种奇怪的感觉,但我喜欢!

我不知道接下来会发生什么。有5家大型投资公司直接联系我了。我仍然不确定我是不是该走VC路线,因为我感觉这样会让自己再有一个老板,如果有人控制的时候我总是会很辛苦。我会试着在没有投资的情况下尽可能地往前走,因为100%地拥有一家创业公司且不依赖任何人来壮大它的那种感觉很惊艳。

初创企业?!我说初创企业了吗?我真心讨厌这个词。它已经完全失去了意义,因为有人创建了一个hello world项目就马上将他们的Twitter简介改成了“ X的CEO和创始人”。我简介的头衔一点意义都没有。我正在开发一个应用,谁在乎呢,不管你怎么叫它都没关系。就算你改变你的简介,事情也不会神奇地发生改变。你只是在骗自己。快乐就好,不要再去在意怎么向你的3位高中好友证明你是谁。

呃,我应该在这篇文章变成鸡汤之前结束。

结论

  1. 解决你自己的问题

  2. 尽快向其他人展示你的解决方案

  3. 打包并尽快分发出去(切记)

  4. 不要对把它做成付费感到害怕,羞愧或沮丧

  5. 不要让任何人告诉你应该为你的工作收取多少钱

我很担心其他的开发者只关注有关付费产品的负面评论,然后就因此对把自己的下一个产品做成付费而不是免费感到畏首畏脚。

请不要上他们的当!

请重视你的工作,要相信尽管喷子的声音很大,但你仍然会收获很多的客户,他们乐意为你付出的努力付出他们的金钱。

正如一位著名的传奇(霉霉)曾经说过那样:

因为玩咖(palyer)总是玩,玩,玩,玩,玩

而黑特(hater)总是黑,黑,黑,黑,黑

宝贝,我会一直甩,甩,甩,甩,甩

通通甩掉,通通甩掉

如果你想多谈谈这个,我的DM大门是敞开的。

直到下一个,再见

译者:boxi。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章