Weekly Indie Log #9
Topics: $2000 MRR, new habits and further development of HabitKit 1.6.0.
This week was full of new milestones. First, let's take a look at the hard numbers of my app business in October:
$5822 revenue (+32%)
$1993 MRR (+19%)
2439 subscribers (+20%)
These numbers are absolutely amazing and mark the (current) peak of my app development journey.
Another cool new milestone that was reached shortly after the previously stated numbers: Reached $2000 monthly recurring revenue! After 16 months of hard work from $0 to $1000, only 5 months were needed to reach the $2000. Because I get this question a lot: The growth happened after I released my second app HabitKit. So I can confirm, that sometimes it can be worth it to explore new ideas and enrich your portfolio with new products. If I would have only channeled my energy into further development of Liftbear, I probably would be on $50 MRR still.
New Habits
So, I've started something new this week—I’m cutting back on my YouTube time. And of course, to track this and keep motivation high I'm using my app HabitKit. The goal: More time for reading and coding, less time falling into video holes. It’s a huge change for me and I’m betting it’s going to free up some serious headspace for the things I love creating. This happens to match perfectly with a mantra I try to live by: Prefer creating over consuming. In the end, creating things/products will always feel more fulfilling and make me more happy.
I hope that I manage to fill all those tiles with color, wish me luck! 🤞
Onboarding first beta testers and further development
This week started with a nasty AnimationController
bug in my habit overview list. Every time the SliverList
decided to re-render or re-use one of the items, I got an error that said: AnimationController.forward() called after AnimationController.dispose()
. Had to rearrange a little bit of my logic here to get this fixed.
After taking some time off on Halloween and the following day, I got a lot of tasks done:
Fixed the reordering habits functionality of the app. Forgot to update the code after migrating my database from Isar to Sqlite.
Fixed an exception that appeared in my Crashlytics dashboard after using the latest version in TestFlight: Forgot to handle an edge case where the habit data needs to be loaded from the database before I can subscribe to it.
Wrote an integration test for my streak calculation logic and how it's displayed in the UI. This surfaced a bug that I wasn't aware of, so this was a win-win situation: Got a new test and fixed a bug!
Onboarded the first few beta testers for the latest HabitKit version on iOS. Because I changed so much to the underlying architecture of the app, I want to get some people with real devices and real data to test it before I release it to the App Store / Google Play. Already got great feedback and fixed some bugs!
I will continue onboarding more beta testers next week and hope to release this update soon. All in all, I'm pretty happy with the state of the app right now, but the development of this update has been pretty stressful for me so far. I kind of got out of the habit of continuous shipping while ripping the whole app apart and putting it back together. I know that this was a necessary step to build the base for following updates to the app, but I can say that I'm not a big fan of big updates like this.
That's it for this week, thank you so much for reading! 👋