【转载】如何运营商业化开源项目

原文:我是如何通过开源项目月入 10 万的? - GitHub Daily

前言

这篇文章分享一个商业化开源项目的运营经验。就现阶段的自己来说,开源项目距离商业化还有点远,主要是想通过这个案例学习如何维护并运营一个开源项目、如何建立一个项目的生态环境。

案例

如果你是一名前端工程师,那么你一定对 fullPage.js 这个开源项目不会感到陌生。这是前端社区中非常著名的 JavaScript 组件,能快速给网站加上全屏幻灯片的展示效果。

img

不久前,国外一家专注于报道独立开发者的媒体 Indie Hackers 对 fullPage.js 的作者进行了 专访。在本次专访中,作者透露,目前 fullPage.js 能给他带来每个月 15000 美元的收入,换算成当前人民币汇率,便是 10 万多块钱。

该项目作者叫 Alvaro Trigo,来自英国,是一名前端开发者,现在英国区 JavaScript 开发者榜上排名第 5,世界排名 84(来自 git-awards 统计)。几年前由于其开源了 JavaScript 组件 fullPage.js 而受到业界广泛关注。

目前该项目累积 GitHub Star 27000+,被 Google、eBay、麦当劳、可口可乐等多家国际大企采用。

fullPage.js 的诞生过程

早期作者要做拥有一个全屏幻灯片效果的网站,但是在网上搜索一番后,发现找不到相关代码示例,于是便打算自己动手实现。

没多久,网站完成了,作者又将这个功能从网站中抽离出来,做成了 jQuery 插件,以方便其他开发者集成使用。

极具戏剧性的是,在他推出这个插件没多久之前,Apple 发布了 iPhone 5C 的展示网站,这个网站上面的交互与 fullPage.js 的交互非常相似。

尽管作者说这一切只是巧合,但不可否认的是,许多人通过 Apple 的网站交互而间接了解到 fullPage.js(我便是其中一员 )。

当他将 jQuery 插件抽离出来之后,又将这份代码发布到了 GitHub,并简单做了下推广宣传。一周后,这个插件便在 GitHub 上累积数百个 Star,同时有许多开发者开始接入使用,并提交多个 issue,以帮助作者改进项目。

随着代码的迭代更新,插件功能也愈加完善,起初的 jQuery 插件也被重构成独立的 JavaScript 组件,并支持 Vue.js, React.js 和 Anugular 框架扩展,目前 WordPress 插件也已制作完成。

值得一提的是,项目开源的前 3 年, 作者没有收取过一份钱。因为他觉得,当看到别人在使用他所创造出来的产品时,那种感觉不是钱所能衡量的,这也是作者更新项目的动力所在。

作为一个创作者,做出来的产品被人认可,这是对他最大的肯定。

fullPage.js 的增长过程

项目发布出来后,作者并不是守株待兔式的蹲在电脑前,干等着项目被人发现、挖掘,而是做了以下一系列宣传营销工作,向其他人传达这个项目的存在:

  • 为项目创建了 Demo 展示页;
  • 写了博客文章,讲解技术原理;
  • 给各大 Web 社区站点发邮件推广产品;
  • 将项目提交给某些 Web 资源集合站点;
  • 在 Stack Overflow 回答问题,顺带推广产品;
  • GitHub Trending 的借势传播;
  • 在 YouTube 上发布指导视频;
  • 参加各类技术媒体的节目专访;
  • Google 和 Facebook 广告投放(效果不好)。

完成这些工作后,作者仍不满足于现状,会不定时到 Google 上搜索自己的产品,看看是否还有其它地方可以为项目带来新用户。

由于这个项目在 GitHub 上的知名度非常高,因此也受到了 Google 搜索的眷顾,当用户在搜索全屏幻灯片的时候,这个项目往往能拿到较高排名权重。

fullPage.js 如何开展商业化运作?

一开始,作者主要是通过插件定制开发来收费的,后面随着上门询问的人越来越多,导致浪费在沟通上面的时间过多,作者便把一些定制功能打包放在网站上,让其他人可以直接购买使用。

后面,随着产品功能趋于完善,稳定性也越来越高,作者便直接在网站上卖授权。

目前,这个项目主要通过以下几方面给作者带来收入:

  • 扩展销售(Gumroad 平台);
  • 授权销售;
  • WordPress 主题的 Affiliate 分销提成(佣金 40%)。

在过去几个月,以上渠道平均每个月能给作者带来 15000 美元左右的收入:

img

从上图可以看到,大概在 2018 年的时候,收入翻了一倍,那是因为作者将项目从免费模式切换到授权模式(GPLv3 依旧免费)。

虽然目前收入颇丰,但他还是留有点小遗憾,即没有从一开始就创建 WordPress 插件,因为 WordPress 上面的市场也非常大。

而平时项目的支出,则主要包括服务器托管、网络代理、税务助理、通信、广告、社会保障税等费用。

"产品最好在一开始就考虑未来的收费问题,早期为了快速获取用户以及避免竞争对手的打压,可以先免费提供产品的使用,等市场占有率足够高,在业界建立下不错的口碑后,再开始正式收费",这是作者给出的另一建议。

如何给产品制定一个合理的定价套餐,这也是一门学问,在此作者推荐大家阅读 Stripe 的这篇文章来获取灵感:

https://stripe.com/atlas/guides/saas-pricing

未来计划

作者希望,在项目收入方面,能在今年年底前达到 $20K/月。

为了达到这个目标,他需要做好以下几件事:

  • 给产品添加新扩展;
  • 售卖基于产品的 HTML 模板;
  • 给产品添加编辑器;
  • 通过某种方式实现订阅付费,让未来有稳定收入;
  • 尝试一些新项目/产品(脑中已有初步想法)。

在产品方面,需要避免陷入过于繁琐的工作,应该多思考产品的创新及增长(Patrick Bet-David 演讲视频中也有所提及:https://www.youtube.com/watch?v=2jG6lJLcToA)。

在个人方面,享受生活,不要让工作成为负担,不要为了过分追求收入而浪费自己休闲的时间。

给独立开发者的一些建议

无论是从技术、产品还是营销方面,fullPage.js 作者都做得非常出色,这也是优秀的独立开发者需要掌握的基本技能之一。

如何成为一名优秀的独立开发者,作者给出了以下几点建议:

  • 做一些你喜欢做的东西;
  • 快速构建好产品,并及早放到市场上验证(精益创业);
  • 不要在技术上浪费太多时间,定好发布日期便执行;
  • 不懂技术也可以打造一款好产品;
  • 如果你打算开始单干,记得打造好你的个人品牌;
  • 亲自为客户提供邮件支持,至少在一开始时要这么做;
  • 顾客至上;
  • 仔细思考并设定合理的目标,先实现产品再谈其他。

近几年,越来越多的程序员选择成为独立开发者,他们都希望自己能像 fullPage.js 的作者一样,构建出一款真正解决他人特定需求的产品,为自己带来更多被动收入,进而达成财务自由的目标。

Vue.js 作者尤小右也曾在微博上说过:"被动收入是最能带来自由的东西,这个时代的程序员其实在创造被动收入上有天然优势"。

但是,独立开发者这条路对开发者的要求还是比较高的,在你早期无法找到团队或搭档的时候,就需要你身兼数职,技术、设计、产品、营销等工作一样不落,非常考虑人的学习能力与自控力。

如果你不满足于现有的工作状况,那么最好从今天起开始做好规划,为将来成为独立开发者提前做好准备。这样在机会到来的时候,你才有把握抓住他。

总结

从这个案例可以看出,商业化的开源是一个构造生态的过程。前期宣传很重要,在多个平台发布推广和文章可以拿到不错的流量;环境和适配上,单版本的项目能做到的功能和适用的场景有限,所以需要兼容各个主流框架;当用户基数上来后可以有针对性的进行个性化服务与维护;用户基数足够大的时候可以出售授权;最后是构建生态,即一个 js 库衍生出来的编辑器、HTML 模板等。