公司
Shift
创始人
Jason McCreary
收入
每月5万美元
Jason McCreary 构建了一款工具,用于自动化 Laravel 应用在主要版本间的升级过程。十年后,Shift 已达到月经常性收入5万美元——而他每天只需投入几小时。
以下是 Jason 分享他如何做到的。 👇
目录
十年历程
我从15岁开始编程。大学主修计算机科学。一直有副业项目。有些做得不错——尤其是早期 App Store 时代的一款“疯狂三月”iOS 应用。我现在仍然在做副业,尤其是结合 AI。但 Shift 是迄今为止最成功的,并且仍是我的主要关注点。
Shift 自动化了 Laravel 应用在主要版本间的升级过程。你登录后,连接你的代码仓库,不到一分钟就能收到一个包含所有更改的拉取请求,并以清晰的原子提交呈现。它的价格比一顿午餐还便宜。
我一个人构建并运营着 Shift。十年来,Shift 已经执行了超过 17.5 万次升级。虽然受发布周期影响略有季节性,但它稳定地产生超过 5 万美元的月经常性收入。随着 AI 的采用和 Laravel 变更的减少,增长略有放缓。但客户留存率非常高。那些使用过 Shift 的人,会一直用下去!
在会议上构建
2015年11月,我在一次 PHP 会议上做了一个关于升级 Laravel 的演讲。Laravel 的创始人 Taylor Otwell 也参加了。演讲结束后,我问他是否有脚本可以自动化升级过程。他说:“没有。但如果有的话,我会用。”
当晚在会议的黑客马拉松上,我就开始构建 Shift。当我有了一个可用的原型后,Taylor 在 Twitter 上提到了它,帮我寻找测试者。回到家后我继续完善。几周后,我于2015年12月23日推出了 laravelshift.com。
在圣诞假期期间,我赚了 80 美元——大约 20 次运行。当时的定价很愚蠢。因为做过 iOS 应用,我只收几美元。但有人在假期购买,说明我确实抓住了某个需求。
当时我并不认为这是一个生意。我对我的日常工作很满意。我喜欢解决这个问题。我知道我自己也会用。结果证明,大约有 4 万名 Laravel 开发者也会用。
一个粗糙的最小可行产品
最初的产品很粗糙。是 PHP 和 Shell 脚本的混合体。这是一个真正的 MVP。虽然我没有截止日期,但 Taylor 提到他正在开发下一个版本,所以我想做好准备。理想情况下,我想提供覆盖三个主要版本(5.0、5.1、5.2)的 Shift 升级服务。
我搭建了一个单页网站。没有登录功能。用户通过 GitHub、Bitbucket 或 GitLab 连接。他们选择他们的 Shift。通过 Stripe Checkout 付款。初始版本会立即将用户重定向到他们的拉取请求。我花了大约 60 个小时(在晚上和周末)才让它达到“可发布”的状态。
初始版本并不完整。Jeffrey Way(Laracasts 的创始人)早期运行后告诉我它“bug 很多”。他说得没错。为了发布,我走了些捷径。而且我当时也是 Laravel 的新手,所以并不完全了解它的所有用法。但这样做是值得的,原因有两点。
首先,快速推出以赶上下一版本发布,并且随后与 Taylor 会面,时机完美。我是 Laravel 社区的新人。有它的创始人对产品感兴趣是巨大的推动。其次,那些反馈邮件对于迭代 MVP 至关重要。很容易认为它失败了,但这却是 Shift 成功的关键。
至于资金投入,初始开销很小。可能不到 50 美元用于域名和服务器。我是开发者,这很有帮助。所有东西都是我自己构建的。虽然时间就是金钱,但我有时间投入。那 60 个小时来自晚上和周末。那时我还没有孩子。
熟悉的技术栈
如今,我运行着一个简单、熟悉的技术栈:
-
PHP + Laravel
-
Tailwind CSS
-
Stripe Checkout
-
其他服务:Pusher、AWS SES
所有内容都托管在 Cloudflare 和 Digital Ocean 上,用于按需动态工作节点。
底层的 Shift“引擎”仍然是 PHP 和 Shell 脚本的混合体,但拥有更好的流水线架构。我扩展了网站,添加了用户仪表盘,并重新设计了几次。但从 MVP 以来,没有根本性的改变,只是增加了更多的 Shift 升级服务。

通过定价、扩展和周边产品增加收入
Shift 最初只有一个收入来源:按次付费的运行。根据升级的版本数量,我收取 3 到 7 美元。事后看来,低得离谱。后来,当开发者信任这项服务后,我引入了订阅制。如今,收入在两者之间平分。
扩展服务目录一直是收入增长的明显驱动力。每次 Laravel 新版本发布都会创造一个新的 Shift。但我还构建了周边产品:一个测试生成器、代码现代化工具以及一次性重构工具。这些有助于平衡季节性收入。
定价一直是最大的杠杆。我发现定价非常个人化。我从自己愿意支付的价格开始。然后逐步调整。经过几次涨价才达到现在的水平。说“收更高价”很容易。但对我来说,早期收低价可能帮助了 Shift 的增长。你必须从适合你的价格开始。然后,要愿意涨价。多年来,我转向了分层定价,将成本与 Laravel 版本的年代挂钩。越老的版本费用越高。这种方法有两方面好处:激励客户保持版本更新,并增加收入。
在过去一年中,我利用 Stripe 的新功能转向了本地化定价。本意是帮助客户避免货币转换费用。但由于我的客户群在欧盟和英国,这反而略微增加了收入。最终,这帮助抵消了 AI 带来的轻微下滑。
惊人的利润率
利润率高得惊人。每月 100 美元的开销,对应超过 5 万美元的月经常性收入。
多年来,我雇佣过几个合同工。主要是在需要额外产能时,或者只是想有人作伴,而不是独自经营。但没有员工,也没有投资者。
现在有了 AI,我又回到了自己包揽一切的状态。总开销仍然在每月 100 美元左右。我每天早上花几个小时处理支持工作。一个真正的生活方式事业。
由于基本没有开销,我有很大的灵活性去尝试、犯错,并在过程中摸索。
通过社区建立权威和信任
最大的增长杠杆一直是社区。从第一天起,Taylor Otwell 就用一条推文支持了 Shift。那一条转发达到了精准的受众。这无疑给了 Shift 大多数项目从未有过的初始推动。
Taylor 的推文是黄金。但我不能总是依赖它们。我需要建立自己的受众。我积极参与其中。在 Laracon 上演讲。参与社区播客。写博客文章。在发现知识空白的地方构建课程。这些都没有明确地推销 Shift。我不擅长销售。但当提及 Shift 能为对话增加价值时,我从不避讳。
我在社区聊天、论坛、Twitter 和 Reddit 上这样做。我是老派风格。鉴于我的开发者受众,我主要仍使用 Twitter。我还给 Shift 用户发送每周通讯,并尝试每周三进行直播。
我还在 Laravel News 上投放每月广告。我不认为这能起到关键作用。但这是个不错的交易,能让 Shift 保持曝光。你永远不知道什么内容能触达用户。所以,我保持一致性。采用霰弹枪式的方法。
我喜欢成为 Laravel 社区的一部分。这不是一种营销策略。这就是我。我认为这种真诚能够体现出来,最终建立权威和信任。这正是好的营销想要达到的效果。
依赖运气和反馈
有两件事特别有帮助:运气和反馈。
运气部分是在那次会议上遇到了 Taylor。时机正好,想法也正好。他早期的支持给了 Shift 最初的推动力。我从不羞于承认运气是一个重要因素。
反馈是那些早期的邮件跟进。从第一天起,我就在每个用户运行 Shift 48 小时后发送一封跟进邮件。两个简单的问题:你还需要手动做哪些更改?你是怎么知道 Shift 的?答案并不总是我想听到的。但我回复了每一封。我现在仍然这样做。
这个反馈循环将一个幸运的 MVP 转变成了 Laravel 开发者信任的服务。如果有一件事我想告诉独立开发者,那就是:和你的用户交流。尽可能多地交流。你不必总是根据他们的反馈行动,但倾听会有帮助。
自由是目标
除此之外,我的建议是:发布它!
Shift 在发布时是有 bug 的。我知道。我还是发布了。我本可以轻松花一年时间构建完整的目录并把自动化做到完美。但我可能会错过窗口期。
保持小规模也没问题。自由才是目标。不是退出。在你已经加入的社区中找到一个真正的问题。你的想法不必是下一个万亿美元的公司。它可以是你和你周围的人愿意为之付费的东西。就这么简单。
下一步是什么?
我走的这条路就像是 Ikigai(生命的意义)。是我擅长、热爱、世界需要并且可以获得报酬的事物的交集。十年过去了,它仍然很有趣。
过去十年,生活发生了变化。结婚,有了两个孩子,年纪渐长。我的目标是尽可能长久地维持 Shift 的运营。它终有尽头,很可能源于 AI 的兴起或 Laravel 的没落。这两者可能都足够遥远,以至我可以从 Shift 退休。
所以,我会让 Shift 适应 AI。并且我会继续为退休储蓄。
你可以在 X 和我的个人网站上关注我的动态。也请看看 Shift!
订阅