My Side项目(PigCI)是一个红宝石,您可以将其附加到RSpec测试套件中,如果您的内存使用量或数据库请求意外增加,它会通过GitHub App向您发出警告。
它的下载量刚刚超过9000次,而且从用户那里得到了一些很棒的反馈。我打算通过GitHub Marketplace将这个库货币化,不幸的是,它总共赚了0美元。
我在2020年3月决定,现在是关闭GitHub App方面的好时机,让自己腾出时间专注于其他项目。我已经开放了GitHub App的源代码(对于任何对使用Ruby on rails设置GitHub App感兴趣的人来说,这可能会很有帮助),我还更新了Ruby Gem,这样它就不需要GitHub App来传递/失败Pull请求。
我在试图将PigCI货币化的过程中学到了很多(这很有趣!),但我也犯了一些错误,我希望别人能发现这些错误是有用的。
从第一天起,我就推出了PigCI,作为一个完全会唱歌和跳舞的SaaS。这是一种糟糕的做法,我根本不知道人们是否会使用这种产品,更不用说他们是否会为此买单了。不过,更糟糕的是,因为我花了很多时间建立严重依赖GitHub的订阅模式,所以我不愿意考虑替代的货币化方式。
我认为,想要推出一款精美的产品是很正常的,只向客户收取单一费用是很正常的。但这是最糟糕的赚钱方式。当我看到海亚宝石通过GumRoad充电时,我才真正意识到我搞砸了多少。我浪费了大量的时间来构建支持订阅模型的部件,而我本应该推广和改进这个该死的东西!
如果我要重新做一次,我只会在自述文件中用一个小小的购买许可证请求来构建一小部分产品。足以让人们看到它的工作,但只要稍微推动一下,让人们验证它&这是一个很好的产品,用他们的钱。
我没有花太多精力来推广PigCI(我在GitHub Marketplace中获得了认证)。然而,当我第一次推出的时候,我进行了试验,以获得对我来说最合适的感觉。
起初,我通过AdWords花费了50美元,但是我错误地配置了我的活动,所以不到5分钟就完成了&;生成了零安装(哎呀)。我的目标是让关键字";rails&34;,";memory";&;&34;用法出现在搜索查询中的任何位置,而不是作为确切的短语。所以我刚刚把寻找国家铁路使用量的人送到了一个以猪为主题的网站上。几个月后,我用Typo CI再次尝试了AdWords(50美元,这次目标非常明确)&结果是每次安装大约5美元。
我还在Twitter活动上花了50美元。我推广的那条推特可能不是最好的版本(嘿,我推出了PigCI,这是一款Ruby on Rails的内存跟踪工具),但我最终得到了大约5个安装版本。
我发现最有用的推广形式就是与开发人员坐下来,倾听他们的问题,让他们试一试我的产品。与人面对面的最酷的事情是我能够得到一些非常有用的反馈。对于一位客户,他们给我发了一封电子邮件,告诉我他们认为令人讨厌的问题,这花了几个小时才能解决,他们一直是客户,直到我告诉他们我要关闭它。
保持持续构建的动力是构建产品最困难的方面之一。
我让这个应用程序每天早上通过SLACK发布一个每日单口相声。看到新的人加入了,或者已经处理了很多提交,真的激励了我!它花了大约一个小时来构建&;I&;从那以后,我在所有其他的辅助项目中都复制了它。
我使用GitHub Marketplace作为用户将他们的GitHub账户连接到我的SaaS应用程序的一种方式。这看起来很划算,GitHub会把我列在他们的市场上(推动安装),同时从付费层级订阅中抽取30%的分成。
GitHub的问题是,在我开始收取使用费之前,我必须经过验证(这是100次安装,这是非常容易通过AdWords实现的)。在开始收费之前,我对必须达到用户门槛没有问题,但GitHub在1月份暂停了对应用程序的验证。这真的把我搞砸了,因为市场指南说,如果我在GitHub Marketplace之外提供付费服务,我就不能在GitHub市场上市。
这意味着在过去的5个月里,如果我在他们的市场上,我赚一分钱的机会为零,除非我被核实(这是不可能的)。这真的扼杀了我的动力。我的产品是围绕市场打造的。当我试图联系他们关于暂停状态的支持时,他们花了一个月的时间回复我的电子邮件。
在过去的几个月里,我一直希望他们能再次开始验证申请,但事后看来,当我被告知必须等待通过GitHub开始收费的那一刻,我就应该开始通过条纹或GumRoad收费。
我使用Heroku进行托管(两个dynos,Redis;amp;一个Postgres数据库,每月23美元)。我真的很喜欢他们提供的开箱即用的工具,但我特别喜欢从GitHub自动部署的简便性。
一旦我有了一个像样的测试套件,我就将Dependabot设置为自动合并补丁,一旦测试套件通过,这些补丁就会自动部署。这意味着当我有一些空闲时间时(例如,一个安静的周末或晚上),我可以专注于构建一个新功能或修复一个错误,而不是例行的维护。太棒了!
我甚至可以在火车上通过iPhone发出拉取请求,从而快速调整一些应用程序。我现在在我的其他应用程序上也有同样的设置,因为没有它我是不想活下去的。
有没有想过为什么很多应用程序经常在app.company-name.com这样的子域上?我稍微复制了一下,因为我的API&;WebHook端点位于子域&;我希望我的主应用程序也是这样做的。
能够按子域名过滤我的日志,这让我非常容易看到正在发生的事情,而且它让我很容易考虑未来如果需要的话,我将如何扩展我的应用程序的各个部分。
我真希望我把我的营销网站放在一个与我的应用程序不同的子域上。我越来越喜欢拥有一个快速的营销中间商网站,让用户面对其他地方运行Rails的网络应用程序。
我给这个项目取名为PigCI&34;。你知道没人在找什么吗?猪主题CI服务。
有一个独特的名字很有趣,但我的另一个项目Typo CI最初有了更多的有机增长,我认为这在某种程度上是因为有了一个更明确的名字。
我真的很喜欢有一个独特的名字,但如果我真的想重新发布这个宝石,我会把它叫做Rails Memory Test Profiler之类的东西。