我这是在给自己找麻烦吗?
我从没做过开源贡献者。我甚至从未在 GitHub 上提交过一个 issue。我一直认为自己是一个碰巧懂技术的创业者。
但当我想要创建的创业公司需要一个不存在的东西时,我鬼使神差地暂停了手头所有工作。我做了一个急转弯,最后花三个月时间全职投入一个我迫切需要的项目。同样令人振奋的是,我知道其他开发者也需要它。
于是,我换了角色。我成为了一名极其专注、不允许自己睡觉的开发者。
最终,我开发出一个动画引擎,它极大地提升了所有设备上的 UI 性能和工作流程。可以在 VelocityJS.org 上看到它。它是一个强大的 JavaScript 工具,其性能可以媲美 CSS 动画。诀窍很简单:与 jQuery(最初发布于 2006 年)不同,我从头开始构建一个包含 2014 年最佳性能实践的引擎。没有遗留层,没有臃肿代码。不是瑞士军刀,而是一把手术刀。
但是,在整个独自开发的这段时间里,我一直担心我是在为自己这个唯一的用户构建东西。
我最终意识到,换角色实际上是错误的做法。我本来就不应该摘下创业者的帽子。(因为正常人不会同时戴两顶帽子,所以我的比喻在这里失效了。)
这就是我意识到这一点的故事。
成功
让我们暂时快进三个月,到 Velocity 发布的时候。请允许我吹嘘一下。
- 在三天内,Velocity 连续四次登上 Hacker News 和编程 subreddits 的榜首。
- 在九天内,Velocity 在 GitHub 上获得了 2400 个星标。
- 在两周内,Velocity 在 CodePen 排行榜上名列前茅,多个演示的观看次数都超过了 10,000 次(codepen.io/rachsmith/pen/Fxuia,codepen.io/okor/pen/fJIEF 和 codepen.io/sol0mka/full/kzyjJ)。
- 无数的企业、前端平台和网页代理商迁移到了 Velocity(例如:everlane.com、discover.typography.com、apartmentlist.com)。
这怎么可能?因为我将 Velocity 当作我的创业公司一样对待:首先是开发,占 10%。然后是营销,占 90%。
我在开发过程中经历了一次思维转变,并决心遵循以下格言:无论我在开发上花费多少时间,我都会在营销上花费更多时间。
毕竟,这就是我在创业公司中所经历的时间分配。我看不出这个项目应该有什么不同。用户获取就是用户获取。
最终,如果你开发一个供公众使用的创业公司或开源项目,但没有人使用它...你就失败了。它有多聪明并不重要。你克服了多少技术挑战也不重要。
然而不幸的是,OSS 成长黑客的特殊现实是,与之相关的有一种耻辱:营销行为会让人联想到推销、拉拢、乞求和贿赂。它通常被刻板地描绘成一个穿着廉价衬衫和更廉价领带的急于求成、不入流的小骗子。这与我们对开源的理想背道而驰——开源本身被刻板地描绘成一个穿着廉价衬衫和更廉价发型的固执己见、理想主义的代码战士。
我引用 GitHub 的 Zach Holman 的话来说明这种二元性的根源:“我们喜欢认为开源是纯粹的,它是纯粹的。为开源项目做营销很愚蠢。这就很愚蠢。” - ZachHolman.com
坦白地说,如果你希望你的开源项目产生影响,你需要走出程序员的圈子。毕竟,如果你创建了一些很棒的东西,并且你有效地推销了它,你就为所有人做了件好事。不只是你自己。
最棒的是,知道你工作的人越多,愿意贡献的人就越多:Bug 会被更早地发现。有用的功能会被更频繁地提出。
而且别担心——公开推销你的项目并不会让你看起来像个自负的开发者。它只会让你看起来像个充满激情的人。如果你花时间去理解更多人从你的辛勤工作中受益是你追求开源的主要动力,那么你就会意识到,为了你的项目而努力工作完全符合你既有的理想。
开源增长黑客
如果你仔细观察当前的开源环境,那些经常登上 GitHub 排行榜榜首的人,要么是拥有既有粉丝群体的开发者领袖,要么是主要公司共享其内部堆栈的组件。
看看本月的 GitHub 趋势榜,排名前列的项目中,除了教育资源(链接集合、教程等)以外,还包括:Pop(Facebook)、Atom(GitHub)、Quill(Salesforce)、Velocity(我!)、Mail-in-a-Box(个人)、Famous(Famous)、syncthing(个人)、betty(个人)、Isomer(个人)、Bootstrap(Twitter)、Angular(Google)、PourOver(NY Times)。
其中有相当一部分是个人,但通常情况下,主导开源营销的是公司。然而,现实情况是,这些公司雇佣的开发者并不比你我强多少。没有先天的自然选择决定了他们的项目比你的项目更受欢迎。
为让你的项目脱颖而出而奋斗吧。或者坐视大型公司的营销团队淹没你的声音。
抒情和分析当前环境就到此为止了。让我们深入探讨实质内容:我究竟是如何营销 Velocity 的呢?
- 我预先写了几个关于主要 Web 开发博客的草稿,供他们考虑发表。通过提前向编辑提供完整的内容——而不是推销,也不是大纲——我最大程度地减少了他们的工作量,让他们更容易说“是”。我还确保在获得足够的 GitHub 星标(来自 Hacker News 的报道等)后才进行推销。最重要的是,我为每一篇文章都设定了强烈的主题方向:一篇文章专门讲性能,另一篇文章专门讲 UI 工作流程。在这两种情况下,我都将推销 Velocity 的注意力降到最低,而是专注于教育读者了解各自的主题。博客不想发布一个关于你项目的巨型广告;他们想要的是读者会感谢他们的内容。
- 我找到了我的核心用户。这条建议在创业界很常见:找到你的前 1000 名核心用户。开源也是如此。哪些用户渴望一个高性能的动画引擎——会用它做一些令人惊叹的事情,然后炫耀他们的成果,而我不用提示他们?Web 动画演示者——就是他们;那些充满激情、骨灰级的开发者,他们探索技术与设计的交汇点。他们在哪里闲逛呢?CodePen.io。我联系了那些我非常欣赏的作品的演示者,并给了他们一个 Velocity 的预发布版本。不出所料,他们最终为我制作了一些很棒的东西,让我分享。
- 为了确保即使在我停止主动推销该项目很久之后,新开发者也能偶然发现 Velocity.js,我将 Velocity 嵌入到我能找到的所有流行的 Web 开发者资源中。我向 BentoBox.io 和流行的 GitHub 前端书签仓库 提交了拉取请求。我向 Treehouse 的 视频博客 小组推销了 Velocity。这仅仅是开始。我还有关于 Velocity 工作流程的代码广播,这些代码广播将会由代码学校向他们的学生展示。简而言之,我确保每个试图掌握 Web 动画的开发者都能在某个时刻听到关于 Velocity 的信息。
- 最重要的是,我写了很棒的文档。再次引用 GitHub 的 Zach Holman 的话,“文档就是营销。最棒的是文档是可以链接的。它是可索引的。它是可推特的。特别是如果你有一个简洁连贯的项目概述页面,让人们可以立即进入并‘理解’它。” 为了扩展 Zach 的想法,我会将开源项目的文档框架视为创业公司的着陆页。毫无疑问,你必须进行推销;你不能仅仅记录你的 API 就完事了。阅读你文档的开发者与其他人没有区别;他们的时间有限,你需要说服他们你的项目值得考虑。
如果你有很棒的文档,发帖到 Reddit 和 Hacker News 会很自然。开发者会认可同行们的辛勤工作,并很乐意传播这个消息。
说到开源营销,你知道最不为人知的秘密是什么吗?那就是它比创业公司的营销要容易100倍。它需要更少的工作,而且你更容易取得成功。为什么呢?因为与普通网民相比,开发者更愿意倾听,更愿意转发,而且对你的营销宣传持怀疑态度的程度也更低。大多数网民已经厌倦了被平庸的社交媒体产品所吸引,而开发者则一直在寻找更好的工具。类似地,与主流科技新闻媒体相比,从网络开发媒体那里获得回应要容易得多。前者正在寻找优质内容与用户分享,而后者却被大量半成品的创业项目淹没。
由于我在 Velocity 上所做的营销努力,以及项目随之而来的成功,我继续致力于开源项目。
我仅仅是刚刚起步:Velocity 是一个三部曲库中的第一个,旨在改变我们与软件的视觉交互方式。如果你有兴趣了解我的 UI 探索,请在 Twitter 上关注我:@Shapiro.
关于 Julian Shapiro
Julian Shapiro 是一位技术创始人。他的第一个创业公司 NameLayer.com 被 Techstars 收购。他目前专注于 UI 动画,致力于将我们带向《少数派报告》的世界。更多信息请访问 Julian.com。
2 条评论