For the last 4 days, I’ve been refreshing the RevenueCat dashboard like an addict. A couple of free trials that did not convert, a bit of patience, and it finally happened! My first paying customer for one of my apps 🥳 I’ve made multiple six figures on the internet. I had companies paying tens of thousands of dollars in a single transaction. But this 5 EUR felt different. It gave me the same adrenaline rush as my first freelancing gig back when I was still in school. On one hand, I understand that this is the novelty effect. Everything new feels exciting. But on the other hand, this is the first sign that the new app-dev journey has potential. As the startup gurus say, unless they swipe the card, you don’t have a validated idea. This gives me more confidence to pursue the challenge to build and launch 10 apps by the end of the year. I have already launched 3 apps. However, that’s quite far from the 10 apps goal, and there is less than 6 months left. Moreover, Expo published the story about my 10 apps challenge on their blog. That’s even more pressure on me to deliver. That made it hard to prioritize between working on a new app, or monetizing one of the apps that already has some organic downloads. Eventually, I decided to spend a couple of days adding monetization to the AI Girlfriend app. It is currently bringing around 200 organic downloads a month. That’s not much, but even with these numbers, I know I could generate $60 to $160 monthly. Again, this is not life-changing money. But that’s not what I am looking for at the moment. Not that I wouldn’t want it. But I am keeping it real. The 100 MRR is that early validation that can make it easier for me to spend more time on this side quest. And it can be a great motivation boost. It’s just a game 😀 Anyway, back to some practical shit. Let me walk you through the simple strategy I used to implement monetization. Here I am talking about monetizing the app using In-App Subscriptions. I didn’t want to reinvent the wheel, so I went with the recommendation from Adam Lyttle. (while you’re there, subscribe to Adam’s channel. He shares a ton of valuable info for indie app devs). I went with 2 plans:
I used RevenuCat to integrate InApp Subscriptions in React Native. I created the subscription products on the App Store. Connected them to RevenueCat. Installed the react-native-purchases library and set it up. For the paywall, I used the Paywall builder provided by RevenueCat. I didn’t want to invest time in building my own paywall. This is a thing that you better not reinvent the wheel, especially at the beginning. I chose a paywall template, adjusted the text and images and that’s it. I had a working paywall that I can display in my app, and I can also edit remotely from the RevenueCat dashboard. For the first version, I decided to keep things simple. I didn’t optimize when and where to show the paywall. I just had a simple button on the profile page that would show the paywall. I didn’t even gate-keep any feature in the app. Both free and paid users have the same experience. For the first version, my goal was to simply pass the Apple Review process. When it comes to paywalls, Apple is quite strict. I submitted a new version, and a couple of hours later, guess what? Of course, Apple rejected it. Luckily, it was a small issue with Terms and Conditions links from the metadata on the App Store. Nothing related to the paywall. Thanks to RevenueCat 😀 After fixing the issue on the App Store, I resubmitted it for review, and this time it passed with no issues. Perfect. Now, at least I have a way for people to pay. At this point, I was not expecting anything to happen because the paywall was not shown automatically. I knew that nobody would go to the profile page and press “Go pro” themselves. To my surprise, 1 user did that on the first day. That pushed me to work on the next version of the paywall. Actually, not on the paywall, but on the onboarding experience. The thing is that one of the best places to show the paywall is after the onboarding. Sounds a bit counter-intuitive, I know. You would want to first give value and only then ask for the upgrade. However, that’s what’s working in the industry. If you have a great onboarding experience that reinforces the reasons why the user downloaded the app, and shows them how the app will solve their problem - they are ready to buy. Based on the State of Subscription Apps, 50% to 70% of paid users are subscribing at Day 0. I worked for a couple of days on the onboarding experience. At the end of it, I am showing the paywall. That’s it. I am quite happy with how it turned out. I shared a video on X if you are interested in seeing it. After releasing the new onboarding experience with the paywall, I started seeing some activity. During the first week, I had 60 new users, 3 trials, and 1 paying user. The next low-hanging fruits to improve the conversions:
Back to the grind. I hope you enjoyed this one. I plan to share more stories from the trenches as I am starting this new journey. Cheers, PS. I’ve been missing from YouTube for the last couple of weeks. I am not leaving, don’t worry. The last 4 weeks have been quite busy at our Bootcamp. We are working with 25 students and helping them master React Native in 8 weeks. It’s intensive, but it’s also a lot of fun. |
Stay up-to-date with the latest React and React Native news and become a better Mobile Developer
notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey, notJust Developers, Last week App.js Conf happened at Kraków, Poland — organised by Software Mansion, with Expo as the main partner and notJust.dev proudly joining as a Media Partner among others. The event was packed with exciting announcements from the Expo and React Native communities. Let’s dive into today’s highlights! Legacy Architecture is Frozen Future of react native runtime API...
notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, Last week, Software Mansion released ExecuTorch v0.4.1. That delivers even smoother on-device AI execution with a wide range of LLMs into your React Native app. Let’s dive into today’s highlights! React Native ExecuTorch v0.4.1 Released 💯 Radon IDE v1.6 published 🔥 Re.Pack v5.1.0 Out 🚀 Sponsored by Clerk Clerk is a complete suite of embeddable UIs, flexible APIs, and...
For the last four years, I’ve been focused 100% on YouTube and our courses on notJust Dev. This left almost no time for me to work on my apps. Even though I had many great ideas, it would take too long to bring them to the market. However, things are changing fast. Now, with the power of AI, I can build amazing apps 10 times faster. That’s why this year, I decided to invest more time building a portfolio of mobile apps. The goal is to launch 10 new apps by the end of the year by spending no...