Ramen Profitability Reflections
拉面盈利能力反思

Overview

概述

I quit my job as a Software Developer in the fall of 2019 to pursue building Shopify apps full-time. My goal was to attain financial freedom, with the first major milestone being ramen profitability.
我于 2019 年秋季辞去了软件开发人员的工作,开始全职构建 Shopify 应用程序。我的目标是实现财务自由,第一个重要里程碑是拉面的盈利能力。

By spring of 2023 I had finally reached ramen profitability. I built 7 Shopify apps, a few AI-related products, and a couple crypto-related products. Only 3 of these products are still live and profitable today.
到 2023 年春天,我终于实现了拉面的盈利。我构建了 7 个 Shopify 应用程序、一些 AI 相关产品和一些加密相关产品。其中只有 3 个产品至今仍处于运行状态并盈利。

I’m older, fatter, and poorer. Was it worth it? I guess so. It wasn’t easy for me, but if given the option to choose again I would choose to do the same.
我年纪更大了,更胖了,也更穷了。它值得吗?大概吧。这对我来说并不容易,但如果再给我一次选择的机会,我会选择做同样的事情。

Building cool stuff is not the same as building a business

打造酷炫的东西与创建企业不同

My initial plan was to just copy existing apps, but make them better and cheaper. I browsed through the Shopify App Store for apps with low-to-mid ratings and I’d note the biggest complaints in their reviews, and then I’d build what I thought to be a better app.
我最初的计划是复制现有的应用程序,但让它们变得更好、更便宜。我浏览了 Shopify 应用商店,寻找中低评级的应用程序,并在他们的评论中注意到最大的抱怨,然后我会构建我认为更好的应用程序。

The bulk of my attention went into learning and trying out new tech. I fully expected failure for my first few apps and that’s what I got. In return, I got to experiment with and incorporate new tools into my stack that interested in me, tools that I had long yearned for and deemed optimal for shipping in the long run, tools like Kubernetes, GraphQL, Svelte, and design systems (Polaris).
我的大部分注意力都花在了学习和尝试新技术上。我完全预料到我的前几个应用程序会失败,这就是我所得到的。作为回报,我必须尝试并将新工具纳入我感兴趣的堆栈中,这些工具是我长期以来渴望并认为从长远来看最适合交付的工具,例如 Kubernetes、GraphQL、Svelte 和设计系统(Polaris)等工具。 )。

Unfortunately, the enthusiasm for new tech lasts only so long. I built 2 Shopify apps (related to product-page customizations) with this mindset, and after being live for months I only got a couple paying customers. I think one of them even forgot they had installed and were paying for my app, because I didn’t see them use it at all. It didn’t even cover the cost of the databases, so I shut both apps down.
不幸的是,对新技术的热情只能持续这么久。我本着这种心态构建了 2 个 Shopify 应用程序(与产品页面自定义相关),但上线几个月后,我只得到了几个付费客户。我想他们中的一个甚至忘记了他们已经安装了我的应用程序并正在为我的应用程序付费,因为我根本没有看到他们使用它。它甚至没有涵盖数据库的成本,所以我关闭了这两个应用程序。

It made me question whether I actually wanted to build a business or if I just wanted to play with new tech. I wanted both.
这让我怀疑自己是否真的想创业,还是只是想尝试新技术。我两个都想要。

The hardest part for me was how little guidance there was, I took for granted the structure employment provided. Every approved pull request, every meeting, every paycheck… these were all signs that I was doing the right thing. And if I wasn’t doing the right thing I could always just observe what someone else was doing, or ask for help.
对我来说最困难的部分是指导太少了,我认为所提供的就业结构是理所当然的。每一个批准的拉取请求、每一次会议、每一份薪水……这些都表明我正在做正确的事情。如果我没有做正确的事情,我总是可以观察别人在做什么,或者寻求帮助。

But none of this is available when you go solo. The only validation you’re doing something right in business is when someone pays you, and no one was paying me. I could write the cleanest code, use the latest tech, design the best UX, build the coolest features, but it meant nothing in terms of business.
但当你单独行动时,这些都不可用。唯一证明你在商业上做得正确的事情就是有人付钱给你,而没有人付钱给我。我可以编写最干净的代码,使用最新的技术,设计最好的用户体验,构建最酷的功能,但这对业务来说毫无意义。

Product is often not the limiting factor (marketing matters)

产品通常不是限制因素(营销问题)

I built my first profitable product in the spring of 2021. It was a pickup/delivery scheduling app (Pickup & Delivery Buddy) targeted towards local businesses affected by COVID lockdowns.
我在 2021 年春天开发了第一个盈利产品。这是一款提货/送货安排应用程序 (Pickup & Delivery Buddy),针对受新冠疫情封锁影响的当地企业。

For the first couple months I had no paying users, despite a steadily increasing user base. I talked to customers, added features and fixed bugs, but it made no difference. The biggest shift, initially, came when I changed my pricing plans. It took a few tries but ultimately what worked for me was a freemium model, the key being to design the free tier not as an actual plan but more as an acquisition strategy.
在最初的几个月里,尽管用户群稳步增长,但我没有付费用户。我与客户交谈,添加了功能并修复了错误,但这没有什么区别。最大的转变最初发生在我改变定价计划时。我进行了几次尝试,但最终对我有用的是免费增值模式,关键是将免费层设计为一种收购策略,而不是一个实际计划。

Having found a working pricing plan I figured all I had to do then was to continue building stuff, because if you build it they will come, right?
找到可行的定价计划后,我想我所要做的就是继续建造东西,因为如果你建造它,他们就会来,对吗?

So I continued building and I continued getting customers, but I found it odd that growth didn’t seem correlated to feature releases. Growth was linear and big feature releases didn’t change the trajectory at all. Even not releasing features didn’t change it. How much of my growth could be attributed to my product and how much to the app store’s algorithm?
所以我继续建设,继续吸引客户,但我发现奇怪的是,增长似乎与功能发布无关。增长是线性的,重大功能的发布根本没有改变轨迹。即使不发布功能也没有改变它。我的增长有多少可以归因于我的产品,有多少可以归因于应用商店的算法?

The biggest increase in growth trajectory (for both users and customers) actually came when I updated my app listing to better fit certain keywords. A day of copywriting and keyword research did more for my growth than weeks of design and development. I reached $1k MRR with this app by 2022.
当我更新我的应用程序列表以更好地适应某些关键字时,增长轨迹(对于用户和客户)的最大增长实际上出现了。一天的文案写作和关键词研究对我的成长比几周的设计和开发更有帮助。到 2022 年,我通过这个应用程序获得了 1,000 美元的年收入。

Marketing really matters

营销确实很重要

After building a few more apps I found myself getting a lot more comfortable shipping fully built products from scratch, but the one thing that still bugged me was marketing.
在构建了更多应用程序后,我发现自己可以更轻松地从头开始交付完全构建的产品,但仍然困扰我的一件事是营销。

“Marketing”, or distribution, in the Shopify App Store is largely dependent on playing nice with the algorithm. You build a good product, write a good app listing, get good reviews, and the algorithm will handle distribution for you. For the most part it works, you actually can just build it and they will come.
Shopify 应用商店中的“营销”或分发很大程度上取决于算法的良好发挥。您构建了一个好的产品,编写了一个好的应用程序列表,获得了好的评论,算法将为您处理分发。在大多数情况下,它是有效的,你实际上可以构建它,他们就会来。

But I wanted to take off the training wheels and experience how marketing actually worked, outside the Shopify app store.
但我想卸下辅助轮,在 Shopify 应用商店之外体验营销的实际运作方式。

My first experiment involved building a pair of AI-assisted copywriting apps (Copybuddy), both would be near identical in features but one would launch on the Shopify app store and the other on the web. Long story short both apps failed. I did no marketing for both apps post-launch. And after a couple months the web version, to my surprise, actually acquired a couple users, though none were paying. And the Shopify version got about 20 users with a couple paying.
我的第一个实验涉及构建一对人工智能辅助的文案应用程序 (Copybuddy),这两个应用程序的功能几乎相同,但一个将在 Shopify 应用商店上启动,另一个将在网络上启动。长话短说,这两个应用程序都失败了。我在发布后没有为这两个应用程序进行任何营销。几个月后,令我惊讶的是,网络版实际上获得了一些用户,尽管没有人付费。 Shopify 版本拥有大约 20 个用户,其中一些用户付费。

In the complete absence of marketing I got no customers, and it was only thanks to the app store’s algorithm that I got any at all.
在完全没有营销的情况下,我没有得到任何客户,只有通过应用商店的算法,我才得到任何客户。

My second experiment was a ChatGPT wrapper. I saw another solo founder on Twitter build one and make over $10k in a single week. I figured I could do the same.
我的第二个实验是 ChatGPT 包装器。我在 Twitter 上看到另一位独立创始人建造了一个,并在一周内赚了超过 1 万美元。我想我也可以做同样的事情。

So I built “AI Chat Bestie”, tweeted about it on Twitter and launched on Product Hunt. It got quite a few users but only $100 in the couple weeks that followed. It didn’t help that these were lifetime deals either. There was no way I could compete with his 80k+ followers. Not only was he outputting content daily, but the brand and following he created over the years served as a powerful moat.
因此,我构建了“AI Chat Bestie”,在 Twitter 上发布了相关推文,并在 Product Hunt 上发布。它获得了相当多的用户,但在接下来的几周内只有 100 美元。这些都是终身优惠也无济于事。我根本无法与他超过 8 万的粉丝竞争。他不仅每天输出内容,而且他多年来创建的品牌和追随者也成为了强大的护城河。

It was refreshing to learn later in his newsletter that this was not his first AI product, and that his first AI products flopped, despite having the same reach. Building a good product that solves a problem actually matters, but marketing is just as important, often times more important.
后来在他的时事通讯中得知这不是他的第一个人工智能产品,而且他的第一个人工智能产品尽管具有相同的影响力,但还是失败了,这令人耳目一新。打造一个能解决问题的好产品实际上很重要,但营销也同样重要,而且往往更重要。

I applied these learnings to my AI text to speech product, beepbooply. I researched keywords, wrote blog posts, created video content, listed on AI aggregators, and got thousands of users, though only a handful are paying, for a total of $300 MRR as of today. I should probably do something about that conversation rate.
我将这些知识应用到了我的人工智能文本语音转换产品 beepbooply 中。我研究了关键词、撰写博客文章、创建视频内容、在人工智能聚合器上列出,并获得了数千名用户,尽管只有少数用户付费,截至今天,我的 MRR 总计为 300 美元。我或许应该对对话率采取一些措施。

But timing matters most

但时机最重要

It’s really hard to pin the success or failure of a product on a single variable, it’s often more the case that it’s due to a combination of multiple factors. But still, I really think timing plays a vital role in whether a product will succeed. Launch a product too early or too late and it’ll fail unless you apply tremendous effort and skill, but launch at the right time and it’ll feel like everything just falls into place.
很难将产品的成功或失败归咎于单一变量,更多情况下是多种因素共同作用的结果。但我确实认为时机对于产品是否成功至关重要。太早或太晚推出产品,除非付出巨大的努力和技巧,否则它就会失败,但在正确的时间推出,就会感觉一切都井然有序。

A large part in why Pickup & Delivery Buddy worked, I think, was because of the timing of COVID and lockdowns. Businesses had to adjust with less foot traffic, and pickup/delivery solutions were in demand.
我认为 Pickup & Delivery Buddy 之所以能发挥作用,很大程度上是因为新冠疫情和封锁的时间安排。企业必须适应人流量减少的情况,并且需要取货/送货解决方案。

I also spent a couple months building a post-purchase upsell app. It made use of a newer Shopify API so I figured there’d be less competition. But the market was smaller than expected and I launched late, only to find a competitor that was already well established. Despite having the same core features and being in the same categories in the app store, they grew and I didn’t.
我还花了几个月的时间构建了一个售后追加销售应用程序。它使用了更新的 Shopify API,所以我认为竞争会更少。但市场比预期要小,而且我推出较晚,却发现了一个已经很成熟的竞争对手。尽管它们具有相同的核心功能,并且在应用商店中属于相同的类别,但它们都在成长,而我却没有。

I think the same story can be applied to my ChatGPT wrapper. When my competitor launched his product it went viral. By the time I launched a week later there were already 5 other imitators and we were fighting for scraps.
我认为同样的故事可以应用于我的 ChatGPT 包装器。当我的竞争对手推出他的产品时,它迅速传播开来。一周后,当我推出时,已经有 5 个其他模仿者,我们正在争夺废品。

But what really made this clear to me was my latest Shopify app, a checkout customization app. Again, it made use of new Shopify APIs, but this time I was one of the first apps to launch in the category. It was slow at first but then Shopify rolled out the features for all Shopify Plus merchants and my growth exploded. Within a month of the public roll out, my number of users quadrupled, and I reached ramen profitability. It continues to grow to this day.
但真正让我明白这一点的是我最新的 Shopify 应用程序,一个结账定制应用程序。它再次使用了新的 Shopify API,但这一次我是该类别中最早推出的应用程序之一。一开始很慢,但后来 Shopify 为所有 Shopify Plus 商家推出了这些功能,我的增长呈爆炸式增长。在公开推出后的一个月内,我的用户数量翻了两番,我的拉面也实现了盈利。直到今天它仍在继续增长。

It's ok to stop half way

中途停下来也没关系

One of the best things about working alone is that the choice is always yours. If I don’t like what I’m working on then I can just stop. If I wanted to make money working on things I don’t like I should have just stayed employed. In hindsight, that may have been the better choice, but the possibility of creating an automated internet money maker was, and still is, too great to pass up on.
独自工作的最好的事情之一就是选择权始终是你的。如果我不喜欢我正在做的事情,我就可以停下来。如果我想通过做我不喜欢的事情来赚钱,我就应该继续工作。事后看来,这可能是更好的选择,但创建自动化互联网赚钱机的可能性过去而且仍然很大,不容错过。

My most challenging app was Subscription Buddy, a Shopify app for product subscriptions. It took me 4 months to build and it was the most complex app I built alone, by far. Not only was there the standard merchant-facing part along with the storefront-facing part, but it also involved building separate task queues for processing recurring payments, scheduling payments, retrying payments, handling failed payments, email notifications, updating orders, subscriptions, and all that good stuff. It was also my first time launching multiple interdependent services on a Kubernetes cluster, with the app server, redis, and another server for queues/workers. I know there are far easier methods, and there was absolutely no need to optimize this much for an app that wasn’t even launched yet, but this was a personal technical achievement and win for me.
我最具挑战性的应用程序是 Subscription Buddy,这是一款用于产品订阅的 Shopify 应用程序。我花了 4 个月的时间来构建,这是迄今为止我独自构建的最复杂的应用程序。不仅有标准的面向商家的部分和面向店面的部分,而且还涉及构建单独的任务队列来处理定期付款、安排付款、重试付款、处理失败的付款、电子邮件通知、更新订单、订阅和所有这些好东西。这也是我第一次在 Kubernetes 集群上启动多个相互依赖的服务,包括应用程序服务器、redis 和另一个用于队列/工作线程的服务器。我知道有更简单的方法,而且完全没有必要为尚未推出的应用程序进行如此多的优化,但这是我个人的技术成就和胜利。

It was a completed and working product, but due to many miscommunications and some minor storefront/UI-related bugs found during the app submission process, it was rejected enough times that my ability to submit was suspended for a month.
这是一个已完成且可运行的产品,但由于在应用程序提交过程中发现了许多沟通不畅和一些与店面/UI 相关的小错误,它被拒绝了足够多次,以至于我的提交能力被暂停了一个月。

It was frustrating to say the least, having so many months of work just trashed. But after a week I realized this was a blessing, I had absolutely no desire to maintain such a beast of an app. Just spinning up the development environment required 7 terminal tabs, and fixing potential queue-related bugs would not have been fun.
至少可以说,这令人沮丧,这么多个月的工作就这么白费了。但一周后我意识到这是一种祝福,我完全不想维护这样一个野兽般的应用程序。仅仅启动开发环境就需要 7 个终端选项卡,并且修复潜在的与队列相关的错误并不有趣。

I’ve started and stopped so many projects at this point, but each one has provided me valuable first-hand experiences and lessons.
到目前为止,我已经开始和停止了很多项目,但每个项目都为我提供了宝贵的第一手经验和教训。

I think it’s also worth mentioning that it’s extremely hard to compete and win when you’re building something half-heartedly. Putting in even 8 hours a day will be a struggle, but your top competitors will gladly put in 16 hour days because it’s play for them.
我认为还值得一提的是,当你三心二意地构建一些东西时,竞争和获胜是极其困难的。即使每天工作 8 小时也会很困难,但你的顶级竞争对手会很乐意每天工作 16 小时,因为这对他们来说很有趣。

Next steps

下一步

Ramen profitability is still far away from ideal, and the fact that most my income is dependent upon a single platform is concerning as well. But it is what it is.
拉面的盈利能力仍远未达到理想水平,而且我的大部分收入依赖于单一平台这一事实也令人担忧。但是它就是这样啊。

Maintaining my existing products takes relatively little effort. I do a bit of customer support and fix bugs/add features here and there, but I’m mostly waiting for Shopify to release their newest batch of features and integrations, which should be coming soon. My primary focus in the meantime is writing, reflection, and learning how to build on the blockchain, Sui specifically.
维护我现有的产品需要花费相对较少的精力。我做了一些客户支持并修复错误/添加功能,但我主要等待 Shopify 发布他们最新的一批功能和集成,这应该很快就会到来。与此同时,我的主要关注点是写作、反思和学习如何在区块链上进行构建,特别是 Sui。

Blockchains are the most exciting technology I know of. The idea of a globally distributed, decentralized, and permissionless database (ledger) that enables ownership of digital assets on a scale never seen before is something I would love to invest a chunk of my life into.
区块链是我所知道的最令人兴奋的技术。全球分布式、去中心化和无需许可的数据库(账本)的想法能够以前所未有的规模实现数字资产的所有权,这是我愿意投入一生大部分时间的想法。

Problem is that it’s super early right now, with lots of infrastructure that needs to be built. I think we may still be a few years out before we start seeing some mainstream adoption. Still, nothing software-related excites me more than blockchain technology. AI is neat but looks fundamentally limited by large expensive models that only big tech has keys to. That’s also part of why blockchain tech appeals to me. It is early, but being early to the party can be fun too.
问题是现在还为时过早,有很多基础设施需要建设。我认为我们可能还需要几年时间才能看到一些主流采用。尽管如此,没有什么软件相关的东西比区块链技术更让我兴奋了。人工智能很简洁,但看起来从根本上受到只有大型科技公司才有钥匙的大型昂贵模型的限制。这也是区块链技术吸引我的部分原因。虽然时间还早,但早点参加聚会也很有趣。

Every day is full of possibilities, nothing is set in stone, and I intend to keep it that way as much as I can.
每一天都充满了可能性,没有什么是一成不变的,我打算尽可能地保持这种状态。