Tell HN: I made $1000 with my app and now making $500/mo
Hey HN,
I'm mostly a lurker on HN who's always super inspired by other people's small project that end-up making money. (Huge fan of Ben Stoke's Tiny Project [0])
After being burnt-out in big tech, I decided to write my own weightlifting app and set myself a humble goal of reaching $1000 in total proceeds. See [1] for my initial launch post.
I've now surpassed that goal and am now making about 500$/mo by selling premium features in the app. Android version is coming soon too. Doing the whole thing end-to-end (code, launch, marketing, support) was super gratifying and taught me a whole lot. I have to admit that I got almost teary eyed the first time someone bought one of my IAPs.
I'm not making a killing out of the app, and that was never the goal. But the personal satisfaction I got out of it was worth everything. I can't pretend to have derived any life lesson that applies to everybody from this, but this whole mini-journey was worth it for me, and I hope it will be for you too, should you embark in a similar one.
185 comments
[ 5.2 ms ] story [ 227 ms ] threadWell done again, and wishing you continued success with your app!
Initially I would use Instagram and follow some hashtags and like people's posts and follow them to get them to look at my profile (I got about 150 downloads that way).
One day I decided I wanted to try out ReactJs and so I made a web calculator version [0]. The goal was to make something better than the current incumbent (Black Iron Beast). This turned out to be super helpful. It usually ranks number 2 on most Google queries for 5/3/1 calculators and lead to about 200 downloads for the app.
I also started using Apple App Store Search Ad with their $100 credit and honestly the result are great. Having your app show up first for some keywords is a huge boost.
[0] https://fivethreeone.app/calculator
I’m building Conjure[1] a habits, behavior and goals platform, so I track everything from ‘habits’/‘productivity’/‘quantified-self’ type keywords, to people looking for alternatives to XYZ product name, to specific questions I’ve answered before (eg organization, time tracking, building exercise habit, achievement, etc).
[0] https://syften.com
[1] https://conjure.so
Any reason you had to use ReactJS embedded in Flutter, I imagine you could of done that with Dart
[0] https://fivethreeone.app/calculator
But it tends to not look all that great
I'm at least decently familiar with the first half of "end-to-end" but don't have a lot of experience in the back half.
Was there something cool/unintuitive you learned while having to figure out how to market and support your weightlifting app that you'd be willing to share?
The app store is a big, noisy marketplace, so having other channels to get people to try your app and give you ratings is crucial. That really help me get through the initial wall and now my app is showing up pretty high in the search result.
How were you able to promote this? Thanks.
[0] https://github.com/flutter/flutter/issues/91605
I hope you’ll share in the future what your usage/downloads look like as well as where you make money, between the two phone types.
I'll try to share some data on the Android version compared to iOS. My gut feeling is that the rate of purchase for IAP is going to be much lower, but I think it could help with getting the app known (thus leading to more iOS downloads as well).
Let me know if there's anything you'd like to see in there.
Personal opinion:
A toggle to have the program at the top would be handy. Also I don't really need the plate details for each set.
The program is not totally responsive.
As someone who does a very basic 5/3/1 I was a bit lost with all the variations, it's very complete!
Also a separate question, I do wonder what was your thought process for coming up with the idea for the app? Do you keep somewhere a list of app ideas, or was this one you have been dreaming about some time?
Keep going and I wish you much more success!
That being said I'm almost done making the app look great on Android. I'm just waiting for some Material 3 widgets to be done by the Flutter team.
My thought process was simple : I don't like any of the apps on the App Store for 5/3/1, so I'm going to make my own!
Can you elaborate on IAPs (or other insights)? The app is free, yes? Then what can users buy while using the app?
Features include:
- Planning and scheduling your whole 5/3/1 cycle
- Charting your progress
- Rest timer with notifications
- Automatic plating calculation
- Calculating your next cycle based on your performance
- Notes associated with each sets
- Home screen widget showing your your current and upcoming workouts
- Lbs/kg support
Optional paid features:
- Customize which plates you're using and change your barbell's weight
- Customize templates assistance work and define your own exercises
- Beyond 5/3/1 templates and options, from Joker Sets to FSL, Pyramid and much more!
Right now there are 3 Premium Features : - Custom Plating [0]: Which allows users to define which weight plates they have for the calculator - Custom Assistance [1]: Which allows users to customize the assistance sets they have - Beyond 5/3/1 Pack [2]: Which contains stuff from the Beyond 5/3/1 book.
The thinking was that most of the stuff from the base app, you can easily do with the tools already out there (e.g. the black iron beast calculator), but that people would pay for new capabilities.
[0] https://fivethreeone.app/custom-plating [1] https://fivethreeone.app/custom-assistance [2] https://fivethreeone.app/beyond-pack
Custom Plating
Custom Assistance
Beyond 5/3/1 Pack: Joker Sets, First Set Last, Boring But Big Challenges...
What are you thinking next?
How did you market your app and how long did it take you to build out the app?
I've built an app as well while I was doing my regular day job and recently quit the day job, mostly due to being burned out working in big tech as well.
During my break from work, I decided to try to get my app sales up, but it's challenging. (During my best month, I think I got up to $200/mo but it's more like $100/mo right now.) As many others before me have found, marketing is the key, and I'm still learning that game. So, $500/mo is really good stuff.
That said, building the app and making my users happy is something that is incredibly gratifying, and something that was missing in my previous 9-5.
I live in the bay area, and though my rent is a lot more than $500/mo, if I put $500/mo more toward rent I really could have a much nicer apartment, for example. Or it could be the monthly payment for an EV.
$500/mo can be a nice quality of life boost even in the most expensive parts of the world even if it's not enough to live on just that.
Back when I was doing my PhD, on a $2300/mo research assistantship salary in Boston, I also built a webapp that got me ~$200-300/mo for several years and close to $900/mo for one of those years. That alone allowed me to do lots of things I wanted to do at the time (e.g. ~2 overseas vacations a year and several self-supported long distance bike trips). Savings wasn't a huge concern at the time because I knew I could get a decent-paying job post-graduation.
The app took me about 300-400 hours to build. Regarding marketing, I've said it elsewhere in the thread but here it is again:
- Created an instagram account for the app and started following some tags. I liked post on the tags and started following some users to get them to look at my profile. Got about 150 downloads from that.
- Made a 5/3/1 Calculator website. The goal was to make something useful to boost the SEO of my domain. What really ended up happening is the calculator ranks usually number 2 on Google and then users see the link to the app in there and click on it. Got about 200 downloads from that.
- Apple Search Ads gives you $100 credit. Got a bunch of downloads with this
- I used Bing Ads credits but wasn't too impressed with what I was getting from there though
Did you do anything to promote the app? (other than posting it here and organic searches on the app store)
See my other comment for what I did to promote the app [0].
Short version: Instagram account to follow people and have them look at my profile. Useful website with a link to my app as "content marketing" and Apple Search Ads.
[0] https://news.ycombinator.com/item?id=31508328
Be aware that you may find premium feature take up/download ratio lower on Android.
That's what I'm expecting. I'm mostly doing the Android version for my friends and for the "brand awareness" of the app. I'm curious to see how that'll turn out.
At a 4% safe withdrawal rate what you've built is the equivilent of saving $150,000.
You should be EXTREMELY proud of yourself, and never underestimate the power and value of the asset you've built
[EDIT] Thanks got it!
Essentially, those 6K a year is the equivalent of a 150K portfolio
$150k in 20 years is still exactly $150k and produces returns.
A 20 year old mobile application has no value whatsoever.
Difference is apples and hand grenades.
the analogy is imperfect, because presumably the OP is spending some time to generate that app income; it's not totally passive.
It's an impressive creation but this is not a good way to value it.
Saving $150,000 is, too.
Which is more likely to lead to true self-sufficiency? Barring other possibilities, the savings. But given human response to positive feedback loops, a successful dev often becomes a more successful dev overtime. Hence, I favor the "first app I wrote that made $500/mo" is more significant.
You can’t just say your app makes $500/mo without giving the time period for how long it has been making that. Generally if it’s not revealed it’s because it hasn’t been very long.
For the SEO could you go after Gym Noobs like me who know nothing about different programs, teach them what 5/3/1 is and then lead them to your app? Or is that too crowded and difficult?
I made the valuation at 5x yearly profits.
You could model the specifics differently, of course: maybe we assume the $500/month is a peak and it tapers off exponentially somehow. What sort of capital returns does this correspond to?
I haven't done the maths, so I don't know, but the fact that I can even ask the question means I've learned something from your comment that I didn't know before!
However, as others have hinted at, assuming this app will continue to generate $500 a month forever at roughly the same risk premium as a perpetuity from any remotely reputable seller is dubious at best. Major banks and insurers that have existed for several centuries have histories of selling instruments like these that actually have paid out their promised coupon value for many decades and even centuries in some cases. In contrast, the Apple App Store has existed for almost 14 years. The 5/3/1 strength program has existed for 13 years.
What are the chances this app can generate the same revenue for the next 30 years? You can't rely on just keeping the existing users due to the way lifters tend to program-hop eventually. Anyone doing 5/3/1 today is unlikely to be doing it in 30 years. Then you have to factor in the possibility of competition. I'm kind of surprised the author of the 5/3/1 books has never bothered to commission an app and apparently only distributes official spreadsheets for generating a program template and workout log. If he ever does, any unofficial app seems unlikely to survive.
Not to take away from the work. I think this is the right idea. The developer wanted something that didn't exist and made it. Whether or not you ever acquire a single customer other than yourself, I think that is worth doing. But if anyone in this comment thread truly thinks it is worth $150,000, offer him $150,000 and I'm sure he'll be glad to sell.
I don't think it works.
I think the best bet by far is either to optimize your job salary (switching after 2-3 years, being proactive, trying leetcode, persuing FAANG) or following FIRE.
$500 would be 5h per month freelancing.
And to be really fair, he would first calculate all hours invested and he needs to calculate/estimate further time involvment.
For creating your own small company/business, thats probably a doable thing but still much more high risk than anything else.
You don't even have to do a small app. You can do the next Uber or Airbnb. Or you can do something that yields the same monthly amount you get from your FAANG but have the advantages of having no boss and working for yourself. And if you decide you want to do something else, you can sell it for a nice amount, while quitting your job doesn't yield you any money.
But after having failed at a startup, I realized that there is an inner sense of validation that can come from being able to successfully create a small business.
And I won't ever be able to remove that goal from my bucket list no matter how financially successful I am.
Even if that amount is too much for 2022 and 2023 due to higher inflation, during other years, it will be too conservative. So it evens out. Plus there’s recessions too. So the 4% is an average.
Side note I think 'Tell HN:' is for problems, vs. 'Show HN:'
At least for Show HN there is an official guideline [0] which mentions:
> Show HN is for something you've made that other people can play with. HN users can try it out, give you feedback, and ask questions in the thread.
Does anyone know whether there is an official `Tell HN` guideline? The HN guidelines and FAQ pages don't specify anything as far as I could tell.
[0]: https://news.ycombinator.com/showhn.html
Anyway I only mention it because I looked at this post and I was like "what happened/what went wrong".
'show' is when the point of the post is to show off the project; whereas here (partly by the fact that it is 'tell'!) the point is sort of tangential to the actual project, it's just an example of the topic rather than the topic itself.
How much daily "mental load" does something like this take? Are you able to work on it when you want, and otherwise ignore? Any tips for starting a small project that doesn't require ongoing mental effort?
Being a user of the app myself reassure me that it's working and that even if there might be bugs, it's probably working well for the vast majority of folks.
Part of what attracted me to software engineering in the first place was an interest in "how things work", and being able to move between levels of abstraction (e.g. I know how IP, DNS, TCP, HTTP and JSON works, but most of the time I can just treat it as "sending objects"). So it was a bit of a eureka moment for me to realize that running a company is really just expanding the levels of abstraction that you operate with. It doesn't matter how well you code if people can't understand the user interface, so I got an interest in UX and usability. But it doesn't matter how user friendly it is, if it doesn't solve the right problem for people, so I got an interest in product development and customer research. It doesn't matter how good a product is if people never hear about it, so I got an interest in marketing and sales. And it doesn't matter how well I do all of that if I can't pay the bills, so I got an interest in pricing and monetization strategies.
Juggling all those needs, and trying to shape the company and all its aspects into a cohesive whole is just as demanding and interesting as doing the same for a software project - it's just expanding the scope of which requirements and concerns you bring into the equation. For me at least, it's also been very rewarding to do the whole thing end-to-end, and it's felt like more of a natural extension of my ever-broadening interests than I would have expected. Bookkeeping can be as annoying as debugging, but in the end I'm really grateful that I understand how each detail works.
And closing with...
> Bookkeeping can be as annoying as debugging, but in the end I'm really grateful that I understand how each detail works.
... hits home for me, haha. Never thought I was going to understand - let alone like - bookkeeping. What maybe helped, was me making my own bookkeeping app, it also forced me to understand the rules.
The variation on it I like to emphasize is: it also doesn't matter how "readable" your code is if the user/customer finds it broken, so stop trying to optimize for readability as the primary criterion.
{correctness, usability} to the customer > code maintainability > code readability
If your code is correct but unreadable or disorganized, it will be hard to extend.
If your code is incorrect, but organized and readable, it will be easy to fix.
If your code is incorrect and organized, but unreadable, it will be hard to fix and extend, but easy to make it more readable, thus more extensible and fixable.
If your code is incorrect and disorganized but readable, it will be hard to fix and extend, but easy to refactor, thus more extensible and fixable.
And code is always incorrect.
The state you want to reach is "fixed", not merely "fixable". I've seen too many people applying your reasoning staying perpetually stuck in the broken-but-"fixable" state because they prioritize "readability" higher, and I'm saying your users don't care about that. They want a fixed (read: correct) state.
> And code is always incorrect.
This makes a strawman of my argument.
And my argument is that readable code is the most direct route to that state.
> > And code is always incorrect.
> This makes a strawman of my argument.
It would if it was actually part of my argument, and not a cheeky parting shot.
Here's the straightforward version. In my experience, the most productive way to approach code is to assume that at some point a bug will be found, or you will have to extend it. You may disagree, of course, but my views all flow from this assumption.
Which has absolutely nothing to do with my point.
Nobody is arguing whether you should keep your codebase readable. The question is whether that should be prioritized over correctness.
The situation is: your codebase is already as readable as possible, but you've now discovered a problem for which you're failing to come up with a readable solutions. [1] I'm saying, when that happens, you need to be willing to just bite the darn bullet and go with the ugly-but-correct solution so that your customers actually get their problems addressed. Don't just leave it as a dangling "known issue" or leave some silly hack in there just to "keep the code readable". Your customers/users won't applaud you for keeping your buggy codebase readable. Of course you can feel free to make a ticket or leave a TODO in case you're hitting a blind spot or someone better comes along in the future. But for now, solve the dang problem first, because your customer isn't paying you for source code, but for the end product. (Well, unless your customer is paying you to ship source code to them, in which case you should ignore me.)
[1] To be crystal clear (and hopefully avoid more strawmen...), I'm saying you (and your team/company/etc. as applicable) need to actually do your best to implement a readable solution first, and THEN fall back to an unreadable one if you fail to do that despite your bona-fide attempts. For some reason (maybe it makes it easier to argue over the internet? maybe it's just more convenient?) people love to strawman "you should prioritize correctness over readability" as "you should go with the first solution you like whether or not it's ugly; feel free to leave a TODO for some poor soul to polish it later". Which has emphatically never been what I've been saying, but that's what people appear to respond to.
Sure, there are times when I don't know or don't have the time to come up with the best structured solution, but have to put something out there that just works. I would argue that's where you should strive to make it even more readable, because the uncertainty means the odds of having to revisit it later are even greater.
When it comes to any code I produce (with the exception of some learning projects), I try to keep it: effective, efficient and simple. In that order.
Effective is essentially what you were saying about correctness and usability from the user perspective. Peter Drucker would say to be effective is to "do the right thing." This is always an outward focused item. Does it impact the user in the right way? Does it solve the right problem? Etc. This is hands down the most important thing. Nothing else matters if you're doing the wrong thing.
In contrast, efficiency is to "do the thing right." Once you're doing the right thing, minimizing your costs, increasing your quality, making it so your code doesn't "consume the whole world" all fall under this category. Poor efficiency can negatively impact the effectiveness of your code. "It does this really cool thing, but it takes far too long to load so I can't use it."
Then lastly, keep it simple. That is not to say ignore the natural complexity of the problem, but rather to keep the solution to the essential complexity of the problem. Keeping things only as complex as they need to be covers a whole lot of dimensions in software. It makes things more explicit and understandable, it helps with code readability, and code re-usability. It decreases the surface area of what needs to be maintained. All good things for the health of the dev and the project.
It's all in that order for specific reasons. They move outside in. As the dev, I'm not the most import person with respect to the code I'm writing. The user is, and so the code needs to be purposeful to them (efficacy). Efficiency is more about the product, making sure it works properly. Keeping things simple, although it impacts efficacy and efficiency, is largely a positive for me and helps me maintain sanity.
I think it's important to note that it's all of these things, not just one of them. We'll approach tradeoffs in a prioritize way, but we're striving for the three of them. Obviously a very difficult task. But I find that approaching engineering this way has helped me grow a lot as an engineer.
Anyway, first time post here. Your comment made me think of this. Thanks for coming to my tedtalk.
> Keep the solution to the essential complexity of the problem.
Thanks!
Relevant to today's discussion, did you use SwiftUI or the ol reliable UIKit?
Here's the url for those who are looking:
https://apps.apple.com/us/app/five-three-one/id1560266240
And understandable with your limited time!
There are a ton of great apps to be made, with better UIs and functionality than existing entrants that aren't made by big companies because they don't offer enterprise-sized war chests and moats. Can't make enough to pay for a bunch of MBAs, managers, and SEO, Creative, and Engineering teams, so they don't get made. But it's certainly enough for a few driven people.
You have a new fan. Hearty congratulations and wish you a continued success!! You are an inspiration :-)