Happy Monday, everyone!
Annnndddd… we are back from hiatus with Issue #138!
It’s been like 9 months since I’ve last published an Indie Dev Monday issue. That was way too long for me to be away from this amazing indie dev community but I needed to take a step back. Life got way hectic with planning of Deep Dish Swift (which is happening again this year from May 5th to May 7th 👇) and I wasn’t able to balance things properly.
I’m back now and ready to share what our indie devs in this community have to offer!
And this week we we are feature Manuel Kehl! I actually met Manuel in-person at Deep Dish Swift 2023 which was right around the time he was releasing Zenitizer. I didn’t expect it to take 9 months for me to feature Manuel and Zenitizer but… here we go! Hope you enjoy 😊
Also.. are you releasing an app on VisionOS soon? Let me know so I can feature it! Fill out this form before Monday, February 5th!
Deep Dish Swift is the best pizza themed iOS and Swift conference being held in Chicago May 5th to May 7th in 2024. The conference brings togethe Swift and iOS developers of all experience levels and backgrounds in an inclusive environment to share knowledge and experience from a diverse set of speakers. There are talks and a live podcast recording specific for indie development and also two full days of Swift and iOS talks!
Today’s Spotlighted Indie Devs
📆 Today I’m featuring Manuel Kehl.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
1) What is your name? Where do you live?
Hey, my name is Manuel and I currently live in Bonn, a cozy university town in Germany with tons of pretty, old buildings - also known for being the birthplace of Beethoven. I’m originally from around here but have lived outside of Germany for a total of six years (Scotland, London and California) for both university and work.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
Luckily I knew from a fairly young age that I either wanted to become a software developer or rock musician. And, you know… one of them is a proper career while the other involves typing code into a computer and hoping it works… I decided to do the computer thing anyway and so far, I have no regrets 🤓
I initially studied Computer Science here in Germany and for my MSc degree I then had the pleasure to live and study in Scotland which was a truly wonderful experience. After interviewing for a couple roles that were not a great match at the time, I was really fortunate to get an interview at Apple for a job that was perfect for my interests and focus areas. At that point, I had never even had a chance to visit the US, so flying there for a job interview and then later moving there was really surreal and exciting.
In total, I worked at Apple for five years and really loved it (both from a technical standpoint but also because I had the most wonderful co-workers and managers). California is really far from home though and at some point my wife and I decided we’d like to move back somewhere in Europe to be closer to our families. That seemed like the perfect time to also try and “do that indie thing” I’ve been dreaming of instead of looking for another full-time job after the move. Since then, I’ve been doing a mix of freelance work (also iOS dev) and my own app projects (primarily Zenitizer) and I’m loving it!
My interests outside of tech involve “outdoorsy things” (hiking, mountain biking, camping…), music (I sing and play the guitar) and games (both video games but also board/card games - the nerdier, the better). Interests inside tech aside from building apps would be anything to do with smart home and automation. My whole life is 100% run by and dependent on Shortcuts at this point 😅
3) Have you ever considered yourself an indie developer?
I’ve practically started calling myself an “(aspiring) indie dev” the moment I became self-employed. My thought was “as someone who spends a significant chunk of his time pursuing this dream, it is part of who I am, so I might as well start calling myself that”. I was always transparent about the fact that I was just getting started and didn’t even have a single published app, of course, but I think by saying it out loud I made a commitment that helped me stay motivated and actually get Zenitizer ready to ship.
4) What got you started/interested in creating your own applications outside of your “normal” job?
In a way, it’s kind of the other way round for me 😅 I’ve always had that interest and have been working on “side projects” long before I had a “normal job”: my own little tools, scripts and small games during high school and then later lots of open source stuff and other projects while I was in university.
And then, I started working at Apple which made side projects tricky. You can’t publish anything that might be a conflict of interest and since Apple is active in so many areas, that basically involves most things related to tech or coding, so I just didn’t work on side projects during those years. I loved the job itself so much that I didn’t miss side projects too badly, but I also knew that if I ever moved on from Apple, then side projects would have to be a really big priority for me because I had so much “catching up” to do.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
Good question. How do you accomplish that? I’ll let you know if I find out
Seriously though, it’s actually been a real struggle for me last year and, knowing that I need to improve in this area, it’s my number one new year’s resolution for 2024.
One significant change that I made is to actually have a proper roadmap (for all of Q1) that takes into account weekly goals for both Zenitizer and freelance projects, to make sure my goals are realistic and sustainable. In the past year, there was so much new stuff I needed to learn, that it was near impossible for me to estimate how long certain things would take, so I mostly just “played by ear”. That was okay for getting started but is definitely not sustainable, so I try to be strict about my planning now and make sure to leave enough slack for unexpected complications.
This kind of planning actually already forced me to push a few things I was “sure I’d get around to in Jan/Feb” to Q2 of 2024 because they would’ve been way out of scope. Some people have a really good gut feeling for these things but I guess, I just need to force myself to be more systematic about planning.
I also need to constantly remind myself that doing things like accounting, marketing or answering user emails is actual work. As someone with a dev background, I often subconsciously feel that “if I haven’t improved the app today, I didn’t accomplish anything”. That could, of course, not be further from the truth but it’s easy enough to fall into this trap. It’s another area where stricter planning certainly helps. By deliberately allotting realistic chunks of time for these things I perceive them as “real work” - as opposed to just trying to “squeeze them in between development cycles”.
6) Zenitizer - I usually say “Congrats on your recent release!” but its been almost a whole year since I’ve done this 😅 But… congrats on your release of Zenitizer! What got you into the meditation space and inspired you to build Zenitizer?
Prior to our move to California, I had been working at an Apple office in London for a year and as someone who grew up in rural Germany, London was super exciting, but also stressful and a quite overwhelming at times. It was during that time that I started meditating and I enjoyed it so much that I have (more or less) stuck with it ever since.
Back then, I used guided meditation apps which were a great way to learn the basics. But over time, the spoken instructions actually felt like a source of distraction for me and the fixed script felt too limiting, which sparked my curiosity about unguided meditation with just a timer. The stock iOS timer app was too limited, because it lacks recurring intervals bells that remind you to return your focus and the meditation timer alternatives I found were either not as well integrated with Apple’s platform features as I wanted, or simply looked and behaved too different from the vision I had in mind.
Unable to find something that ticked all the boxes for me, I started building Zenitizer to “scratch my own itch” in classic indie dev fashion 🤓
7) Zenitizer - The onboarding of Zenitizer is just fantastic! It’s a very clean and simple flow that helped me easily understand Zenitizer’s features but also granted all the permissions that it needed. I kind of want to use this approach in my apps! Have you changed any of the onboarding since your launch? Do you know how it’s been performing? Do you have any other things you want to try with it?
Thank you so much for the kind words. The onboarding was one of the areas that I put a lot of thought into before the launch, so it means a lot to receive positive feedback about it.
The overall flow has mostly stayed the same and the most significant change I made was to show the one week free trial offer for Zenitizer+ during onboarding. Literally anyone who tried this says something along the lines of “I wish I would’ve tried this earlier” so I did too and it certainly improved my trial start and conversion rates. I was hesitant to do it at first because I generally don’t feel super comfortable asking for money, but I also know I want to spend a significant portion of my working hours improving Zenitizer for many years to come, so I have to treat it like a business. Ultimately, it makes sense for users too because Zenitizer does require payment to unlock all features and it’s better to be upfront and transparent about this to set the right expectations from the start.
8) Zenitizer - I’m not a meditation expert but I think it’s something that you want to do consistently. Do you have any mechanisms to help remind or motivate your users to keep meditating?
I certainly wouldn’t call myself a meditation expert either, but surely a “meditation enthusiast” and after many years of meditating semi-regularly, I am convinced that consistency and regular practice is more impactful than the overall session duration.
Zenitizer offers a number of features to support users in building a regular habit. The most prominent one being the idea of a “daily mindful minutes goal” which is, of course, inspired by the Apple Watch activity rings. If you meet that goal, your streak grows. But if you meditate as little as one minute a day, your streak stays “alive” (neither grow nor break) and only if you don’t meditate at all, your streak will break. This was important to me because I don’t want folks to feel any pressure - after all, my app should make users feel more relaxed and not the opposite.
I recently added a statistics feature in the context of a “year in review” update and I’ve been thinking to actually move away from streaks and focus more on statistics, rolling averages and trends instead. Regular practice is important but ultimately it’s perfectly fine to skip a day or two in between so streaks might not be the ideal way to measure “progress”. I’m not 100% settled on the best design for this and I have a few models in mind. I’ll also keep the streaks feature for those who prefer it but maybe make it opt-in for new users.
Zenitizer also supports daily meditation reminders which are tied to the daily goal. For example, you can choose to only be reminded when the goal is incomplete or when you’re about to break your streak. And with Smart Reminders you can use specific Shortcuts actions to post these notifications based on all sorts of Shortcuts automation triggers. I personally have one set up every time I stop my “Deep Work” focus mode or 2 minutes after waking up in the morning. You could also get a meditation reminder, when you arrive at your favorite meditation spot in the local park. I really love Shortcuts so I tend to think of cool ways I could allows users to utilize Shortcuts to deeply integrate Zenitizer in their personal routines and daily lives.
9) Zenitizer - I see you are using App Store In-App Events! I haven’t used them yet so I’m curious how those are working out ☺️ What is your strategy for using them? Do you think any type of app can benefit from using them?
I have to admit that I’m not 100% sure about their effectiveness because due to the way App Store Connect counts impressions, it is (as far as I understand) impossible to tell if the impression happened because someone was already looking at your App Store page or if it actually was the event that brought them there. If anyone reading this knows more about the topic, please do reach out as I’d love to learn more 😉 I have, on at least one occasion, seen one of my events surfaced in the “Events You Might Like” section when browsing the store from my personal account. I hope this means that it has reached other existing and former users of the app.
If nothing else though, it certainly shows potential visitors of your App Store page, at a glance, that the app is in active development. Most folks probably don’t read the update changelogs but a visually prominent banner for a big update, introducing a new feature, is hard to overlook. For bigger releases, I’ll usually create some kind of “banner artwork” anyway, for social media announcements etc. so it’s not a lot of work to repurpose it for an App Store In-App Event. The code to handle special links for opening the relevant part of your app needs to be in place but tweaking it for new updates is also pretty straightforward.
So I guess my verdict is: In-App Events might help in a number of ways but I don’t have any hard facts or numbers to say this for sure. They’re easy enough to set up though once you get a hang of it, so it’s probably worth trying.
10) Zenitizer - What was the most fun thing to build with Zenitizer? What was the most difficult thing?
Fun thing: I think it’s gotta be all the different ways in which Zenitizer supports Shortcuts. As a big Shortcuts fan myself, it brings me so much joy to ask my HomePod to “meditate with Zenitizer” each morning or run an automation that enables Do Not Disturb, dims my lights and starts a meditation session.
The most difficult thing was probably CoreData esp. when I added iCloud support with
NSPersistentCloudKitContainer. Not because it’s inherently difficult to set up - in fact, I’d argue it’s super easy to get started and you can have basic sync capability in a few hours. However, to actually get iCloud sync working reliably, it took me more than a month of learning, bug fixing and polishing, as someone who hadn’t used CoreData before.
11) Zenitizer - What’s next for Zenitizer? Do you have any fun features planned that you can share with us?
I’m currently working on polishing the visionOS app to make sure Zenitizer runs smoothly and looks and feels great on the new platform on day one. I identified a few areas of improvement during a visionOS lab in Munich last year and I’m super motivated to have these fixed in time for the release of Apple Vision Pro.
The biggest, planned feature update in the near future is the transition from streaks to stats/trends in conjunction with related changes like a meditation session history view and the ability to edit your history as well as adding session notes during and after meditations. Then there’s integration with Apple Music and possibly the ability to allow users to play their own audio files as background audio, followed by SharePlay support and Apple Watch heart rate tracking, but these are among the features I moved into Q2 already, because I realized that it simply wouldn’t be realistic to squeeze them into Q1 😅
12) What’s been the hardest part of being an indie dev? What is the most fun part of being an indie dev?
The hardest part: you need to wear all the hats. The most fun part: you get to wear all the hats.
I’ve only experienced both extremes in my career: highly specialized role in a really, really big company vs. self-employed, solo freelance and indie hacker. Both have advantages and I could see myself in both roles again in the future. The most notable difference though is that, as a specialist in a big company, you basically get to spend most of your working hours doing a fairly specific thing you’ve been hired for and “everything else” is taken care of by others who are specialized on their thing.
As a solo indie on the other hand, I suddenly found myself not only being a developer but also a designer, accountant, marketer, project manager and many other roles, most of which I had zero experience in. There are days when I absolutely hate it and wish I could “just focus on coding again” but more often than not I find the breath of responsibilities to tackle incredibly rewarding and fun and - if nothing else - it has taught me so many things and given me greater appreciation for work outside of my own “coding bubble” ☺️
13) Is there anything else you’d like to tell the indie dev community about you?
Since my responses above are all fairly verbose, I’ll keep this one short: I really love the Apple developer community and enjoy getting to know and connecting with others. You can find me on my own website, Mastodon, Threads, X/Twitter, LinkedIn or Instagram and I’d love to chat, so please don’t hesitate to reach out any time!
14) Do you have any other indie devs that readers should follow / lookout for?;
It’s such an wonderful community and there are way too many people that come to mind (many of which haven been on this newsletter before), but I’ll try to pick just a few:
I deeply appreciate Curtis Herbert (Slopes) for openly sharing his journey of turning his app into a successful business with the whole community. I particularly love how he and his team have managed to keep up the indie spirit despite “growing up as a business”. His talk at Deep Dish Swift was pretty awesome, too, I think 🍕🤓
Another indie dev I met personally for the first time at Deep Dish Swift and have been following closely is Roddy Munro (Classifier, Ceramispace, Söka). He has a newsletter where he shares his experiences and learnings as an indie developer that is really worth reading and he’s just an all around nice guy to chat with and follow.
Also, I’m a huge fan of Rebecca Owen’s work with Chronicling, because it is such a well-designed and refreshing take on the concept of “counting and tracking things” and, of course, it has really great Shortcuts support. She’s been sharing many learnings and milestones of her indie dev journey on Mastodon and you should definitely follow her!
Newly Released and Updated Indie Apps
Here are some newly released and newly updated apps from this past week! If you would like to possibly see your app in this list, please submit your app to the look at me form 👀
Thank you to everybody who made it to this footer! You either spent the time to read or took the effort to scroll 😊
Make sure to visit https://indiedevmonday.com/subscribe to get an email of future issues!
And go to Twitter and give @IndieDevMonday a follow… or multiple follows if you manage more than one Twitter account 😜