Weekly Indie Log #41

Weekly Indie Log #41

Topics: HabitKit 1.9, MRR Milestone, Revenue "Rollercoaster"

Check out my apps: HabitKit, Liftbear and WinDiary

Welcome back to this week's issue of my personal indie log, where I try to summarise everything I've worked on or learned this week in terms of my app business. Let's get started!

HabitKit 1.9 - Categories

This week I finally finished the category feature for HabitKit 1.9. This was one of the most requested features in the last couple of months, so I was really excited to finally implement it and (hopefully) make a lot of users happy.

With this update, HabitKit users will be able to group their habits into different categories and filter them on the app's dashboard. There will be a couple of default categories that get seeded into the database when you receive the update. These categories will be: Fitness, Art, Study, Health, Social, Finances, Work, Nutrition, Other, Morning, Day and Evening. I really like the last three because it's a cool idea to structure your habits based on the time of the day. Got a cool morning ritual and want to check off every step as a habit? Just add these habits to the "Morning" category and quickly filter for the relevant habits.

Here are the basic steps I had to take to implement this update:

  • Add the relevant fields to my database classes. HabitKit used an offline on-device Sqlite database and I had to make the necessary changes to existing classes and create new ones for the categories and the mapping class (which saves which habit belongs to which category).

  • I had to add a new field to the "Habit Edit" view so people can associate habits with the new categories.

  • I implemented a "Category Manager" modal where you can select one or multiple categories for a habit, create new categories or edit existing categories. I decided that categories only need a name and an icon, so the edit/create view was pretty quick to implement.

  • A new UI element was added to the overview/dashboard of the app. If you linked at least one habit to a category, a bar is displayed on top of your habit list. When tapping a category, only habits associated to that category are displayed.

Almost every new feature I do for HabitKit is completely optional: As usual, I added a switch to the settings menu to hide the new category feature. I want to keep the app as clean and simple as possible and I think that's a great way to accomplish this. Some users would like to utilise the whole feature palette, some users want it more minimal and just use the bare minimum feature set. This way I can accommodate both needs.

Image

I made some changes to the app's color scheme as well. I changed the background color and added some borders. I think this version definitely highlights the grid colors better and gives the app a more modern look. Sometimes it's great to make some small updates to the UI to keep it clean and modern. I'm sure some people won't like it, but I enjoy it and already received great feedback from other users about it.

I deployed the first version of HabitKit 1.9 to my internal beta track and will see how it works. I'm sure a couple of bugs will surface over the course of the next weeks.

Revenue Rollercoaster

I had to endure some kind of "rollercoaster of emotions" last week: Two of the worst sales days (on Thursday and Friday) in a long time sandwiched by crazy peaks on Monday and Sunday. I couldn't figure out what exactly caused this "collapse". I didn't register any changes on ranking on the App Store and didn't hear about outages or something similar. I guess this will remain a mystery and as long as it doesn't happen again I'm fine with it!

Image

For the end, let's celebrate a small milestone: My app business reached an all-time high of $7,800 MRR. Really happy about the recent upwards trend and I hope it continues like that. Maybe my goal of $10,000 MRR isn't that unrealistic anymore?

That's it for this week, see you in the next one 👋

Did you find this article valuable?

Support Sebastian Röhl by becoming a sponsor. Any amount is appreciated!