从 Laravel 升级自动化到持续维护
杰森·麦克里里把 Laravel Shift 从版本升级工具起步,扩展到订阅制维护和 AI 代码审查的过程。
2015 年 11 月,杰森·麦克里里(Jason McCreary)在准备一场 PHP 开发者活动的分享时,发现了一个生意机会。题目是 Web 服务开发所用框架 Laravel 的新版本和升级方法。官方指南和几篇说明文章是有的,但按指南自动改代码的工具很难找到。他注意到,版本之间的改动有相当一部分能按固定规则处理。
麦克里里问出席活动的 Laravel 作者泰勒·奥特威尔(Taylor Otwell)知不知道这类工具。奥特威尔也没听说有产品,还表示自己有兴趣用用看。麦克里里在活动黑客松上做出了第一个工具,把 Laravel 5.0 项目改成 5.1,又借奥特威尔在 Twitter 上的介绍找到早期试用者。
2015 年 12 月 23 日,Shift 作为付费服务上线。价格按升级区间分为 3 美元、5 美元、7 美元。圣诞假期里跑了约 20 次,赚到 80 美元。
使用方式贴合开发者原有的工作流程。客户用 GitHub 或 Bitbucket 账号登录、指定代码仓库并付款,Shift 就执行升级。结果存进与原始代码分开的分支,再以能审查并采纳改动的 pull request 交付。客户能按自己熟悉的代码审查界面,看清哪些地方变了。
自动化无法确定处理的部分,Shift 会留下说明。开发者读完说明、补齐必要的修改后就能合并结果,升级多个版本时也设计成分阶段确认。这种做法把修改交给外部工具的同时,最终是否采纳仍由开发团队决定。
早期产品有 bug。做 Laravel 教学服务 Laracasts 的杰弗里·韦(Jeffrey Way)反馈说,点子不错但错误很多。麦克里里把执行 100 次、250 次、500 次、1,000 次当作加大开发投入的节点,每个阶段都修错误、扩功能。2016 年 9 月,他宣布完成了 1,000 次升级。
他会问用完的客户:结果怎么样、自己动手改了什么、从哪里知道 Shift 的。这些回答同时告诉他自动化的漏洞和客户的来源渠道。客户支持兼做了产品改进和营销调研。
早期客户主要来自 Twitter。奥特威尔的介绍是起点,2016 年的 Laracon 分享让他见到约 400 名潜在客户。活动和新版发布之后收入跳升,上线十个月时月收入达到约 3,000 美元。
但他没有马上全职。2017 年,他选择了报酬更高的 Papa John's 咨询合同。2018 年 10 月合同结束,他决定专心做 Shift,并给自己一年时间,条件是保住存款。
定价受他以前卖应用的经验影响。麦克里里习惯用低价换大量用户,做 Shift 时也沿用这个想法。开发者可以花时间自己升级,这一点也让他对涨价犹豫。不过到 2019 年 4 月,累计升级达到 1 万 5,000 次,他判断服务价值已经得到充分证明,于是宣布再次涨价。
2019 年,他听取亚当·瓦森(Adam Wathan)的建议,把价格整理成三档。最新版本升级 9 美元,仍在支持的版本 19 美元,已停止支持的版本 29 美元。客户更容易理解预期花费,处理老项目的收入也提高了。
全职后他还引入了订阅商品。他期待这样能更容易预测客户的升级花费和自己的收入。初期反应一般,他回顾说,这是因为客户不太急着迁移到新版本,停留在长期支持版本的人也不少。
拓宽市场的尝试也在继续。他针对 Laravel 的底层语言 PHP 做了版本升级工具,但使用量少,相关产品都停了。JavaScript 也考虑过,只是框架和公开工具散落在多处,很难挑出切入点。只支持自己熟悉的技术,并没有带来新的客户群。
价格调整和订阅后来带来了成果。Laravel 6 发布的 2019 年 9 月,月收入达到 20,312 美元。当时订阅付款占了收入的近一半。
2020 年,他把产品范围扩到同一批 Laravel 开发者的维护工作上。新增了可以挑选并执行所需代码整理工作的 Shift Workbench,还推出了查看所用软件包支持哪些 Laravel 版本的“Can I Upgrade Laravel?”。杰丝·阿彻以合同形式参与开发,帮上了这些扩展。产品开始覆盖版本升级前后产生的那些工作。
教学商品也和客户支持里发现的问题连在一起。关于 Git 的咨询很多,这促成了“Getting Git”课程;教人写测试的“Confident Laravel”,则是为了帮开发者确认升级结果而做。2020 年,讲解 Laravel 用法的“BaseLaravel”基础版免费发放,下载量超过 1 万次。他用教学内容补上客户使用工具所需的知识,也拓宽了自己的读者群。
收入和用量一起累积。按麦克里里公开的记录,2020 年收入比上年增长 112%,2021 年 9 月累计执行超过 5 万次。同年 11 月,创业以来的累计收入突破 100 万美元。
产品一多,划定运营范围也变得重要。2021 年他扩大了与外部开发者的合作,但在杰丝·阿彻加入 Laravel 团队后的 2022 年,他又决定一个人运营 Shift。麦克里里减少支持的产品和技术,以降低在多项工作之间来回切换的负担。这是把已经长大的生意收回到自己能继续处理的规模。
他也为不能把代码送到外部服务的客户准备了执行方式。普通的 Shift 只在处理期间把客户代码放在服务器上,任务结束后就删除,但有些组织的规定连上传都难以做到。对这类客户,他提供了在自己的环境里执行升级的“Shift for Docker”。同一套自动化功能,按客户的代码管理条件换一种方式购买。
2025 年,上线以来年度收入增长第一次停住。麦克里里指出,主要原因是像 Laravel 12 这样必须改动的地方很少的版本接连出现,付费升级的必要性随之减弱。他也提到,开发者开始用 AI 直接处理工作的可能性。这正是需要重新审视“随新版发布客户就会回来”这套生意结构的时候。
他先从价格运营下手调整。把停止支持版本的商品移到高价档,最新版本的低价入门价也只限规定期限提供。2025 年 6 月,他扩展了地区定价和本地货币支付,调整了各市场的付款条件。麦克里里估计,如果没有这些调整,那一年的收入会减少约 10%。
他也回看了以前想提高产品使用频率的尝试。Workbench 的桌面应用和命令行工具没有达到预期使用量,被下线了;他注意到问题在于客户得先想起要做什么,再打开工具自己执行。只是把执行环境做得更方便,还不足以让客户有理由再回到产品上。
2026 年 1 月,他启动了“Monthly Shifts”。做法是每月把整理好的代码改进方案以 pull request 发给订阅客户。客户只需审查收到的改动,合并或关闭即可,下个月会收到新的改进方案。产品从客户自己找活来干,变成了先把该做的事送到客户面前。
订阅的购买单位也按开发团队的管理对象来划分。设了面向一个仓库的商品和覆盖多个仓库的不限量商品,再按项目有多旧来区分包含的升级范围。运营多个服务的团队可以把反复出现的维护费用打包支付,并收到每周的依赖更新和每月的代码改进方案。
2026 年 6 月,他加上了“AI Review”的试用版。结构是让原有的 Shift 按规则完成升级,再由 AI 读代码的上下文和 Shift 留下的说明,继续做后续修改。这是把多年积累的自动修改规则和解读上下文的能力结合起来。以前要开发者读说明自己收尾的一部分工作,也被搬进了产品里。
Shift 把开发者每次都要做的升级判断和反复修改,打包成一件可以购买的工作。麦克里里保持把结果直接送进客户代码仓库的做法,同时把使用时机从一次性升级扩展到持续维护。