And with absolutely ZERO dollars as initial investment.
This is a story of about 3 years ago, I was using an app that kept having problems and all the alternatives where missing some features, so, in true developer fashion I said: “You know what? I can do this myself and I can do it better!”
Only problem I wanted to do it completely for free, like COMPLETELY for free, I didn’t even want to spend money on the domain (which to this day I stil don’t own).
So this is the story (with some very practical advice) of how I built the app that I still use to this day, how more than 30k people are using it everyday and how I monetized it throw ads.
Let’s start.
I knew what I wanted and I knew how to build it. So I just built it. Didn’t waste a lot of time on the best tech stack or the best design framework.
Tech stack: React Native (Expo)
Never regretted this decision, except for a very minor thing which I will talk later, and would suggest this to basically anyone.
Since I wanted to build it completely for free I knew I had to monetize it from the beginning, so I added banner ads and some interstitials in the app.
Tech stack: AdMob
The choice was very simple, AdMob is the only ad-network that was natively supported by Expo and since I didn’t want to write a SINGLE line of native code I went with it. And besides that it is Google right? They should pay well... right?
This is when the game got hard. Although most of the work of my app was done on the frontend, I still needed a backend to do some dirty work (no database yet, just a server to handle some logic). I could have used some fancy node.js thing hosted somewhere for dirt cheap, BUT NO! How am I going to serve the millions and millions of users that of course I will get from day one?
I needed something better, something that could scale automatically, but was still completely free for small volumes. This is when Bill Gates appeared to me in a vision (true story) and said: “Azure.” I felt like I was given the gift of sight for the first time.
Tech Stack: Azure Serverless Functions
Those beasts of functions are completely serverless (cause f**k servers), they don’t cost nothing until you have more than 3 millions (I think) invocations per month and they let me use a real programming language (C#). Perfect solution, final budget, still zero.
This is it guys, this is where my perfect dream of building my dream app failed: App store and Play store submission fees. Google takes 25$ lifetime while Apple wants 99$ for the rest of your life. Yeah, sorry for lying, at the end of the day I had to pay those, but at least our story keeps on going!
Just kidding. Of course nobody used it for weeks. Who did you think I was?
This is (not) marketing advice. I just kept building the app. Add more features, polish things app, improve the ugly UI that you think is pretty, add animations cause animations are awesome.
Okay hear me out. This is (not) marketing advice, but I said to myself: “You know what? Marketing sucks, I would prefer continue building features and improving the app, isn’t there another way?”. This is when Larry Page appeared to me in a vision (I’m serious) and said: “Just give me the money.” And so I did. But wait, I can’t, because I wanted to do this completely for free I can’t spend money on ads.
This is when I remembered something else: I’m just built different. My car (which was actually my mother car) insurance was expiring, but you usually get 30 days of leeway before having to renew so this is what I did: delay the payment for the insurance as much as you can, roll that money into paid ads, acquire a lot of users, use the money you generate from those users to pay back the insurance, keep the users and then use the money generated by those users to pay the ads for the next month.
And it f*****g WORKED!
Well, to be honest it took 3 months to repay the insurance (did I forget to mention it was just 70 bucks?), but in the fourth month I had positive cash flow that I could reinvest into paid ads, and since I was spending ABSOLUTE ZERO on everything else that was all profit.
Growth has never skyrocketed like crazy, probably because I was only doing paid advertising, but at some point Google and Apple started ranking my app pretty high in my category so I was also getting something like 1500 organic downloads, which was HUGE for me.
At this point I wanted to add push notifications to the app, so I needed a database to store the notification token, this is when Jeff Bezos, okay I’m kidding, I will stop, but not before I tell you that Elon Musk actually appeared to me in a vision, okay that’s enough. I’m sorry.
Tech Stack: Azure CosmosDB
Non-relational database that I’ve never used before, but learned in less than a day completely server-less (cause we know why) and you already know the best part: COMPLETELY FREE for low volume work, which is exactly what I needed.
The zero budget dream is still alive and strong.
Why is this the end? Cause I wanted to finish it on a nice number and ten sounds like a nice one. Also this is going on a bit too long and I’m skipping over a lot.
The app kept growing and the the revenue from the ads finally started to amount to something, nothing crazy, but with 30k daily users, I made around 7k $/month.
After a while the traffic grew to the point where I started to pay for both the functions and the database, but this is more than good to me, because their cost is more than covered by the revenue generated by the app (it is now around 400 $/month).
To be honest I love this story, but it’s also true that not every product can be built like this, for instance the one I’m working on right now, LlamaFinancial, requires a bigger and better infrastructure from day one, but I still managed to find ways to spend as little as possible.
And this is basically it. Not really the end of the story since so many things happened, so let me know if you want Part 2: The revenge of the Tech Stack and if you have any other specific question.
Cheers.
P.S. wanted to add some screenshots as proof, but don't know how to do it, so whatever.
Maybe I overread it but what’s the name of your app?
This post should’ve started with
“wanted to add some screenshots as proof, but don't know how to do it”
Yeah that sucks
interesting post. I have been struggling with the problem of marketing my products. May I know how much time did you put in the ads step?
How much time in which sense? Time creating the ads, or time running it?
I mean the time you put in to research about how to post ads, find keywords, prepare your ads content, monitor ads traffic,...
Oh nono, we don't do that here.
I just did some screenshots of my app and used FacebookAds to create the video for it.
No research. No preparing.
This is so cool
What a great post and congrats on massive daily usage! What app is it? I'm super curious to check it out.
Very inspiring and motivating
Thank you very much for the post - very insightful and great answer for my post => https://www.indiehackers.com/post/who-else-is-bootstrapping-or-has-bootstrapped-a-project-with-an-ad-driven-business-model-8ca4e316d8
Man what a post! I always just skimmed through the posts I read, but did I just read every word in this post? Marketing sucks!
Thanks man!
I must say your post made me laugh 😂 especially the part about the mini Ponzi scheme for the insurance repayment 😅
What is the app if I may ask?
Ps: I'm on for the Part 2
YES! I'm so happy that I got a laugh out of you, I had a laugh writing this.
I'm lucky to get to call this guy my co-founder :P
No seriously though, I had never heard the full story here and wow - it says a lot about you as an entrepreneur...truly a grinder.
Growth doesn't happen over night, but with enough consistency, you can get there.
Thanks for sharing @filippo_b and for continuing to be an inspiration to me and other indie hackers around the world!
Nice story. I'd love to hear what your experience with React Native was.
Ever thought of writing that "Part 2: The revenge of the Tech Stack"?
Summary:
I have a small startup with me as the only developer (yet). We run a social media app that has a feed which is very similar to TikTok, and it has chat rooms and instant messaging. We have about 100,000 monthly active users, about 40,000 weekly users, and about 9,000 daily users. There are ca. 200,000 posts made per month, and about 700,000 messages sent per month.
The biggest problem is the revenue. Initially we have used Admob to monetize the app: Interstitials and banner ads. During that time, we have seen a huge spike of new users and made $30,000 just off of ads from Admob in that month. However, Google declared the traffic as "invalid", closed our account and never payed us the money. Let me stress this: We do not pay for any traffic AT ALL. All users that download the app come from the Play Store search. So it's totally unclear to us what Google is referring to. However, they don't have a support to contact, and going to court against Google seems a bad idea. So at this point the financial problems started.
Then we moved to Applovin but they payed terrible. Then we moved to IronSource but their ads were way too user unfriendly. Then we moved to Applovin again, but this time with native ads. They closed our account without warning because we implemented the native ads in a way that violated their terms (unknowingly - at least we think that was the reason).
Then we moved to Appodeal but their Native ads don't work well. We have a fillrate of about 13% and most of the times, the action-button that should open the advertisers' website, just does not do anything when the users clicks it.
We are now running out of money. I'm going to take a debt of perhaps $50,000 to save the app. With that money, the first priority is to fix the ad issue.
Edit: Some more data.
The home page gets 2.3 million views per month. We value privacy high and do not have data of how many posts users scroll through on the home page.
The home page has an average engagement time of 23 minutes.
The chat page is opened 1.3 million times per month and has an average engagement time of 19 minutes.
The overall average engagement time per active user is 33 minutes per month, with an average of 5 sessions and 5min 40sec engagement time per session.
Biggest geos: 60% of the active users are from the US, 6% from Nigeria, 5% from Brazil.
----------------------------------------------------------------------------------------
TDLR: My startup runs a social media app very similar to TikTok. We have 100k monthly active users but keep struggling to monetize it. We need native ads and are now running out of money.
----------------------------------------------------------------------------------------
My plan is to pay someone that is experienced in this field, and let him implement a custom prebidding system for native ads. The advantages I see are:
We no longer need to rely on the system of e.g. Appodeal that does not work properly (action button not clickable for example, see summary)
We can add any ad-partner we want. If we use the bidding system of Appodeal, we are limited to the partners they offer.
We don't need to pay Appodeal a percentage, so we keep a bigger part of the money.
To my understanding this is a bunch of work though. This system needs to be tested thoroughly before put in production. Also you will need to establish sort of a "custom contract" with your ad partners such as Meta Audience Network...?
Anyways, let me give you some data. As said, with Appodeal we TRIED to show native ads, and during that time we made ca. $75 per day from native ads. We had a fillrate of 13%. If I assume that we can get to a fillrate of about 80% with our own bidding system, that would mean $450 per day.
With optimizations such as [no-fill --> re-use one of the previous ads] and the fact that the action-button would always be clickable in contrast to how it was with Appodeal, that would mean about $500-$600 per day.
----------------------------------------------------------------------------------------
My questions:
Would you agree with the above estimate ($500-$600 per day)? If not, what is your estimate?
Do you think this is even the right path to go (the custom bidding system for native ads)? If not, what would you do?
THIS IS WHAT THE REDDIT POST SAYS
Your app has 30k active users but i saw a reddit post where the user's app got 1 million downloads but only 9k daily active users but still managed to get 30k dollars in ad revenue, he didn't shared the app name but it was a chat application. His majority audience is from USA, so you are from Italy where advertisers pay less, is that the actual issue
that definitely is part of the issue, but I feel the original post author very much where working with ad providers is a total nightmare