My First App Turns One: Achieved $725 MRR and Lessons Learned

I launched my fitness tracking app a year ago, and I'd like to share some key lessons I've learned along the way. Currently, the app has an MRR of $725 with a 50% conversion rate from free trial to paid subscription. Here are the most important insights that might help other Flutter developers:

1. Don’t Waste Time on Features Nobody Will Use

My app is a workout tracking app, and I spent a lot of time developing a community feature. I implemented follow/unfollow functionalities, integrated Firebase Realtime Database for real-time notifications of new posts, and added features like comments, user blocking, report post, and workout record sharing, among others. I never considered that no one would use these features immediately after launch. Focus on perfecting the core functionalities first and gradually add other features. Even after launch, only a few users will use the core features initially.

2. Plan for a Global Release Early

Although I planned to launch globally, I didn’t consider it in the design phase. The UI broke on most screens because English typically has more characters than Korean (since I’m Korean and launched in Korea first). Design your UI with the longer English text in mind from the beginning. Additionally, the US uses pounds, so to properly convert weights between kg and lbs, all numerical types need to be doubles. This seemed obvious, but I had integers in my screens and database, requiring a complete migration to doubles. Also, always store times in UTC in your backend database. I foolishly stored times as local dates, forcing me to migrate all timestamps, which was extremely painful.

3. Use RevenueCat for Implementing Subscriptions

I generate revenue through subscriptions. If you plan to implement subscriptions, use RevenueCat without hesitation. Initially, I tried to implement subscriptions directly using in_app_purchase to save on RevenueCat fees, but it turned out to be a complete waste of time. There are already so many aspects to manage; don’t reinvent the wheel.

4. Polish Your UI to Professional Standards

The UI of your core features should not feel rough or amateurish compared to those of major companies’ well-known apps. This is because your competitors are not amateurs. Most are professionals with dedicated designers and resources, not individuals. Regular users have no reason to download an app that looks amateurish. I meticulously refine every detail of the UI. Just as Michelin-starred chefs wouldn’t serve imperfect dishes to customers but would discard them to make new ones, I strive to perfect the UI. Without at least this mindset, maintaining quality is impossible. Of course, this approach may be subject to personal preferences.

5. Listen to User Feedback

Initially, I added a contact button on almost every page. This allowed users to immediately report any inconveniences. When I received feedback, I promptly fixed the issues and submitted updates to the app store. I also personally responded to users who inquired about the updates. This greatly impressed users. By turning each user into a fan of your app, they will bring in more users. This strategy always works when you have few users at launch.

6. Regularly Collect Feedback on User Experience

Approximately every two months, I display a survey dialog asking users about their current satisfaction and any desired features. This dialog appears on the home screen when the app is opened, allowing me to gather user opinions. If users provide feedback about inconveniences or desired features, I reach out to them individually. Whenever possible, I promptly implement fixes or add features and inform each user that their feedback has been addressed. Again, this strategy is always effective when you have a small user base at launch.

7. Users Rarely Leave Reviews in the App Store

Even if users are satisfied, they seldom go to the app store to leave reviews voluntarily. Therefore, I encourage reviews by adding a message at the end of responses informing users that I would greatly appreciate a review and include a [Leave a Review] button. Users who receive updates based on their requested features are usually inclined to leave a review.

8. Plan Your Marketing Strategy Before Launch

For some reason, I was convinced that my app would be a hit immediately after launch. This was, of course, a foolish assumption. No one was interested, and when you first launch an app, it doesn’t even appear in search results under its name in the app store. I use all my resources for user word-of-mouth and the revenue generated by my app, utilizing Google Ads' Universal App Campaigns (UAC).

9. Carefully Set Subscription Pricing

Your revenue should exceed your advertising costs to sustain growth through ongoing ad campaigns. I set my subscription prices too low without much thought, resulting in advertising costs always exceeding revenue. Analyze the Cost Per Install (CPI) for your app’s core keywords and carefully set your subscription prices.


If you have any topics you'd like, I can write about my experiences with them. I continue to learn and improve continuously. I would greatly appreciate any feedback on my app. Check it out here