Building a Profitable, Bootstrapped AI App to over 50,000 Users
How I took a side project to 50,000 users and hundreds of paying customers and how to grow a business on the internet
The past year, a project I started as a joke amassed tens of thousands of users, reaching thousands of dollars of ARR. This is what that story looks like in a picture.
Originally built as a joke to show my friends, I’ve seen firsthand how products evolve once real users start pulling your product off the shelves. Since a year ago, I’ve had to deal with overloaded servers, ran customer support, and learned everything there is to know about Stripe billing. What I ended up with is a product built on nights and weekends with tens of thousands of users making hundreds of dollars a month, profitable and owned and operated 100% by myself.
In this post I’ll be explaining a little bit about what I’ve built, how to build online products that work, and how to make money while doing it. I believe engineers who can ship things themselves are well-equip to start and grow lasting businesses on the internet. If you are an engineer or are interested in a technical deep dive on what I’ve setup, consider subscribing for when I explain it in a later article.
The Product
Last year I created Presidential AI, a bot which plays custom AI-generated voices using text-to-speech in Discord voice calls. I was inspired when I saw skits on Tiktok of the U.S. presidents playing video games with each other and thought - what would the product version of something like this look like? If Midjourney was the Discord app for images, what would the app for audio be?
Back then, 11Labs was just taking off, and they just released a v0 of their API. I felt like that was all I needed to build something funny to show my friends. I built a small demo which let users pretend Joe Biden was in their group chat and posted it online.
A week or two later, I showed a friend in-person a demo of what I’d built, and it didn’t work. What happened? A few groups of friends had found the bot I made and started using it every day to make fun of each other, and quickly exhausted the compute credits I’d initially bought. That’s when I realized I had built something interesting that people might want, and I had to keep the party going.
Scaling
Going from a demo to a product on the internet that can sustain itself and capture value isn’t trivial. Many VC-backed startups fail without building a single product that people actually find valuable. In this case, I had built something that people had at least found entertaining enough to bring offline, which is what motivated me to finish building it out.
Talking to users is easy on Discord because you directly have the usernames of your users that use your product. Building a self-serve website that uses Oauth works the same. If you aren’t proactively asking your users for feedback by emailing or messaging them out of the blue, you’re wasting time and missing out.
The second step was the hardest- I had to slow down my power users from using all the compute and taking down my app. I quickly built metered usage which ended with a paywall and eventually a Stripe checkout link. To my surprise, people actually started paying for what I built.
Experimenting with pricing was the next step. I went back and forth on this: could I build a high cash-flow product with this, or should I only charge as much as I can to keep the lights on? I ended up deciding to not worry about my take-rate earlier on, which ended up being the right decision. For software products that scale at zero marginal cost, the goal should always be to grow as fast as possible, and start extracting value once already built. For me, this came down to choosing between $5 dollars of profit a month from a handful of users, or $2-3 a month for hundreds of users. If you can afford to wait, it usually pays off.
Iterating
All software on the internet lives and dies by two variables: how much you listen to users and how fast you ship. It was important to understand why users were using what I built, why users were churning, and to quickly build features that bridged the gap.
One example of this was the paywall users were running into - unfortunately AI-generated audio is expensive, and users were quickly hitting a monthly-limit and getting frustrated enough to churn. I could only afford to generate new audio at scale for paid users, so there was no way for free users to continuously use my app. They primarily used it to make fun of their friends, so I ended up building a free-forever “roast” feature to use pre-generated insults free of charge. I shipped it and noticed a huge-drop off of churn. The longer free users could use what I’ve built, the longer they have to decide if they want to pay.
Learnings and Conclusion
I firmly believe that any skilled engineer can build something on the internet, scale it to millions of users, and monetize it. It all starts with the YC adage - building something people want. From there, it matters how much you talk to your users and build what you believe they’re asking for.
This is something I’ve built on nights and weekends over the past few months. I recently left my job as a software engineer to build things myself full time, where I’ll have the bandwidth to build larger, more sophisticated projects. If you’re interested in staying in the loop or have questions about how to build things, please reach out at {first_name}a@gmail.com.
Smart thinking Svapnil 👍🏻 keep it up !
This was a great read - learned a ton from this! Thanks for sharing Svapnil!