<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Building A Profitable App Business]]></title><description><![CDATA[I'm an independent app developer from Germany trying to build a profitable app business in public and on my own. I share all my learnings and lessons about app development, marketing, and productivity.

]]></description><link>https://sebastianroehl.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!g7Yu!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c343459-6370-4045-9d8a-f9a115fbc38f_1024x1024.png</url><title>Building A Profitable App Business</title><link>https://sebastianroehl.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 06 Sep 2026 11:08:21 GMT</lastBuildDate><atom:link href="https://sebastianroehl.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Sebastian Röhl]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sebastianroehl@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sebastianroehl@substack.com]]></itunes:email><itunes:name><![CDATA[Sebastian Röhl]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sebastian Röhl]]></itunes:author><googleplay:owner><![CDATA[sebastianroehl@substack.com]]></googleplay:owner><googleplay:email><![CDATA[sebastianroehl@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sebastian Röhl]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Building An Indie App Business #111]]></title><description><![CDATA[September Is The New January]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-111</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-111</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 06 Sep 2026 05:49:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0eHv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0eHv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0eHv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0eHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221436,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/214132256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0eHv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0eHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99b28478-a06f-4700-8435-8f65cff194dc_1792x1008.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Last issue ended with the goal to keep the train rolling, and it did: HabitKit 1.17.1 is out on both platforms, 1.17.2 is handed in, 1.17.3 is already finished, 1.18.0 is on TestFlight, and FocusKit 1.8 finally made it to the Mac App Store. So many version numbers, so many updates. Feeling really good about it! Sales-wise this was one of the best stretches of the year (the New Year&#8217;s Hype of course). And I found out what happens when a new AI model drops with an extra token reset: I lose a day of my routines to it. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>Four Monday releases in a row.</strong> HabitKit 1.17.1 went live on iOS on Monday morning, that&#8217;s the fourth Monday release in a row (1.16.0, 1.16.1, 1.17.0 and now 1.17.1). This is the performance update I told you about last issue: with a previous update I added a bug that quietly degraded the performance for a lot of Android users, mostly on older devices, and it&#8217;s finally fixed. Android followed on Wednesday, as a slow phased rollout that I push up a couple (or more) of percent every day. So far it&#8217;s been super smooth, no complaints at all, which is exactly what you want from a release that&#8217;s mostly about fixing your own mistakes.</p><p><strong>1.17.2 is handed in, 1.17.3 is already done.</strong> 1.17.2 (Korean, Hindi and the in-app language picker) went to Apple on Tuesday, the Android builds followed on Thursday. And on Wednesday I built 1.17.3 in one go: Japanese and Hebrew as new languages, an option to turn haptics off, an option to hide the new Notes feature completely, and two fixes for drag and drop. Some people reordered their habits by accident, so it&#8217;s harder to trigger now and you can disable it completely. Plus a small history bug where building a habit, quitting it and building it again got stuck. Here is the pattern I noticed: one big release, then about three small ones. The small ones keep the train rolling and give the users quick wins, and I get more time to make the big stuff really good.</p><p><strong>1.18.0 is on TestFlight.</strong> The big one is in testing and polishing since Monday. It&#8217;s all about upgrading completion types: multiple completions per day, units, decimals and goals. Track &#8220;2.5 km&#8221; or &#8220;8 glasses of water&#8221; instead of only tapping a square. This is a lot of groundwork and it has a LOT of edge cases, so I let Claude write a big batch of integration tests for it. I want to cover as many weird cases as possible, because the worst thing that can happen is a user trying the new feature and hitting a broken experience on the first day. The 1.17.x releases were a nice bridge, now I can fully focus on making this one super good.</p><p><strong>FocusKit 1.8 is out, and it brings the Mac app.</strong> After the rejection and some back and forth between Apple an me, FocusKit 1.8 finally shipped on Tuesday, with the Mac version I&#8217;ve been dogfooding since June. Happy that this is finally out. FocusKit is a much smaller app than HabitKit, it reliably makes around $500 per month, and I think there is a lot more potential in it. The release itself was interesting for another reason: it was so relaxed compared to a HabitKit release. Smaller user base, smaller fallout if something breaks, and a revenue dip wouldn&#8217;t be scary either. Turns out release anxiety scales with your user base. Who would have thought.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9TuO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9TuO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9TuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1227434,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/214132256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9TuO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!9TuO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b87a34-7bbf-4625-b348-cd795f3cef03_1280x800.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Follow-up emails, round two.</strong> I let Grok Bot go through my complete email history again, find every single user who asked for Quit Habits, and draft a personal follow-up that the feature landed. This already gave me a couple of great reviews and some really happy replies. I will do this for EVERY release from now on. It&#8217;s honestly one of the highest leverage things I&#8217;ve added to my release process all year, and it costs me two minutes.</p><p><strong>The numbers are moving.</strong> MRR is growing, the last-28-days revenue is going up, and this August was way better than last August. I can&#8217;t prove what exactly caused it, but I think the release train plus showing up on X every day are doing their thing. Feels like the hard work of the last two months is starting to pay off, and it&#8217;s super motivating to keep pushing on the $100k roadmap. I also handed in a featuring nomination in App Store Connect this week. HabitKit has never been featured by Apple, not once in three years. Who knows, maybe some day.</p><p><strong>Grok Bot gets its own app.</strong> New plan for my AI setup: Grok Bot takes over FocusKit completely. I&#8217;m hooking it up with my Mac Mini so it can act as a remote agent with Cursor and run the Simulator there. FocusKit is the perfect training ground, smaller app, relaxed releases, and it doesn&#8217;t interfere with my focus (hehe). Meanwhile I focus on the HabitKit roadmap. Sometimes it feels like building a REAL company with REAL employees: one agent runs the small product, another one codes with me on the big one. Also finished the first HabitKit marketing video this week, based on the faceless &#8220;grid fills up while the skill improves&#8221; format I&#8217;ve been planning. More on that when I know if it works.</p><p><strong>Leftover tokens, the aggressive edition.</strong> Fable 5.1 came out Tuesday night and brought an extra weekly reset with it. My normal reset is on Wednesday, so suddenly I had a full budget to burn within about 20 hours. I started long-running audits of HabitKit and FocusKit: bugs, problems, cleanup and refactoring opportunities. Great use of the fuel. But Fable 5.1 is super token hungry, I hit my session limit within an hour, and I was so busy feeding threads that I forgot my piano practice and my journaling for the day. First miss in a long time. More on that in the insights. The bookkeeping helper I recently told you about also got restarted, this time step by step and only with the things I really need, exactly the lesson from last issue. So far no AI slop monster.</p><p><strong><span>Two new frontier models in one week.</span></strong><span> Anthropic released Fable 5.1 on Tuesday, and OpenAI followed with GPT-6 Astra on Thursday evening. Astra is the big one though. I got access on Saturday and immediately let it analyze my HabitKit 1.18.0 branch for regressions, UX problems and performance issues. It came back with a list of 40 issues, ALL of them valid, including some weird edge cases I would have never thought about. Then it finished the rest of the 1.18.0 development branch, found a couple of flaws in my $100k roadmap and built most of my bookkeeping helper in one go. It's super slow, but crazy intelligent. Funny thing: a couple of days ago Fable 5.1 was the non-plus-ultra, now it feels almost "dumb" in comparison. It's still great for the lighter tasks though, and that's the combination I'm running now: Astra for the hard stuff, Fable for everything else. The catch: I burned 50% of my weekly usage in one day, so I can't keep this up all week. I already dropped my Cursor Ultra down to the $60 plan, which is plenty for my Grok Bot usage right now. My AI stack pivots every couple of months anyway, I stopped fighting it.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lMc1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lMc1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 424w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 848w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 1272w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lMc1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png" width="1456" height="1126" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1126,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5353284,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/214132256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lMc1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 424w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 848w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 1272w, https://substackcdn.com/image/fetch/$s_!lMc1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f8436bf-878e-4171-bf07-3c7388022114_2670x2064.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128161; Indie Insights</h2><p><strong>Coding was always a means to an end.</strong> I&#8217;ve said it before and I&#8217;ll say it again: I never really liked coding. It was always the thing I had to do to get the product I wanted. This week it hit me how much that changed. I basically got rid of coding by hand, I delegate, I decide, I review. For the first time I feel like I&#8217;m in charge instead of being the guy who types. And the self-employed part matters here too: living with intention only works when you own the products. If you lend your time to other people for money, you get some of the freedom, but not all of it. Own products plus AI that does the coding, that&#8217;s the combination I always wanted and didn&#8217;t know how to name.</p><p><strong>THIS is the hot phase of the year.</strong> Habit trackers live from the January wave, everybody knows that. But January is decided now. Whatever I ship in September, October and November is what people will find in December, and the ratings and reviews from now are what they will see on the App Store page. So this is the time for the big updates, the groundwork and the marketing experiments, not December. I have a release rhythm that works, a roadmap I trust, two AI models as coworkers and one bot running the small app. No excuses. If you build something seasonal, look at your calendar and find your September. It&#8217;s probably earlier than you think.</p><h2>&#127919; Goals for Next Week</h2><p>Fifth Monday would be nice:</p><ul><li><p>Release HabitKit 1.17.2 on both platforms</p></li><li><p>HabitKit 1.17.3 approved and ready for release</p></li><li><p>1.18.0: finish the integration tests and get it into beta test</p></li><li><p>Hopefully play around with Astra</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #110]]></title><description><![CDATA[Every Day Looks The Same, And That's The Point]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-110</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-110</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 30 Aug 2026 06:52:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WUfk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WUfk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WUfk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WUfk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:219888,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/213141188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WUfk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WUfk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54ddc6a-d10f-4fb0-8bbf-b9a03fc36bed_1792x1008.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! HabitKit 1.17.0 (Quit Habits!) is out on both platforms, 1.17.1 is in review, 1.17.2 is lined up, and work on 1.18.0 has started. On top of that, the $100k roadmap got its first real work week, and Grok Bot made 34 users happy in two minutes. Not everything was sunshine though, more on that in the insights. Let me tell you about it.</p><h2>&#128736;&#65039; Development Corner</h2><p><strong>Three Monday releases in a row, check.</strong> I pressed the button on Monday morning and released HabitKit 1.17.0 to iOS. That&#8217;s the Quit Habits update I&#8217;ve been telling you about, and it&#8217;s finally in the wild. These habits are checked by default, and you only take action when you actually failed. Think &#8220;Quit Smoking&#8221;: the day only breaks when you had a cigarette. One of the most requested features of the past months, and I&#8217;m really curious how people will use it. Android followed a day later, and pushing that phased rollout to 100% is my weekend homework, because as we learned in #109, nothing else moves on Google Play while a rollout is running. But hey: three Monday releases in a row. The train keeps rolling.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>1.17.1 is in review, and it fixes some nasty bugs.</strong> This one is all about performance. I found some really nasty bugs that came in with the redesign and quietly degraded the performance for some people, basically only noticeable on very old Android devices. Exactly the kind of problem that never shows up on my own phone, which makes it extra sneaky. It&#8217;s fixed now, and together with the swipe gesture for view modes and the drag and drop reordering, this should be a really nice update. Handed it in on Thursday, and I want it to follow 1.17.0 as fast as possible.</p><p><strong>1.17.2: HabitKit is learning Korean and Hindi.</strong> The next one is already lined up too. 1.17.2 brings two new locales, Korean and Hindi, two very large user groups of HabitKit. I let Claude do the intial translation, then a third party AI reviewed the translations, because shipping a language I can&#8217;t read at all is a little bit scary. I also added an in-app language picker, so if someone prefers English anyway, switching back takes two taps instead of a trip to the system settings. Hope they like it!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WfY0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WfY0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WfY0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/213141188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WfY0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WfY0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b4e45f9-8a79-4241-83a3-2453a0df4b2b_1792x1008.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Work on 1.18.0 has started.</strong> Made good progress already, and this one is an important step for unlocking the next chapter of HabitKit. I&#8217;m also playing with feature gates for the first time: a feature gets finished, tested and shipped inside the app, but stays hidden behind a switch. The actual release is then just flipping that switch in the code. Need to research more about feature gates and how to realize that. I feel this could be handy for feature that I want to test long-term over many months, like the cloud sync feature I will be working on soon.</p><p><strong>The $100k roadmap got its first real work week.</strong> In #109 I wrote the big goal down in public: $100k per month within 12 months. This week the actual work started. I spent a whole morning generating reports in App Store Connect and the Google Play Console and let Claude analyze all of it and turn it into actionable advice. Meanwhile, revenue was pretty great the past couple of days. I can&#8217;t prove the connection, but I think the release train and showing up on X every day are doing their thing.</p><p><strong>34 happy users in two minutes.</strong> I shared this one on X already, but it deserves a spot here. I let Grok Bot go over my support emails of the past two years and find every person that requested the Notes feature. Then it drafted a personal message for each of them: the thing you asked for is here now. 34 users made happy, two minutes of my time. I would have NEVER done that manually. Now I want to repeat this for every feature request I implement. It might even win back some users who churned because a feature was missing back then. Next candidate: everyone who asked for Quit Habits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-cOT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-cOT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-cOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:233008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/213141188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-cOT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-cOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2303414f-07b0-41e2-abb7-ea91b65621ba_1792x1008.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.8 wants to be in movies.</strong> The rejection from #109 turned out to be a request for a video: Apple wants to see the Mac version in action before they approve it. Super annoying, but arguing doesn&#8217;t ship updates. So I recorded the video, wrote a lengthy text about what the app is and why it belongs on the App Store, and handed everything back in. Now we wait. The review dance continues.</p><h2>&#128161; Indie Insights</h2><p><strong>The curse of discipline.</strong> I read a quote this week that really stuck with me: &#8220;The curse of discipline is that every day looks the same. The curse of being undisciplined is that every year does.&#8221; I&#8217;ve been thinking lately that my routines make time fly by so quick, and short term that&#8217;s true. Run/Lift, work, ship, repeat. But if I keep at it with my health, business and learning habits, my life will look completely different in a couple of years, while every undisciplined year just looks like the last one. The same logic made me realize why I&#8217;m happy I started my business in my 30s and not in my 40s: it&#8217;s Zinseszins, as we say in Germany. Compound interest. Start early, let it accumulate, and everything gets easier later, because you iterate on a foundation instead of building one from scratch next to a full life. Huge respect for everyone bootstrapping with kids or a mortgage in the background. If you can start before life gets busy: start.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W6Sq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W6Sq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W6Sq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:368642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/213141188?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W6Sq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W6Sq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d33b70b-fd8d-4e59-814b-cef1982824b8_1792x1008.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Sometimes you need a hard reset.</strong> Last week I told you my motivation and discipline haven&#8217;t been this good in a long time. Well, this week reality checked in. In the middle of the week I completely derailed for two days: YouTube, scatterbrain, zero focus. When I dug into the why, I found two things. First, I got a little bit stuck with HabitKit. The release cycles felt too short and small, and this somehow felt like I&#8217;m moving too slow and have too many things going on, can&#8217;t explain it better, weird feeling. I even considered switching to a monthly cadence, 12 big updates per year, before I remembered that the weekly train is exactly what keeps the small fixes and quality-of-life improvements flowing. The cadence stays. Second, I simply had too many social activities in one week, and they ate the calendar space my routines live in. The fix was not a new system or a new tool. It was a hard reset: routines back in place, sleep prioritized, fewer evenings out, ONE important project in focus. If this log sometimes reads like I&#8217;m shipping like a machine, know that the machine sputters too. What matters is how fast you notice it and reset.</p><p><strong>Don&#8217;t let the AI plan your whole project.</strong> When you start a side project with AI, don&#8217;t let it collect ALL your requirements upfront, write a huge plan and then push through the whole thing in one go. That leads to chaos, slop and confusion. What works: slow and deliberate iterations, only with the most important stuff that you REALLY need right now. Funny enough, that&#8217;s exactly how I&#8217;ve always worked on HabitKit, I want to see every change live and call the shots after every move. The irony is that AI makes big plans so cheap that you have to actively resist them. A plan you got for free is still expensive if it builds the wrong thing.</p><h2>&#127919; Goals for Next Week</h2><p>Keep the train rolling, again:</p><ul><li><p>Release HabitKit 1.17.1 (performance fixes first!) and get 1.17.2 through review</p></li><li><p>Keep building 1.18.0</p></li><li><p>FocusKit 1.8 approved</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #109]]></title><description><![CDATA[Shipping every Monday, fighting Google Play, and writing down the $100k goal.]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-109</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-109</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 23 Aug 2026 05:35:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FUG0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FUG0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FUG0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FUG0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114314,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/212122670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FUG0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FUG0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5b40852-3674-466b-b87d-0679672dcda7_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Small confession first: the last issue reached you on Saturday because I honestly thought it was Sunday. That&#8217;s the level of scatterbrain we&#8217;re working with here. This week the machine kept rolling anyway: HabitKit 1.16.1 is out, 1.17.0 is approved and waiting, 1.17.1 is already finished, the website got a new home, and my AI assistant moved into my second brain. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>The release train made its second Monday stop.</strong> HabitKit 1.16.1 went live on Monday, with the revamped &#8220;Compact List&#8221;, a lot of bug fixes and performance improvements. Second Monday release in a row, and I handed 1.17.0 (the Quit Habits update from #108) in for review on the same day. It&#8217;s approved and ready (on Apple&#8217;s side), and the plan is to release it early next week, three Monday releases in a row would be the dream. But first I have to push the 1.16.1 phased release on Android to 100%, because handing in the next build would halt its distribution, class Play Store quirk. And 1.17.1 is already finished too: you can fast-switch between the view modes with a swipe gesture now, and I finally added reordering habits via drag and drop. That one was blocked forever because it redraws the list a couple of times, and only now that the performance is under control I can play around with things like that.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;0cc03457-20a6-478a-ae28-5210a180a478&quot;,&quot;duration&quot;:null}"></div><p><strong>Google Play is testing my patience again.</strong> While a phased release is running, I can&#8217;t hand in the next production build at all without stopping it. So a weekly release train and a seven day rollout window simply don&#8217;t fit together on Android. Lately reviews take up to a full week over there too, so my Monday plans are honestly Google&#8217;s decision, not mine. It blows my mind how such a big company makes so many questionable decisions in their most important developer-facing UI. And I&#8217;m saying that as someone who uses App Store Connect every week, so the bar is not exactly high.</p><p><strong>The redesign feedback threw me a curveball.</strong> I&#8217;m getting lots of great feedback on the recent changes, the task list grows faster than I can work it off, and I&#8217;m honestly in full monk mode right now. But one complaint keeps coming up: for some people the sizing of the UI feels off since the redesign. The old HabitKit used a really weird package that scaled the whole UI down on smaller devices. I got rid of it, and for those users the jump is big enough to complain about. On most modern devices the app looks much better now IMO, but I also understand people who don&#8217;t like big changes to their favorite app. I&#8217;m still looking for a good solution, and I&#8217;m not sure yet if there is one, or if I just have to roll with it.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5_zU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5_zU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 424w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 848w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 1272w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5_zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png" width="1198" height="247" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:247,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!5_zU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 424w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 848w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 1272w, https://substackcdn.com/image/fetch/$s_!5_zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040619e1-c8e2-4a95-8bef-2352e3e7031a_1198x247.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>But there are also people who love the recent changes:#</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A54C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A54C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 424w, https://substackcdn.com/image/fetch/$s_!A54C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 848w, https://substackcdn.com/image/fetch/$s_!A54C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 1272w, https://substackcdn.com/image/fetch/$s_!A54C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A54C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png" width="1200" height="318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:318,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66835,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/212122670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A54C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 424w, https://substackcdn.com/image/fetch/$s_!A54C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 848w, https://substackcdn.com/image/fetch/$s_!A54C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 1272w, https://substackcdn.com/image/fetch/$s_!A54C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367c6a5b-932e-44c4-8974-64b7311f79f6_1200x318.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The new HabitKit website is done, and it runs on a boring stack.</strong> Remember the Dan Go newsletter mention from #108? It had a second, less fun effect: so many people clicked the link that they drained ALL my Netlify credits, and I had to upgrade my subscription just to keep the site online. A newsletter mention should be a good day, not a hosting bill. So this week I rebuilt the whole website with good old Laravel, deployed on my own Hetzner VPS with Ploi. No serverless magic, no credit meter, just a server that doesn&#8217;t care how many people show up. The whole rebuild took me two days. I&#8217;m super happy with the new look, honest 10/10, much more modern, with more testimonials and the media outlets HabitKit was featured in. By the time you read this, <a href="https://habitkit.app">the new version should already be live</a>. I also want to beef up the blog section, and I&#8217;m playing with an idea for &#8220;HabitKit Stories&#8221;, where I interview people who improved their life with the app. More on that when it&#8217;s real.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KfaZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KfaZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 424w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 848w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 1272w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KfaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png" width="1456" height="1468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1468,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1913030,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/212122670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KfaZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 424w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 848w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 1272w, https://substackcdn.com/image/fetch/$s_!KfaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6edeb86-f795-4ef1-b9cb-82df2ca4d0fa_2008x2024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Grok Bot moved into my second brain.</strong> I hooked Grok Bot up with my Obsidian vault this week. Now my daily briefing, my todo tracker and my support email triage bot all read from the same knowledge base I write in every day. The first attempt taught me a lesson though: I tried to let the bot build its own system, and that was the wrong way around. The bot has to adapt to YOUR workflow, not invent a new one. Since I fixed that, it&#8217;s been one of the easiest AI experiences I&#8217;ve had. No tinkering, no config files, a completely different world compared to my Open Claw setup a couple of months ago. Fun fact: it also dug through my journal to prepare the notes for this issue. One thing I still don&#8217;t hand over is the actual app development. My style is too iterative, I want to see every change live and call the shots after every move of the AI. For that I&#8217;m currently coding with Grok 4.6 in Cursor on the &#8220;Extra High Fast&#8221; setting, and I can&#8217;t deny the results are great. Not as smart as Fable I feel, more like the last Opus 4.x, but for fast iterating it&#8217;s a really cool experience.</p><p><strong>The ratings rabbit hole.</strong> HabitKit is still #3 for &#8220;habit tracker&#8221; in the US App Store, behind Finch, and this week I finally understood why. Ariel from Appfigures posted an explanation: it&#8217;s all about ratings. Finch has an incredible DPR (downloads per rating) of 13, meaning they only need 13 downloads to receive a new rating, and they collect way more ratings than everybody else. So my keywords are fine, my ratings velocity is the bottleneck. That&#8217;s why I refreshed my rating prompt system in 1.17.1, which I literally haven&#8217;t touched since I set it up three years ago. I hope I can beat them again someday, but I won&#8217;t lie, with numbers like that I wouldn&#8217;t be surprised if they grab #1 at some point.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VCP8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VCP8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VCP8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg" width="1456" height="811" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:811,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!VCP8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VCP8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6166d66-9890-418c-9f3c-3b3f4560d172_2168x1208.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.8 is fighting through review.</strong> FocusKit is still in the passenger seat, but it moved: I tested 1.8, prepared the assets and handed it in for review this week. Apple answered with a rejection, so sorting that out landed on top of the weekend list. The usual review dance.</p><h2>&#128161; Indie Insights</h2><p><strong>Write your goal down, then say it out loud.</strong> You&#8217;re more likely to reach a goal when you write it down. And you&#8217;re even MORE likely to reach it when you share constant progress updates with someone. That&#8217;s the whole magic behind building in public: you share your goals for the week, you post progress, you write it all up at the end, and hundreds of people see if you keep pushing or not. I recently decided that it&#8217;s time to show up on X again, and this time it sticks. I&#8217;m sharing my journey there daily, wins and fails, and connecting with some awesome people. So let me use all this accountability properly and say the big one out loud: I will take my app business to $100k per month. There, it&#8217;s written down AND published. I used to believe I could never build a popular app that makes real money, and that belief turned out to be wrong, so I stopped trusting my limiting beliefs. Reach for the stars: if you aim for Mars, you&#8217;ll at least come along the Moon.</p><p><strong>Not every side quest is noise.</strong> Recently I told you how proud I am of my noise detector, killing new product ideas faster and faster. This week I found the exception to the rule. Instead of starting new products with my leftover AI tokens at the end of the week, I now use that budget to build mini tools that only serve me. First candidate: bookkeeping. My current solution (SevDesk) is clunky, expensive, has no bulk upload, and its invoice detection misses a lot, it costs me time and nerves every month. Collecting receipts at the end of every month annoys me deeply. So I&#8217;m building a small Git-based, AI-native bookkeeping helper for exactly one user: me. The difference to a side product is everything. A product wants marketing, support and a roadmap. A tool just has to save me a few hours every month, and honestly, it&#8217;s a super fun project on top. There is a bigger thought hiding in here: less custom apps, more AI integrations. Keep the data in simple, text-based files an AI can operate on, and replace the UI with chat. The bookkeeping helper works exactly like that, and the next candidate is already in my head: letting Grok Bot track my workouts and tell me when it&#8217;s time to up the weights. An AI personal trainer, no app required.</p><h2>&#127919; Goals for Next Week</h2><p>Keep the train rolling:</p><ul><li><p>Release HabitKit 1.17.0 early in the week (Quit Habits, three consecutive releases in a row if Google plays along)</p></li><li><p>Fix the FocusKit 1.8 rejection and get it released</p></li><li><p>Decide what to do about the UI sizing feedback</p></li><li><p>First working version of my little bookkeeping helper (leftover tokens only!)</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #108]]></title><description><![CDATA[Launch week: 1.16.0 Is Live, Nothing Exploded, And The Next Two Updates Are Already Lined Up]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-108</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-108</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sat, 15 Aug 2026 07:48:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WBF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WBF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WBF0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WBF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5379485,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/211160421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WBF0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!WBF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e48be4f-06c5-42c5-b738-d8cf14a3a546_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Fourth week in a row, and this one was the big one: HabitKit 1.16.0, the scary redesign release I&#8217;ve been telling you about for three issues, is finally out in the wild. On top of that, 1.17.0 is already finished, I deployed my own little analytics service, my Mac Mini got a real job, a newsletter mention spiked my revenue, and I lost an App Store ranking fight (for now). Let me tell you about it.</p><h2>&#128736;&#65039; Development Corner</h2><p><strong>HabitKit 1.16.0 is live.</strong> I pressed the button on Monday morning, published the release post, and then spent the rest of the day being nervous. No terrible catastrophe so far. No data-loss reports, no &#8220;please bring the old design back&#8221; storm, no horror stories at all. The phased rollout is still running and so far it&#8217;s quiet in the best possible way. I did learn one annoying Google Play quirk though: when I hand 1.16.1 in for review, it halts the phased rollout of 1.16.0. I wish they would keep those two things separate. Speaking of Google: 1.16.1 has been sitting in review for days now, while Apple approves my builds the same day I hand them in. No idea what&#8217;s so hard about a small bugfix release. If Google cooperates, 1.16.1 ships on both platforms on Monday.</p><p><strong>HabitKit 1.17.0 is already done, and it brings Quit Habits.</strong> The next content update is finished and in the pipeline: What&#8217;s New written, Android tested, TestFlight running. The star of the release is &#8220;Quit Habits&#8221;, one of the most requested features of the past months. These habits are checked by default, and you only take a manual action when you failed. Think &#8220;Quit Smoking&#8221;: the day only breaks when you actually had a cigarette. I also squashed a streak bug around the new habit type midweek. And because the machine never sleeps, Claude is already chunking away at 1.17.1 with a big batch of improvements and bug fixes. Three updates released or lined up in one week. THIS is the weekly release cadence I&#8217;ve been dreaming about.</p><p><strong>AnalyticsKit is live on my own server.</strong> New project, but a small and focused one, I promise. Last weekend I started building my own analytics solution, and on Tuesday I deployed it on Ploi. Super simple, highly anonymized, tightly scoped event tracking for my own apps, self-hosted on my own server. At my scale this is almost trivial, and with AI writing most of it, there is no real reason anymore to pay a big tool for something this simple.</p><p><strong>My Mac Mini got promoted to the night shift.</strong> Two issues ago I wrote that I want to turn my Mac Mini into a nightly testing service. Done! It now runs the nightly build runner with the test suite while I sleep, and I installed Tailscale so I can reach it from anywhere. The nicest part is the daily digest email it sends me every morning: my todo list, yesterday&#8217;s revenue from RevenueCat, a summary of my unread emails and a motivational quote on top. Waking up to that email feels like having a tiny employee who worked through the night.</p><p><strong>A newsletter mention and a ranking fight.</strong> Last Sunday brought a nice surprise: HabitKit was mentioned in Dan Go&#8217;s newsletter, for the second time already, and it produced a really nice revenue spike over two days. Even cooler: he is still tracking his consistency with my app after all these years. On the other side of the App Store, HabitKit lost its second place for &#8220;habit tracker&#8221; in the US to Finch, and they seem to be pushing hard on that keyword in multiple countries right now. Of course my Astro license expired in the exact same week, so I was flying blind for a moment. Small aside: I still think there is a gap in the market for a low-priced ASO desktop app that also covers Google Play, something like Astro plus some Appfigures statistics. Free idea, take it.</p><h2>&#128161; Indie Insights</h2><p><strong>Release anxiety doesn&#8217;t go away, you make peace with it.</strong> Pressing &#8220;Release&#8221; on an update that changes the look of an app for thousands of people is scary, and I don&#8217;t think that feeling ever fully disappears. What helped me on Monday: almost everything can be fixed. Monitor the situation, don&#8217;t refresh the reviews every five minutes, and trust your testing. The counterfactual actually made me laugh: if I&#8217;m this nervous about a redesign on a stable, battle-tested codebase, I can&#8217;t fathom the fear of shipping the native 2.0 rewrite to my whole user base. Killing that project (issue #105) was definitely the right move. And with the roadmap ahead of me, I better get used to the feeling, because there are a LOT of releases coming.</p><p><strong>Being your own biggest user is a moat.</strong> This week I realized again how much of an advantage it is that I track my habits religiously with my own app. I honestly can&#8217;t imagine my life without it anymore, and a big part of my discipline comes from it. That daily usage means I feel every rough edge, I know exactly which features matter, and I care about the product beyond the revenue. Compare that to someone building a habit tracker just because they couldn&#8217;t come up with another idea. I am HabitKit&#8217;s biggest fan, and that&#8217;s a moat no competitor can copy.</p><p><strong>My noise detector is getting faster.</strong> On Sunday night in bed I had a game idea I immediately fell in love with: a cozy 3D game that I would play instantly. And by Tuesday I had already let it go, because a game like that is a huge, challenging project and my business is HabitKit and FocusKit, not games. Here is the pattern I&#8217;m proud of: killing the native rewrite took me weeks (#105), killing the productivity app took a week (#107), and this time the whole cycle of falling in love and letting go happened in two days. Ideas are cheap and AI makes trying them even cheaper. Focus is the expensive part, so the faster you can say no, the more it compounds.</p><h2>&#127919; Goals for Next Week</h2><p>Next week might become a marketing week, here is the plan:</p><ul><li><p>Release HabitKit 1.16.1 on both platforms (Google, please)</p></li><li><p>Start rebuilding the HabitKit website (Laravel + Ploi)</p></li><li><p>Finish up HabitKit 1.17.0 (lots of testing)</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #107]]></title><description><![CDATA[Approved, Queued, and Ready for Launch Day]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-107</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-107</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 09 Aug 2026 05:40:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RriW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RriW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RriW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 424w, https://substackcdn.com/image/fetch/$s_!RriW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 848w, https://substackcdn.com/image/fetch/$s_!RriW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 1272w, https://substackcdn.com/image/fetch/$s_!RriW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RriW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png" width="1456" height="582" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:582,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2660756,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/210318670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RriW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 424w, https://substackcdn.com/image/fetch/$s_!RriW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 848w, https://substackcdn.com/image/fetch/$s_!RriW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 1272w, https://substackcdn.com/image/fetch/$s_!RriW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaffd9a-e9e7-4cf1-bd8d-843de8072b25_5000x2000.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Third week in a row, the weekly rhythm is officially back. And this week had a bit of everything: HabitKit 1.16.0 got approved and launches on Monday, 1.16.1 is already finished and queued up right behind it, I started AND killed a whole side project within one week, and I let AI dig through my subscription numbers. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>HabitKit 1.16.0 is approved and launches on Monday.</strong> The scary redesign release I&#8217;ve been telling you about for two issues is finally happening. I spent Tuesday testing the release candidate on iOS and Android, fixed a few issues that came up during the beta, handed it in for review, and it got approved right away. Apart from those beta fixes everything went surprisingly smooth for a release of this size. So now there is nothing left between me and launch day. On Monday, thousands of people will open their app and see the new design. Fingers crossed.</p><p><strong>HabitKit 1.16.1 is finished too.</strong> This one started as the boring housekeeping release (the Flutter toolchain and all package dependencies are now updated, I even pruned a few), but it grew into a really nice polishing update. Lots of bug fixes, and I finally revamped the &#8220;Compact List&#8221; view, which didn&#8217;t get much love in the redesign and was honestly a bit forgotten. I also cleaned up an inconsistency that probably nobody noticed but me: the settings screen was using Lucide icons while the rest of the app used FontAwesome. Now everything is on FontAwesome. The TestFlight started yesterday, and 1.16.1 will ship right behind the big one. Two updates back to back, exactly the rhythm I want for the road to 2.0.</p><p><strong>The &#8220;ultimate productivity app&#8221; lived for exactly one week.</strong> Last Sunday I fed Claude Design the specs for my perfect second brain app, the one I&#8217;ve been fantasizing about for years. The designs looked so good that I started building it right away, and by Tuesday I was actually journaling inside my own tool, which felt pretty magical. But on Friday I killed it. The agent couldn&#8217;t translate those beautiful designs into a real app that felt right, and the project is simply too big for a side quest. It was a fun way to burn my leftover tokens, and walking away after one week cost me almost nothing. More on that below.</p><p><strong>I connected the RevenueCat MCP to Claude Code.</strong> This was my favorite AI moment of the week. The agent did a deep research pass over my subscription numbers, analyzed everything, then automatically pulled up the &#8220;State of Subscription Apps&#8221; report to compare my metrics against best practices, and came back with a huge list of fixes and things to try. This feeds directly into what comes after 1.16.0.</p><h2>&#128161; Indie Insights</h2><p><strong>Learn to recognize the noise.</strong> Killing the productivity app after one week didn&#8217;t feel like failure, it felt like a skill. Two issues ago I killed the native rewrite, now this. The pattern is the same: run the experiment small, don&#8217;t commit publicly, and be brutal about the answer. Because here is the thing, HabitKit alone has more than enough work for me: 1.17.0, anonymous analytics, pricing experiments, a new website, fresh App Store screenshots. Every shiny side project is stealing time from the thing that actually pays my bills. The experiments are cheap now thanks to AI, which is great, but that makes the discipline to walk away even MORE important, not less.</p><p><strong>Would I even want a co-founder?</strong> I had a long call with a friend this week who is thinking about whether to build his business solo or with a partner, and it sent me down a rabbit hole. Looking back at my time building a side project with two friends, all of us part-time and nobody with real stakes in it, I would strongly advise against that setup. If you build something together, everyone should truly burn for the product and ideally be ready to go all-in. But there is a second layer for me personally: the lifestyle business I&#8217;ve built gives me a level of freedom and independence that I really value, and I&#8217;m pretty sure I couldn&#8217;t keep it while working closely with a co-founder. On the other hand, working alone all day does affect you. Someone to exchange ideas with, to push you, to carry things together emotionally, that is very appealing. I don&#8217;t have an answer yet, but it&#8217;s a trade-off every solo founder should think about honestly instead of just defaulting to one side.</p><p><strong>The AI does the job, you pick what fills the gaps.</strong> In the last issue I told you about my &#8220;you either work or do nothing&#8221; rule for those minutes while the agent is running. This week I found an upgrade: I keep a sketchbook next to my keyboard and doodle while the AI works. It&#8217;s a small thing, but it replaces ten YouTube tabs a day with something that actually compounds. And it made me think bigger: maybe this IS the future of work. The AI chunks away at your ideas, and the real question becomes what you fill your freed-up time with. High-quality activities that make you better at something, not brain rot. The people who figure that out early will have a huge advantage.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#127919; Goals for Next Week</h2><p>Launch week! Here is the plan:</p><ul><li><p>Release HabitKit 1.16.0 on Monday &#128640;</p></li><li><p>Run the 1.16.1 TestFlight and ship it right behind</p></li><li><p>Start planning 1.17.0 and pick the first experiments from the RevenueCat analysis</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #106]]></title><description><![CDATA[You Either Work, Or You Do Nothing]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-106</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-106</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 02 Aug 2026 06:52:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a84Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a84Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a84Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a84Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3513461,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/209360812?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a84Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!a84Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc57820-09e6-4275-bb9f-54c263125341_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Right on schedule this time, exactly one week after the last one. It feels really good to be back in the weekly rhythm, and more on why that matters below. This was one of those weeks where the calendar was absolutely stuffed with appointments, so focused work time was rare and precious. But the important pieces still moved: HabitKit 1.16.0 went through beta testing and got a fresh batch of beta testers on board, the overdue Flutter upgrade is done, a new FocusKit Mac build landed on TestFlight, and AI wrote me an entire integration test suite. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>HabitKit 1.16.0 is in beta.</strong> The big redesign plus Notes update from last issue is now in real hands. The beta went out yesterday, and this week was all about hardening it: Android testing on Monday, a nasty bug squashed midweek, and then a lot of waiting on Google Play, where the beta build sat in review for days. Super annoying when your whole release plan hangs on a spinner. It cleared just in time, so this weekend I could finally onboard a group of new, engaged beta testers, which was one of my goals from last issue. This release is a scary one. Thousands of people will open their app and see a fresh design, and I&#8217;m hoping for exactly zero data-loss reports and no &#8220;please bring the old look back&#8221; emails. But this update unlocks so much of the 2.0 roadmap that I can&#8217;t wait to get it out: hand it in for review next week, release the week after if all goes well.</p><p><strong>Claude wrote an integration test suite for HabitKit.</strong> This might be my favorite thing from the week. I let the agent build a proper integration test suite for the app, and it even coded a neat little HTML viewer where I can filter the results by screen, theme, or language. For a scary release like 1.16.0 this is exactly the safety net a solo dev needs, and it gives me a lot of confidence to keep moving fast on the roadmap. Only downside: running the full suite across all languages takes forever. Which finally gives my Mac Mini a real job, I want to turn it into a nightly testing service that runs everything while I sleep and sends me a nice report in the morning.</p><p><strong>The overdue housekeeping is done.</strong> Last issue I told you I needed to update Flutter and all the package versions, a chore I had been pushing off for way too long. It&#8217;s all wrapped up and will ship as 1.16.1 right behind the big release. Two updates lined up back to back, exactly the steady rhythm I want for the road to 2.0.</p><p><strong>FocusKit 1.8: a new Mac build is on TestFlight.</strong> FocusKit is still in the passenger seat while HabitKit takes the spotlight, but it&#8217;s not standing still. I pushed a new 1.8 build of the Mac app to TestFlight on Monday and I&#8217;m still dogfooding it every single day while I work. Once 1.16.0 is out the door, finishing FocusKit 1.8.0 moves back to the top of the list.</p><h2>&#128161; Indie Insights</h2><p><strong>You either work, or you do nothing.</strong> I found my sneakiest distraction pattern of the AI era: I kick off the agent, it needs a few minutes, and I alt-tab &#8220;just quickly&#8221; to YouTube or X. Ten times a day, every day, and my attention is shredded without me ever feeling like I took a break. My counter-strategy sounds extreme but works scarily well: during a work block, you either work or you do nothing at all. Stare at the wall if you have to. After a while your brain starts longing for the work instead of the feed, because the work is the most interesting thing available. In a week like this one, where appointments chopped my days into thin slices, every focused minute counted double, so this rule carried me. Next week I&#8217;m backing it up with real timeblocks in my calendar, big chunked work sessions instead of scattered scraps.</p><p><strong>Core Outcomes and Core Processes.</strong> I spent some time this week thinking about my vision for the next year, and I landed on a simple framework I really like. For each area that matters, define ONE Core Outcome for the year, and the daily Core Process that compounds into it. For the business that means: substantial progress on HabitKit 2.0 with at least four or five updates shipped to the App Store and Google Play. The outcome feels big, the process is almost embarrassingly small, and that&#8217;s the whole point. It&#8217;s the 1% rule: show up daily, trust the compounding, and stop being intimidated by the size of the project. Funny side effect: the framework immediately sparked a new app idea, a small Mac menu bar app that keeps your core processes visible throughout the day. My idea machine never stops, and as always, my best ideas come from things I want to use myself.</p><p><strong>This log is my accountability machine.</strong> After the summer gap I&#8217;ve found the rhythm again, and I remembered why I started writing this thing in the first place: I HAVE to do the work, otherwise there is nothing to write about on Sunday. That&#8217;s the entire trick. Public accountability is the cheapest productivity system there is, no app required. If you&#8217;re building something on the side, I can only recommend it: pick a cadence, publish, and let the fear of an empty issue do the rest.</p><h2>&#127919; Goals for Next Week</h2><p>With the beta running, next week is all about getting 1.16.0 over the line:</p><ul><li><p>Collect beta feedback and hand HabitKit 1.16.0 in for review</p></li><li><p>Line up 1.16.1 (the Flutter and dependency upgrades) to ship right behind it</p></li><li><p>Protect focus with real timeblocks in the calendar</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #105]]></title><description><![CDATA[Why I Killed The HabitKit Rewrite And Built A 2.0 Roadmap Instead]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-105</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-105</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 26 Jul 2026 05:38:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!E7fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E7fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E7fW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E7fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3394916,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/208315499?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E7fW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!E7fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d99d8b-60f2-416a-ab0c-bb0b5e5b7862_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! It&#8217;s been a few weeks since the last one, summer got pretty packed on the personal side, but the app work never stopped. And this issue has some real news: the native HabitKit rewrite experiment is over, HabitKit 2.0 has a proper roadmap on the existing Flutter app, and a fresh redesign is already running on my phone. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>The native HabitKit rewrite is dead.</strong> Last issue I told you about my little native rewrite experiment, and I promised myself no roadmap, no date, no public commitment. That turned out to be the right call, because the experiment gave me its answer: not worth it. Relaunching an app with thousands and thousands of active users on a completely new codebase is just too much risk for me as a solo indie. The database migration alone, years of habits, streaks and history that absolutely cannot get lost, was giving me stress before I even wrote a single line of it. So the rewrite is officially off the table, and honestly it feels like a weight lifted. More on the lesson below.</p><p><strong>HabitKit 2.0 gets a real roadmap instead.</strong> With the rewrite gone, all that energy went into the existing Flutter app, and this is where it gets exciting. I sat down with AI and built out a big roadmap towards 2.0 that finally incorporates the BIG feature requests people have been asking about for years. For the longest time I didn&#8217;t know how these features should fit into the app, and now I finally figured it out. Making the best out of the Flutter app instead of throwing it away feels so right, and with the latest AI models I&#8217;m convinced the old &#8220;Flutter can&#8217;t do that, Flutter is too slow&#8230;&#8221; excuses don&#8217;t hold up anymore. Maybe I was just too bad as a programmer?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jh2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jh2l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jh2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jh2l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Jh2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d836cb-7921-4149-898a-3d759719b19d_1024x1536.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>HabitKit 1.16.0: a fresh redesign, plus Notes.</strong> First stop on the roadmap. I used Claude&#8217;s design capabilities seriously for the first time this week and it came up with a genuinely clean redesign for HabitKit. I tasked the agent with implementing it, kept iterating, and by Thursday the new design was running in the app and it feels amazing. Of course, I tweaked it like hell and improved on it but the initial Claud Design prototypes were really really good. This is a nice intermediate step before the bigger roadmap items. The Notes system is also planned for 1.16.0, I&#8217;m still iterating on that one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DL3U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DL3U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DL3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DL3U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!DL3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4a4478-08d0-4c22-87fa-b24a12f3a83c_1200x800.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Housekeeping and beta testers are next.</strong> Before the bigger updates land I need to do some overdue chores: updating Flutter and all the package versions, which I haven&#8217;t touched in way too long. And I want to find more engaged beta testers, because a lot of updates are coming over the next couple of months and I want real feedback before things go live.</p><p><strong>FocusKit: dogfooding the Mac app every day.</strong> FocusKit had to take the back seat this issue, but I&#8217;m now using the Mac app daily while I work, and the ideas are piling up: website and app blocking, a visual indicator that a session is running, maybe even some lofi or binaural beats. Once HabitKit 1.16.0 is out the door, finishing FocusKit 1.8.0 is next.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n3is!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n3is!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 424w, https://substackcdn.com/image/fetch/$s_!n3is!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 848w, https://substackcdn.com/image/fetch/$s_!n3is!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 1272w, https://substackcdn.com/image/fetch/$s_!n3is!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n3is!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png" width="1200" height="435" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:435,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n3is!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 424w, https://substackcdn.com/image/fetch/$s_!n3is!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 848w, https://substackcdn.com/image/fetch/$s_!n3is!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 1272w, https://substackcdn.com/image/fetch/$s_!n3is!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69168b33-d962-43fb-966c-86fbdf69be7d_1200x435.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128161; Indie Insights</h2><p><strong>The rewrite is a trap.</strong> It is so natural as a developer to think &#8220;I&#8217;ll just rebuild it in a better stack and THEN it will finally be good.&#8221; I&#8217;ve felt that pull for months. But it&#8217;s a huge productivity killer. While you rebuild what you already have, your actual product stands still, and at the end you get to bet your entire user base on a risky migration for an app that mostly does the same thing. I&#8217;m glad I ran the rewrite as a small experiment first instead of committing publicly, because walking away cost me almost nothing. Between this and sunsetting the MacOS project a few issues back, I&#8217;m slowly learning that killing things quickly might be one of the most valuable indie skills there is.</p><p><strong>Dopamine detox feels like a superpower.</strong> I went back to the boring basics this week: running without any entertainment, workouts without podcasts, a proper morning routine before touching any screen. After a few days something clicks. You can focus again, you get productive, and suddenly bigger projects feel approachable instead of overwhelming. I&#8217;ve written before that focus is the new bottleneck, and every time I actually protect my attention instead of just writing about it, the week gets dramatically better. One small rule that helped: when I&#8217;m in a work block, no alt-tabbing to anything else. Ever.</p><p><strong>Time to show up on X again.</strong> The algorithm got revamped and my content actually seems to reach people again, so this feels like the right moment to get back to posting consistently. The last couple of weeks have been super busy with personal projects for me, but now I&#8217;m back!</p><h2>&#127919; Goals for Next Week</h2><p>With the roadmap standing, next week is all about execution:</p><ul><li><p>Finish HabitKit 1.16.0 (redesign polish plus the Notes system)</p></li><li><p>Update Flutter and all package versions</p></li><li><p>Find more engaged beta testers for the upcoming releases</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #104]]></title><description><![CDATA[FocusKit for Mac, Native HabitKit Maybe?]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-104</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-104</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 21 Jun 2026 06:10:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1bkt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! Pretty busy week this time. FocusKit 1.6.1 shipped, 1.7.0 is finished, I started a Mac version of FocusKit, and on the side I began experimenting with a native HabitKit rewrite. Here is what I got done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1bkt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1bkt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 424w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 848w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 1272w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1bkt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png" width="1456" height="527" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:527,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:570095,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/202826318?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1bkt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 424w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 848w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 1272w, https://substackcdn.com/image/fetch/$s_!1bkt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65456c71-42c5-438a-aa04-cd1b7b2c189e_1828x662.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128736;&#65039; Development Corner</h2><p><strong><a href="https://tryfocuskit.com">FocusKit</a> 1.6.1 is live.</strong> I shipped it on Tuesday, right on schedule. Nothing big, just a small quality-of-life update with a bit of polish.</p><p><strong><a href="https://tryfocuskit.com">FocusKit</a> 1.7.0 is finished.</strong> This is the audio feedback feature I was building last issue. It plays little tick and pong sounds in sync with every passing second of a running session. It is fully optional of course, for some people a ticking sound while focusing is super annoying. Really happy this one is done now.</p><p><strong>I started a Mac version of FocusKit (1.8.0).</strong> Last issue I said this is the direction I want the most, and now I finally started. The first version lives only in the menu bar, no real window yet. I already put a small v0 on TestFlight and I use it myself every day while working. For now I keep the scope very small on purpose.</p><p><strong>I started experimenting with a native <a href="https://habitkit.app">HabitKit</a> rewrite.</strong> This one is completely new and really just an experiment for now. I got curious how HabitKit would feel rebuilt in native tech, so I started playing around: a fresh app model, some ideas like timer-based habits, and how it all feels next to the current version. It is very early, but it already feels really good. Nothing is decided though, no roadmap, no date, no promises. Just me being curious on the side. More on that below.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128161; Indie Insights</h2><p><strong>Experiment first, commit later.</strong> I keep this rewrite small on purpose. No roadmap, no date, no announcement, just checking if the idea has legs. The moment you commit in public to a big rewrite of an app that many people use, the pressure and the fear show up and kill the fun part of exploring. And the building is not even the scary part. The scary part would be the deployment, especially the database migration. HabitKit users have years of habits, streaks and history sitting in the current database, and moving all of that to a completely new native data layer without losing anyone&#8217;s data is terrifying to get wrong. For a habit tracker a lost streak is not a small bug, it is heartbreak. So for now I stay in experiment mode and figure out the scary parts later, if it ever becomes something real.</p><p><strong>Is this the future of work?</strong> One moment stuck with me this week. I had Claude working on a task, and instead of watching it I just stepped away and did something I enjoy until it was done. The AI doing the heavy lifting while you explore your own things, maybe that is where all of this is going. At the same time the bar keeps rising fast. I follow Max Blade building <a href="http://cnvs.dev">cnvs.dev</a> in public, he shipped it eight days ago and is already over $8k in revenue. A good reminder to keep shipping new things myself.</p><h2>&#127919; Goals for Next Week</h2><p>Next week is lighter for me on the personal side, so I keep it calm and avoid risky releases:</p><ul><li><p>Test FocusKit 1.7.0 and hand it in for release</p></li><li><p>Keep building the FocusKit Mac app</p></li><li><p>Keep experimenting with the HabitKit rewrite on the side, no pressure</p></li><li><p>Start experimenting with FocusKit pricing</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and see you in the next one!</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://sebastianroehl.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #103]]></title><description><![CDATA[Fable Keeps One-Shotting My Oldest Problems]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-103</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-103</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 14 Jun 2026 05:27:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xvOx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! It was a heavier week on the personal side, so there was a small gap, but the app work never really stopped. Last time I wrote, FocusKit 1.6.0 was wrapped and ready to go. This week it finally went live, and honestly I&#8217;m really happy with how it landed. On top of that I started building one of my most requested features, lined up the next small release, and spent a lot of time thinking about pricing and where FocusKit goes next. Also, some thoughts about Fable and how it helped me this week fixing some of my oldest bugs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xvOx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xvOx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xvOx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1441581,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/201840704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xvOx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!xvOx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F704fd6b7-1bae-4e55-bfcd-0e39506dddeb_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>FocusKit 1.6.0 is live.</strong> I started the rollout on Tuesday, so the handcrafted color themes I&#8217;ve been polishing for weeks are now out for everybody. These are the soft pastel gradients I showed you last issue (Teal, Red, Purple, Green, Coral, Silver, Lime and Midnight, plus a clean Blank one if you just want zero distraction). I really wanted each one to feel like its own thing and not just a slightly different tint, so I spent a lot of time getting them right. The release also brought a fix for a paywall glitch for people who were already subscribed, plus some performance improvements I did while I was in there anyway. Best part: it&#8217;s been live for a few days now and not a single user complaint. That&#8217;s exactly how I like a release to go.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>Now I&#8217;m building FocusKit 1.7.0.</strong> It adds audio feedback for running focus sessions, little tick, metronome, and pong sound effects that play in sync with every passing second. This has been one of my most requested features for a really long time, so it feels great to finally build it. On paper it&#8217;s a small thing, but it makes a focus session feel so much more alive, and I think people are going to love it. It&#8217;s completely optional of course, for many people having a click sound feels super confusing and irritating.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b27374f6-c1c8-48e4-ad2f-782b4647eb2c&quot;,&quot;duration&quot;:null}"></div><p><strong>FocusKit 1.6.1 ships next Tuesday.</strong> Before 1.7.0 lands there&#8217;s a small quality-of-life release coming first. Nothing huge, just some polish. But I really believe in keeping a steady stream of updates going out instead of disappearing for weeks and then dropping one big thing. Small and consistent is the rhythm that works for me, and it keeps the app feeling alive.</p><p><strong>I want to bring FocusKit to the Mac.</strong> This is the direction I&#8217;m most excited about for the app. I started on iOS because that&#8217;s the platform I know best, but my own main use case is tracking focus on my Mac, where I do basically all of my work. Starting a focus session right there feels way more natural to me than reaching for my phone. There&#8217;s still a lot to figure out, but a proper Mac version would lift FocusKit to a whole new level, and honestly it&#8217;s the thing I personally want the most.</p><h2>&#128161; Indie Insights</h2><p><strong>The ceiling keeps moving, so jump on the wave.</strong> A new AI model (Fable) dropped this week and it just one-shotted a nasty performance problem I&#8217;d been stuck on for a while. One prompt, and suddenly the app was smooth like butter. What a time to be alive, honestly. I&#8217;ve said before that writing code isn&#8217;t really the bottleneck anymore, planning and focus are, and weeks like this keep proving it. The annoying part is how fast these tools move. The same model that saved me hours was already gone again a few days later. So my takeaway is simple: when a new capability shows up, grab it right away and ride the wave while it&#8217;s there, because the window is short.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F0MR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F0MR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 424w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 848w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 1272w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F0MR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png" width="970" height="492" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:492,&quot;width&quot;:970,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:742189,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/201840704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F0MR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 424w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 848w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 1272w, https://substackcdn.com/image/fetch/$s_!F0MR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e831dcb-630d-4c6c-8361-d925c42c1f22_970x492.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>I think it&#8217;s finally time to raise prices.</strong> FocusKit has been on the App Store for half a year now and it&#8217;s still on the same $1 subscription it launched with. In that time I&#8217;ve shipped a long list of features and the app is just so much better than on day one. Charging the same launch price for something that&#8217;s several versions better doesn&#8217;t really make sense to me anymore. I don&#8217;t want to do anything crazy, but I at least want to start experimenting with the price and see what happens. After watching FocusKit slowly start to move over the last few issues, this feels like the right moment to test it.</p><p><strong>Build the things you actually use yourself.</strong> The more I do this, the more I notice that my best ideas just come from my own needs. FocusKit for Mac, the little focus-blocker tool I built for myself a while back, the audio feedback feature I wanted while running my own sessions, all of it comes from me wanting to use it. When you build for yourself first, you don&#8217;t have to guess if it&#8217;s good, you just feel it every day. I think that&#8217;s one of the biggest advantages of being a solo indie: I am always my own first user.</p><p><strong>Defending attention is the real work now.</strong> This one kind of ties the whole week together. When AI can build almost anything you can describe clearly, the rare resource isn&#8217;t code anymore, it&#8217;s focused, undistracted time. I felt that hard this week, in both directions. My best work came in tight, locked-in blocks, and it fell apart the moment I let distraction back in. So I keep going back to the boring basics: less phone, less scrolling, more real deep work in Pomodoro blocks, more habits that keep me connected to the real world instead of an endless feed. Less digital noise, more deep life. Protecting my attention is what protects everything else.</p><h2>&#127919; Goals for Next Week</h2><p>With 1.6.0 out the door, next week is about keeping the updates flowing and figuring out the bigger moves:</p><ul><li><p>Ship FocusKit 1.6.1 on Tuesday</p></li><li><p>Keep building FocusKit 1.7.0 (the audio feedback for running sessions)</p></li><li><p>Start experimenting with FocusKit pricing</p></li><li><p>Start scoping out FocusKit for Mac, the version I want most myself</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #102]]></title><description><![CDATA[The Week AI Got Too Good For One Of My Projects]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-102</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-102</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 31 May 2026 15:49:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fTwx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! Last week I told you FocusKit 1.5.1 was approved and ready to go, and this week it finally went live. On top of that I wrapped up FocusKit 1.6.0, started a tiny new side project for myself, and made a hard call to shut down a project I&#8217;ve been teasing here forever. The week was pretty slow on the calendar, but I still got a surprising amount done. Let me tell you about it.</p><h2>&#128736;&#65039; Development Corner</h2><p><strong>FocusKit 1.5.1 is live.</strong> I started the rollout on Monday, so the landscape FocusSession view, the new theme picker and the CSV export for Pro users are now out for everyone. This was the main goal I set last week, so it felt good to basically finish the week&#8217;s first task by closing out the previous one. Not a flashy release, but these quality-of-life updates are exactly the kind of thing that keeps users happy and the app solid.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>FocusKit 1.6.0 is done, and I really love the new themes.</strong> This is the one I&#8217;ve been polishing for weeks. It adds a set of handcrafted color patterns, and I wanted them to feel genuinely distinct instead of just a row of slightly different tints. They turned out as soft, calm pastel gradients, kind of like rolling hills or layered waves, which fits the whole focus vibe of the app perfectly. There&#8217;s Teal, Red, Purple, Green, Coral, Silver, Lime and Midnight, plus a clean Blank one if you just want zero distraction. I also fixed an annoying paywall bug that was showing the upgrade screen to people who were already subscribed after updating, and squeezed in some performance improvements while I was in there.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fTwx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fTwx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 424w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 848w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 1272w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fTwx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png" width="1456" height="799" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:799,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1772024,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/199700909?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fTwx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 424w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 848w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 1272w, https://substackcdn.com/image/fetch/$s_!fTwx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53677cfe-ed1b-4fad-8acd-f21a00cbaed4_1692x929.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit is finally starting to move.</strong> Quick honest numbers: this week we had two days in a row with around $50 in revenue. That&#8217;s peanuts compared to HabitKit, I know, but it&#8217;s still super fun to watch it grow. After months of FocusKit not really going anywhere, even small signs like this feel great and keep me motivated.</p><p><strong>A new little side project: a focus blocker for myself.</strong> I started vibe-coding a tiny MacOS menu bar app this week to block distracting websites and apps, basically my own version of something like Opal. The idea is simple: I set a time budget for the stuff that eats my attention, and watch it count down in a progress bar right from the menu bar. No real technical walls here, Claude Code just kept blazing through my backlog, although we did have to run a few loops on the AppleScript part for actually blocking the sites. It&#8217;s a purely personal tool I have no plans to ship, but honestly it&#8217;s already one of the most useful things I built all month, and building it was just pure fun.</p><p><strong>Sunsetting the secret MacOS project.</strong> This is the hard one. After a lot of back and forth, my partners and I decided this week to stop working on the MacOS project I&#8217;ve been hinting at across a bunch of these issues. The tipping point was actually pretty clear: OpenAI shipped a new image generation model a couple of weeks ago, and between that and the first round of user feedback, it just hit me that AI had simply gotten too good. The thing we were building didn&#8217;t really have a reason to exist anymore. More on the lesson below.</p><h2>&#128161; Indie Insights</h2><p><strong>Knowing when to stop.</strong> Killing that project hurt. We put a lot of work into it, and walking away never feels good. But I really believe knowing when to stop is just as important as knowing when to ship. As an indie you can&#8217;t afford to keep a dead project on life support, because it quietly eats the focus you need for the things that could actually work. I&#8217;ve talked about focus being the new bottleneck before, and this week I finally had to act on it instead of just writing about it.</p><p><strong>Letting AI run my project management.</strong> My favorite workflow change in months: I now let AI manage Linear for me. I describe what I want in the next version, let the AI quiz me on the requirements, and then have it create the whole project in Linear with milestones, issues and descriptions. From there I just point Codex or Claude at the board and they work through the issues mostly on their own, updating the status and even creating new tickets when something changes. Nothing gets lost anymore, super cool!</p><p><strong>Slow weeks still count, and prep makes the fast ones.</strong> On paper this was a slow week. My calendar was full of personal stuff and the app business kind of felt like it was on vacation. But one really focused day on Tuesday produced more than the rest of the week combined, and that single day basically carried everything. That&#8217;s something I keep relearning as a solo indie: my output is never even, and one high-energy day can quietly save a whole week. June is going to be even tighter, so instead of fighting that I want to lean into it. The plan is to do way more planning upfront, tighten my requirements and think things through, so that when I do get a focused block I can bust out a ton of work with AI in one go. With the tooling I have now, the planning is the real bottleneck, not the building.</p><p><strong>Solo doesn&#8217;t have to mean alone.</strong> Shutting down the MacOS project also meant losing a regular reason to talk to other builders, and I felt that right away. I love the indie life, but to be honest it gets lonely more often than I&#8217;d like. So even with the project gone, I&#8217;m keeping the weekly calls with those guys going. The work was just the excuse, the people are the real reason, and that&#8217;s worth holding on to on its own.</p><h2>&#127919; Goals for Next Week</h2><p>With 1.5.1 out and 1.6.0 wrapped, next week is mostly HabitKit housekeeping and tightening up how I work:</p><ul><li><p>Ship new translated App Store screenshots for HabitKit</p></li><li><p>Go heavier on planning and requirements upfront, so I can move fast when I actually have the time</p></li><li><p>Plan around a lighter June without losing momentum on the main apps</p></li><li><p>Finalize FocusKit 1.6.0 and prepare for release!</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #101]]></title><description><![CDATA[FocusKit 1.5 Went Live, And What Shipping It Taught Me About Momentum]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-101</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-101</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 24 May 2026 06:30:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xwS4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xwS4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xwS4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xwS4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4942053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/198821124?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xwS4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!xwS4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2061f53e-6b8d-4bcf-b4ed-1fcd00d38530_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome back to another issue of my weekly indie log! Last week I told you FocusKit 1.5 was polished and sitting on TestFlight, ready to go. This week it went live on the App Store. I also got 1.5.1 through review, sharpened up my AI coding setup, and learned a thing or two about momentum along the way. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>The FocusKit website keeps getting better.</strong> A couple of issues back I shipped the new FocusKit landing page, and this week I kept building on it. The site now has a proper changelog, so users can follow exactly what lands in each release instead of digging through App Store notes, and I posted about it on X to point people there. I also added a blog, which gives me a home for the SEO-focused articles I mentioned wanting to write, basically guides on getting the most out of the app. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;cc6fa738-3dc7-418a-8cfc-a416ea3ca887&quot;,&quot;duration&quot;:null}"></div><p><strong>FocusKit 1.5 is live.</strong> On Monday I kicked off the phased release, and the light theme update is now rolling out to everyone. I previewed this theme a couple of issues back, and it feels great to finally have it in users&#8217; hands. This is the release that makes light mode a first-class citizen in FocusKit. Releasing it was the headline goal I set for myself in issue #100, so it was a good way to start the week.</p><p><strong>FocusKit 1.5.1 is through review.</strong> With 1.5 out the door, I handed 1.5.1 in for review on Tuesday, Apple privacy labels and all. A couple of review issues came back, I fixed them on Thursday, and it&#8217;s now approved and ready to ship. This is the quality-of-life release I lined up in issue #100: a landscape mode for the FocusSession view, a proper theme picker so you can override the system theme, and a CSV export for Pro subscribers.</p><p><strong>FocusKit 1.6.0 is taking shape.</strong> This will be a killer feature for the app. It allows the user to pick from a variety of super handsome and handcrafted color themes. I still need to do a ton of polishing because I want the color variations to feel genuinely distinct and considered, not just a row of slightly different tints, so I&#8217;ve been polishing that until it feels right.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WMGD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WMGD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 424w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 848w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WMGD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1895700,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/198821124?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WMGD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 424w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 848w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!WMGD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f836a47-8f6c-41c4-9d50-960e835d9dfe_2400x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Sharpened up my AI coding workflow.</strong> I wired my coding agents, Codex, Claude Code, and Cursor, into Linear this week. Instead of me babysitting every task, they now pull from a shared backlog and chip away on their own, with Linear keeping everything tracked in one place. It builds nicely on the setup, where I started running Claude and GPT side by side. The next step I want to try is leaning more on voice, talking to the agents in natural language instead of typing everything out. On the side, I also spent a couple of evenings vibe-coding a tiny menu bar app to block distracting sites for myself, purely a personal focus tool rather than anything I plan to ship.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SMtz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SMtz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SMtz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg" width="1456" height="1452" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1452,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!SMtz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SMtz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F141e4ca8-9eec-4b25-a324-334aae155588_2176x2170.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128161; Indie Insights</h2><p><strong>Sleep is leverage.</strong> I got my bedtime routine dialed in this week (asleep by 22:00, up at 6:30) and the energy difference was immediate. The work I do at full energy is on a completely different level from the work I grind out tired. As an indie dev with full control of my schedule, this is a perk I want to take seriously.</p><p><strong>Momentum feeds discipline.</strong> I noticed something this week: my discipline isn&#8217;t really a fixed trait, it tracks how the work is going. When I&#8217;m shipping and building things I&#8217;m excited about, the deep life comes easy, and workouts, focus, and good habits all fall into place. When the work stalls, everything else seems to wobble with it. The lesson I&#8217;m taking from this is to protect the momentum on the main project, because it quietly powers everything else. Shipping FocusKit 1.5 on Monday set the tone for the whole week.</p><p><strong>Luck favors the consistent.</strong> I&#8217;ll be honest, FocusKit isn&#8217;t growing the way I&#8217;d like it to yet, and I&#8217;ve been struggling with that. Looking back, HabitKit&#8217;s early traction had a real element of luck in it, a few things broke my way at the right time. FocusKit hasn&#8217;t had that moment yet. But I keep coming back to the same long game I wrote about in the past issues: you can&#8217;t manufacture luck, but you can build a much bigger surface for it to land on. Ship great updates consistently, keep listening to users, and stay in the game long enough for the lucky break to find you. That part is fully in my control, so that&#8217;s where my attention goes.</p><h2>&#127919; Goals for Next Week</h2><p>With 1.5 out and 1.5.1 approved, next week is about getting the release into users&#8217; hands and polishing what&#8217;s next:</p><ul><li><p>Ship FocusKit 1.5.1</p></li><li><p>Decide on the next App Store screenshot A/B test for HabitKit that I started a couple of weeks ago</p></li><li><p>Keep polishing the FocusKit theme experience so the color variations feel genuinely distinct</p></li><li><p>Lean more on voice in my daily AI workflow instead of typing everything</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #100]]></title><description><![CDATA[A Hundred Weeks, One Weird Journey]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-100</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-100</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 17 May 2026 04:48:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zPsj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Issue #100. I cannot believe I&#8217;m typing this number. I started writing this log on a Friday afternoon a long time ago, mostly as a way to keep myself accountable, with no expectation that anyone would actually read it. 100 weeks later, you&#8217;re still here. Thank you for that. Thank you for the replies, the questions, the kind notes when a release didn&#8217;t land perfectly, and the cheering when it did. This little log has shaped how I think about my business as much as it has documented it, and that&#8217;s entirely because of you. So before we get into the week, a sincere thank you to every single person reading this. Here&#8217;s to the next 100.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zPsj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zPsj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zPsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1450664,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/197852095?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zPsj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!zPsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3109da18-19b1-43db-b945-1fc9a8ef19fb_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, on to the week. This was a packed one. FocusKit 1.5 is ready for release, 1.5.1 is already cooking, the new FocusKit landing page went live, and I got some really valuable beta feedback on my secret MacOS project. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>FocusKit 1.5 is ready for release.</strong> The headline feature, the new light theme I previewed last week, is polished and on TestFlight. I&#8217;m really happy with how it turned out. Light mode finally feels like a first-class citizen in FocusKit instead of an afterthought. The plan is to start the the phased release on Monday.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uuFT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uuFT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uuFT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2282307,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/197852095?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uuFT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!uuFT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d347071-ec5b-4020-9026-e5c57cfadadf_1672x941.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.5.1 is already in the works.</strong> I jumped straight into the next release after 1.5 hit TestFlight, and the feature list is shaping up nicely. A landscape mode for the FocusSession view, a proper theme picker (so you can override the system theme if you want), and a CSV export for Pro subscribers are all in. I deployed a build to my personal TestFlight on Wednesday to start dogfooding. This is going to be a great quality-of-life release.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cQQt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cQQt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cQQt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!cQQt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cQQt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12933170-4a2e-4765-bcd2-908979826050_1774x887.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://tryfocuskit.com">New FocusKit landing page is live.</a></strong> I spent a big chunk of Wednesday vibe-coding the new landing page and shipped it on Friday. This is the second landing page I&#8217;ve revised after my personal site (roehl.dev) that I deployed a few weeks back. Next up: figuring out the cleanest way to deploy my Astro pages to a VPS instead of leaning on Vercel forever, and adding some SEO-focused articles about getting the most out of the app.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2d422ec0-88cb-4987-97a0-0182a81642a7&quot;,&quot;duration&quot;:null}"></div><p><strong>Secret MacOS project hits external beta.</strong> A friend of mine sent me his first round of feedback on the app this week, and it was genuinely some of the most valuable input I&#8217;ve had on the project so far. Real beta feedback from someone who actually uses the app the way it&#8217;s meant to be used is on a completely different level from any internal testing I can do alone.</p><h2>&#128161; Indie Insights</h2><p><strong>Focus is the new bottleneck.</strong> I kept coming back to this thought all week, and it finally crystallized: code isn&#8217;t the barrier anymore. Modern AI tooling lets me build pretty much anything I can clearly describe. The thing that separates indie devs who ship from those who don&#8217;t is now almost entirely about focus and consistency. People who can keep their attention on one thing, week after week, are the ones who win in this new world. You have all the tools you need. The only thing you have to defend is your attention.</p><p><strong>Don&#8217;t spread yourself too thin.</strong> I had a wave of new app ideas this week, all of them tempting, and almost pulled the trigger on a couple. Then I caught myself. Even small apps draw attention from your main thing, regardless of how tiny they look on paper. Every hour spent dabbling is an hour FocusKit doesn&#8217;t get. The ideas went into the vault. I&#8217;ve written about this pattern before and it never stops being relevant, especially when momentum on the main project is good.</p><p><strong>The long game on ASO.</strong> I&#8217;ll be honest, I was a little deflated this week watching FocusKit&#8217;s ASO ranking move slower than I hoped. I would have loved a rocket ship trajectory. But the truth is, the long game is the only game. Ship great updates, keep listening to users, and trust that the compounding will happen. 100 issues of this newsletter is a pretty good reminder of that. Lots of small consistent progress, added up over time.</p><h2>&#127919; Goals for Next Week</h2><ul><li><p>Release FocusKit 1.5 on Monday</p></li><li><p>Hand in FocusKit 1.5.1 for review</p></li><li><p>Keep working through the beta feedback for the secret MacOS project</p></li></ul><p>That&#8217;s it for issue #100. Thanks again for being here for all 100 of these. I&#8217;ll see you in the next one.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #99]]></title><description><![CDATA[Light Themes, Live Apps, And A Personal Site]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-99</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-99</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 10 May 2026 06:33:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T8ht!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This was a really good week. I shipped two releases on the same day, kicked off the next FocusKit cycle, and made more progress on my secret MacOS project. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong><a href="https://habitkit.app">HabitKit</a> 1.15.1 is out.</strong> I shipped this on Thursday. It&#8217;s the maintenance release I lined up right after 1.15.0: performance improvements, bug fixes around statistics and widget completions, and the one new feature I snuck in, users can now customize their home screen widget theme independent of their system theme. Not a flashy release, but exactly the kind of update that keeps the app solid for the long run.</p><p><strong><a href="https://tryfocuskit.com">FocusKit</a> 1.4.1 also shipped on Thursday.</strong> Same day as HabitKit, which felt great. This release adds language support for Danish, German, Spanish, French, Italian, Dutch, Polish, and Portuguese, plus the iOS Shortcuts and Intents groundwork in preparation for potential upcoming Apple AI features. I also reworked the paywall so it shows up more consistently on update, added home screen widgets to onboarding, and ran a fresh App Store screenshot A/B test. Two main apps released in the same week, can&#8217;t complain.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T8ht!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T8ht!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T8ht!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1430336,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/196896348?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T8ht!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!T8ht!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6caadde-a511-4082-ad81-0ed3390df099_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.5.0 is already in motion.</strong> With 1.4.1 out the door, I jumped straight into the next release. The headline so far: a fresh light theme that I&#8217;m really happy with. It looks clean, friendly, and finally makes FocusKit feel right in light mode. I also fixed a stubborn Live Activity bug where the activity would sometimes hang around after the app was killed. Nice momentum to carry into next week.</p><p><strong>My secret MacOS project keeps inching toward 1.0.</strong> Solid progress with my partners again this week. We had our usual sync on Monday, and I spent time playing with some experimental AI features. The remaining work is mostly the business side now: final designs, IAPs, App Store metadata, legal docs, and a landing page. We&#8217;re in the final stretch.</p><p><strong>Personal site is live.</strong> I deployed <a href="http://roehl.dev">roehl.dev</a> on the VPS last weekend. The bigger plan is that this becomes the proving ground for my website-revamp project. Personal site first, then FocusKit, then everything else. Owning the landing pages instead of relying on third-party tools has been on my list for a while.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ni5B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ni5B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ni5B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!ni5B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ni5B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98c112a-4c4b-4892-88b0-d3d8bf364d2c_2400x1352.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Picked up an OpenAI Max subscription.</strong> I noticed I was dragging my feet on certain experiments because of token anxiety, which is silly when there&#8217;s so much upside in trying new models. Now I&#8217;m running both Claude and GPT side by side, depending on the task. Wanted to remove that little bit of friction so I can keep playing with everything that&#8217;s coming out.</p><h2>&#128161; Indie Insights</h2><p><strong>Fitness as non-negotiable.</strong> One thing that&#8217;s been going really well for months: fitness is non-negotiable. No matter how bad my focus is or how stressed I am, I do the workout. I&#8217;m in the peak shape of my life right now. Being self-employed makes this possible, nobody overrides my schedule. A perk of the indie life I want to keep appreciating.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FLzt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FLzt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FLzt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1877446,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/196896348?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FLzt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!FLzt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67deebba-f85d-4ef6-9c01-33d6ef57a34a_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The value of slow days.</strong> I had a day recently with no fast media, no distractions, just reading, learning piano, being outside, talking to people. And I really enjoyed it. As an indie dev, it&#8217;s easy to feel like every hour should be &#8220;productive&#8221; in the traditional sense. But days like that recharge you in a way that grinding never does. I want more of those.</p><p><strong>Chill more.</strong> A note to self from the past few weeks: stop worrying so much about small things. Worrying doesn&#8217;t change outcomes. Do the work, enjoy life, trust that you&#8217;ll find a solution for whatever comes. Easier said than done, but a useful reminder.</p><p><strong>Building a business timeline.</strong> Had the idea to put together a timeline of my whole business story, from starting out to where I am now. The goal: a reusable resource for interviews, podcasts, or any time I need to tell the story. Could also be useful to have in my second brain so AI tools have full context on my journey.</p><h2>&#127919; Goals for Next Week</h2><p>Now that the two big releases are out, next week is about wrapping loose ends and pushing the side bets:</p><ul><li><p>Vibe-code the new FocusKit landing page</p></li><li><p>Continue work on the new FocusKit light theme</p></li><li><p>Keep chipping away at my secret MacOS project (designs, RevenueCat, App Store prep)</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #98]]></title><description><![CDATA[Notes On Writing, Focus, And Not Acting On Every Idea]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-98</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-98</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 03 May 2026 07:00:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eH_Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This week was all about wrapping up loose ends and getting the next round of releases ready. I finished the implementation for HabitKit 1.15.1, knocked out the FocusKit 1.4.1 translations, and made another solid push on my secret MacOS project with my partners. Let me tell you about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>FocusKit 1.4.1 translations are in.</strong> This release will add language support for Danish, German, Spanish, French, Italian, Dutch, Polish, and Portuguese. I also finished the App Store Connect translations. The build itself has been ready for a while, with the new iOS Shortcuts and Intents groundwork in place. What&#8217;s left for shipping: translated screenshots and re-setting up the App Store screenshot A/B test. Once that&#8217;s wrapped, 1.4.1 is good to go.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eH_Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eH_Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eH_Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4326171,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/195970622?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!eH_Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!eH_Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cde19eb-3ce7-4bf3-89d6-d6499e954095_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>HabitKit 1.15.1 is feature-complete.</strong> I finished the implementation this week. This release is the maintenance update I planned right after 1.15.0: performance improvements and bugfixes. I added one feature though: Users can customize their home screen widget theme independent of their system theme now. Not the flashiest release, but exactly the kind of work that keeps the app solid for the long run. Testing is up next, and I want to ship it early next week.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJ_c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJ_c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJ_c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1868791,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/195970622?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KJ_c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!KJ_c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd866c030-049e-4e13-85ad-850f966ceac2_2400x1352.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>My secret MacOS project is moving toward 1.0.</strong> Solid progress this week. I pushed a fresh TestFlight build to my partners with the remaining features, and what&#8217;s left now is finalizing the design and polishing the app. RevenueCat integration is on the to-do list as well. Slowly but surely, the pieces are falling into place. I&#8217;m getting more excited for this launch every week.</p><p><strong>Talked shop with another indie hacker.</strong> I had a meeting with a fellow indie dev this week, and it was honestly one of the highlights. Exchanging strategies, fears, and ideas with someone who&#8217;s in the same trenches gives you a kind of clarity you can&#8217;t really get anywhere else. I want to do this more often. Indie dev can be a lonely path, and these conversations recharge me in a way that scrolling X never will.</p><p><strong>Mentoring a friend on his app.</strong> Had another vibe-coding session with a friend, helping him push his app forward. There&#8217;s something really rewarding about teaching someone the workflow, and you always end up sharpening your own thinking when you have to explain it out loud. Win-win.</p><h2>&#128161; Indie Insights</h2><p><strong>Write more.</strong> Getting comfortable expressing your thoughts and making them shareable is probably the best skill you can build as an independent dev. Weekly logs, daily journaling, release notes, social posts, it all compounds. My English is getting better, my thinking is getting clearer, and I have more material to draw from when I need it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K4ei!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K4ei!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 424w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 848w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 1272w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K4ei!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png" width="1456" height="765" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2441564,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/195970622?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K4ei!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 424w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 848w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 1272w, https://substackcdn.com/image/fetch/$s_!K4ei!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98f2dcbd-f2c7-47e2-bf64-31a0fd6c77b5_1730x909.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Ideas won&#8217;t stop coming.</strong> My mind has been racing with new project ideas and I&#8217;ve been writing a bunch of them down. Part of it is probably a side effect of main projects being in a holding pattern. When you&#8217;re waiting on reviews and builds, your brain starts exploring new territory. The important part is to capture the ideas and not act on all of them. Ship first.</p><p><strong>The guilt of multiple projects.</strong> Something I&#8217;ve been sitting with: whenever I work on FocusKit, my secret MacOS project, or any side project, I feel guilty for not working on HabitKit. It&#8217;s my main revenue driver and there&#8217;s always more to do. Every indie dev with multiple products knows this feeling. The trick is accepting you can&#8217;t work on everything at once and being intentional about where you spend your time.</p><p><strong>Spreading yourself too thin.</strong> Managing multiple apps as a solo dev is a constant balancing act, and sometimes less really is more. I&#8217;ve been feeling stretched across too many active fronts. Being deliberate about focus is something I&#8217;ll keep working on.</p><h2>&#127919; Goals for Next Week</h2><p>Next week is mostly about shipping what&#8217;s already in the pipeline:</p><ul><li><p>Test and release HabitKit 1.15.1</p></li><li><p>Translated screenshots and A/B setup for FocusKit, then ship 1.4.1</p></li><li><p>Keep polishing my secret MacOS project (design templates, RevenueCat)</p></li><li><p>Decide on the next App Store screenshot A/B test</p></li></ul><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #97]]></title><description><![CDATA[Two App Updates Out The Door, Four Weeks In One Post]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-97</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-97</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 26 Apr 2026 10:13:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9lG6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back! It&#8217;s been a while, about four weeks, actually. The last few Fridays kept slipping past me without a writeup, so instead of skipping ahead I&#8217;m catching you up on everything in one combined post. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>FocusKit 1.4.0 shipped!</strong> The big one. After wrapping up the implementation and final testing, I shipped FocusKit 1.4.0 on Tuesday this week. Wrote the release post, set up the in-app event, and got it out the door. The highlight of this release is three new iOS home screen widgets that I&#8217;m really happy with. Now I&#8217;m hoping the ranking improves over the next couple of months and that it brings in a bit more revenue.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9lG6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9lG6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9lG6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9lG6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!9lG6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185fb5a5-1bbd-4327-871b-0aad0f77b02a_1200x675.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>HabitKit 1.15.0 is live.</strong> Also shipped this week, on Thursday. I finished testing and fixed a last round of bugs on Monday before getting the final build out. Having both main apps released in the same week felt great. I also planned the next release, HabitKit 1.15.1, which will focus on performance and bugfixes, not flashy, but these maintenance updates are what keep the app solid.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v2kw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v2kw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v2kw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v2kw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!v2kw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ed17ac-3737-49da-81fb-795e07c241c5_1200x675.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.4.1 is already underway.</strong> I jumped straight into the next FocusKit release right after 1.4.0 went out. 1.4.1 is about translations and iOS Shortcuts &amp; Intents integration: preparation for better AI and automation support on iOS. The Intents groundwork is coming along. I also spent time getting the FocusKit test cases back to green!</p><p><strong>FocusKit UI test dashboard.</strong> One of the cooler things I built recently: a little dashboard for running FocusKit&#8217;s UI test suite and comparing the generated screenshots. The plan is to eventually have the suite run every night on my Mac Mini and use this tool to check results in the morning. I&#8217;m also building a dedicated full UI-run-through test case so I can move forward with future releases more confidently. Related side idea: turning my Mac Mini into a proper build server that runs nightly builds, executes tests, and even opens PRs to fix broken tests. Not sure when I&#8217;ll get to it, but the concept is too good to forget.</p><p><strong>My secret MacOS project is moving forward.</strong> Good progress here. My partners and I both put in solid work this cycle and knocked down a meaningful chunk of the 1.0 roadmap. The pieces are slowly falling into place. More details when the time is right.</p><p><strong>Side project playground - piano sight reading and a 3D game.</strong> First, a small game vibe-coded with Three.js and AI prompts, purely for fun, no plans to ship. And second, a piano learning app to help me with sightreading. None of these are revenue projects, but I&#8217;ll explain below why I think they matter.</p><p><strong>OpenAI image gen for marketing.</strong> The new OpenAI image generation is pretty cool for making marketing material. I fed it a raw screenshot of FocusKit&#8217;s home screen widgets and it pulled them out and placed them into a nice backdrop with some highlighting. Not perfect, but a solid starting point for promo images.</p><h2>&#128161; Indie Insights</h2><p><strong>Waiting time is building time.</strong> The big one for me from the past few weeks. My biggest leak of productivity has always been the &#8220;waiting time&#8221; between tasks, builds compiling, tests running, reviews pending. Old default: grab my phone or browse X and lose all my momentum. New default: jump into Claude Code and vibe-code on a side project. That&#8217;s how all those side projects above (piano app, notes app, Three.js game) are getting built. It keeps my brain in creative mode instead of pulling it out. Legit game-changer.</p><p><strong>Every new skill doubles your chance of success.</strong> Picked this up from a Scott Adams book recently: every new skill you acquire doubles your chances. You don&#8217;t need to be excellent at any one thing - just build an interesting skill set and stay curious. As an indie dev, this really resonates. The more things you can do well enough (coding, design, writing, marketing, making videos), the more leverage you have. I want to keep developing new skills and not get stuck in one lane.</p><p><strong>Timing is everything.</strong> Another one from Scott Adams&#8217; &#8220;Win Big&#8221; (a fun read so far): accumulate failures, try lots of things, and know that timing plays a massive role. This hit home for me. When I think about HabitKit&#8217;s success, a big part of it was building the right thing at the right time. Skill matters, but so does timing. Worth keeping in mind when evaluating new ideas.</p><p><strong>Doing things that scare you.</strong> I did a video interview a couple weeks back, and I was dreading it beforehand, zero motivation levels of dread. But once I sat down and did it, it was super chill. The prep took some effort (lighting, footage, screen captures) but it&#8217;s done and I&#8217;m glad I did it. Part of my anxiety came from doing it in English as a non-native speaker. These appearances are good for personal branding and product visibility, even when they&#8217;re uncomfortable. It&#8217;s not live yet, but I&#8217;ll let you know of course!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#127919; Goals for Next Week</h2><p>Back to business. The main goals for next week:</p><ul><li><p>Keep pushing on FocusKit 1.4.1 (Shortcuts/Intents + translations)</p></li><li><p>Work in HabitKit 1.15.1</p></li><li><p>Squeeze in some piano app vibe-coding between the main projects</p></li></ul><p>Also: not letting these weekly logs pile up again. Back to a consistent cadence from here on out.</p><p>That&#8217;s it for this catch-up. Thanks for reading, and I&#8217;ll see you next week!</p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #96]]></title><description><![CDATA[HabitKit Hits #1, A Secret Project Nears Launch, And AI Runs My Second Brain]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-96</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-96</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 29 Mar 2026 06:19:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZpVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This was a really exciting week. I finished the implementation for HabitKit 1.15.0, reached a major App Store milestone, and made huge progress on my secret MacOS project. Let me tell you all about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>&#128736;&#65039; Development Corner</h2><p><strong>HabitKit 1.15.0 is done.</strong> I finished the implementation this week, including the Compact List Widget for both iOS and Android, some Flutter tooling plumbing, and several bug fixes for statistics and crash reports. Testing is complete, and the update will be submitted for review this Sunday. This is a cool update that brings one of the most requested features (home screen widgets in list view) to all platforms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZpVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZpVD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZpVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg" width="1200" height="710" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:710,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!ZpVD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZpVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4540de33-8602-44be-a8b6-7e3cdc1eddd2_1200x710.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>HabitKit hit #1 for &#8220;habit tracker&#8221; in Austria.</strong> This is a proud moment. Seeing HabitKit rank at the top for such a competitive keyword, even if it&#8217;s a smaller market, validates that the ASO strategy is working. I&#8217;m hoping more countries will follow as I keep improving the app and its listing.</p><p><strong>My secret MacOS project is getting close to launch.</strong> I had a really productive coding session this week and squashed a ton of bugs and UX issues. The app itself is feature-complete for 1.0, what&#8217;s left is mostly the business side: RevenueCat integration, App Store listing, legal documents, and a landing page. More details coming soon!</p><p><strong>FocusKit 1.4.0 widgets still on the backlog.</strong> I need to get back to this, but HabitKit and my secret MacOS project took priority this week. The widget release will be all about iOS Home Screen widgets: session control, today statistics, streak counters, and bar charts. I&#8217;ll try to make meaningful progress next week.</p><h2>&#128161; Indie Insights</h2><p><strong>AI is giving me more confidence as a developer.</strong> Something I&#8217;ve been noticing lately: AI-assisted coding tools are fundamentally changing what feels possible as a solo developer. Features and entire projects that I would have considered too complex or risky a year ago, like things involving unfamiliar frameworks, server-side infrastructure, or deep platform APIs, now feel within reach. Anyone else feel the same way?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BvpO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BvpO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 424w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 848w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 1272w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BvpO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png" width="1456" height="1105" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1105,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1549987,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/192138663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BvpO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 424w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 848w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 1272w, https://substackcdn.com/image/fetch/$s_!BvpO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7bfd1-0292-46bf-8aec-7e18f4b0bbef_3528x2678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Setting up an AI-powered second brain.</strong> I got Claude Cowork running this week and connected it to my Obsidian vault. The idea is to have an AI assistant that knows about all my projects, tasks, and ideas, and can proactively make progress on things while I focus on deep work. Think of it like having a virtual operations assistant for your indie business. I actually tried something similar in the past with OpenClaw, but I couldn&#8217;t get the cron jobs to run reliably and quickly gave up. Claude Cowork has been much more reliable when it comes to scheduled tasks, which makes all the difference. Early days, but the potential is massive. I want to automate my weekly indie log, my week reviews, and get suggestions on what to focus on.</p><p><strong>My daily Cowork schedule.</strong> Here&#8217;s what I&#8217;ve set up so far: every morning at 6 AM, Claude reviews my Second Brain, checks what&#8217;s on my plate, and delivers an actionable briefing for the day. At the same time, it checks my unread emails and drafts replies to app support messages in my style, so I just have to review and hit send. In the evening at 6 PM, it goes through my journal notes from the day and extracts noteworthy insights back into the vault.</p><p><strong>Helping a friend get into vibe coding.</strong> I had a meeting with a friend about AI-assisted development. Showing him how to go from idea to working prototype in hours was really rewarding. It also gave me another cool idea for a digital product that I could create. Filed this one under ideas for now.</p><h2>&#127919; Goals for Next Week</h2><p>Next week I want to submit HabitKit 1.15.0 for review and release it, make progress on the FocusKit 1.4.0 widgets, and start tackling the launch checklist for my secret MacOS project (RevenueCat, App Store metadata, legal docs).</p><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #95]]></title><description><![CDATA[Journaling, Building, and Staying Grounded]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-95</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-95</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 22 Mar 2026 07:40:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a87E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! March has been a busy month with a lot of things happening outside of work and my productivity has suffered because of it. But I still managed to make some solid progress on HabitKit this week, so it&#8217;s not all bad. Let&#8217;s get into it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>&#128736;&#65039; Development Corner</h4><p><strong>Progress on HabitKit Compact List Widgets.</strong> This is one of the most requested features HabitKit has ever received, and I&#8217;m happy to report that the iOS side is now complete. The widget shows your habit progress in the familiar Compact List View style, right on your home screen. I&#8217;m really happy with how it turned out. SwiftUI makes building iOS widgets a pleasant experience, and things just work the way you&#8217;d expect them to.</p><p><strong>Android widgets are in progress, but painful.</strong> After finishing the iOS version, I moved on to Android. And as expected, it&#8217;s a much worse experience. The &#8220;Jetpack Glance&#8221; framework, which is the modern way to build Android widgets, is incredibly limited compared to what SwiftUI offers on the iOS side. Simple things that take a few lines of code on iOS require workarounds and hacks on Android. I always despise working on native Android features, and this is no exception. But it has to be done. A lot of HabitKit users are on Android, and they deserve the same features.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a87E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a87E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a87E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a87E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a87E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a87E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!a87E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a87E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a87E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a87E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf345b7-f4dd-4997-944b-4fd387519e15_1200x900.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>No progress on FocusKit widgets or the secret macOS project.</strong> Unfortunately, March has been super busy with private stuff, and I didn&#8217;t manage to work on either of these projects at all. It&#8217;s frustrating, but I can only do so much as a solo developer. Once things calm down a bit, I&#8217;ll be able to spread my time across projects more evenly again.</p><p><strong>Had a cool new app idea.</strong> I had an idea for a cool mobile game this week that got me really excited. I&#8217;ve been thinking about the concept a lot and already have some rough ideas for the gameplay. But I know myself well enough at this point: starting new projects when existing ones still need attention is a bad idea. So I wrote the idea down and will revisit it once the dust settles. Focus on shipping first, explore new things later.</p><h4>&#128161; Indie Insights</h4><p><strong>Journaling keeps me grounded.</strong> I&#8217;ve mentioned this before, but daily journaling really is one of the best habits I&#8217;ve picked up. This month had a lot of distractions and stressful moments, and writing things down every day helped me stay focused and intentional. When everything around you is chaotic, having a few minutes of reflection in your journal makes a big difference. It&#8217;s like a reset button for your mind.</p><p><strong>Building small things with AI sparks new ideas.</strong> I&#8217;ve been experimenting more with using AI to build small apps and prototypes. Not for any specific business purpose, just to tinker and explore. What I noticed is that the process of building, even small throwaway projects, generates a lot of new ideas. You see patterns, you discover what&#8217;s possible, and you naturally come up with things you want to try next. It also gives you more content to share on social media, which is a nice side effect.</p><p><strong>My second brain setup is working well.</strong> I switched to Craft as my main note-taking tool a while ago, and I&#8217;m really happy with it right now. The design and UX are beautiful, and it just feels good to use. I wish it was a little bit faster in some places, but overall it&#8217;s a great tool for organizing my thoughts, ideas, and plans. Having a system where everything is captured and easy to find makes a real difference when you&#8217;re juggling multiple projects.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>&#127919; Goals for Next Week</h4><p>Next week I want to finish the Android Compact List Widgets for HabitKit and ship the update. If time allows, I also want to get back to the FocusKit widgets or the secret macOS project. March is almost over, and I want to end the month with some solid momentum going into April.</p><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #94]]></title><description><![CDATA[Two Widget Projects And One Very Tired Developer]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-94</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-94</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 15 Mar 2026 06:13:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!C29P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This was honestly a mixed week. I wasn&#8217;t at my best health-wise, and my productivity definitely suffered because of it. I also had to deal with some private matters that ate up a lot of my time and energy. Being a solo indie dev without any employees means there&#8217;s simply no one to pick up the work when you&#8217;re not at 100%. Still, I managed to ship an important update and start working on some exciting new features. Let&#8217;s get into it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>&#128736;&#65039; Development Corner</h4><p><strong>HabitKit 1.14.6 is live.</strong> If you remember from two weeks ago, I was really excited about the massive performance improvements that AI helped me achieve. The update is now out on the App Store and Google Play. The app feels so much faster and smoother, and I&#8217;m really happy to finally have shipped this. Two years of struggling with performance issues, massive improvements in one update!</p><p><strong>Next up for HabitKit: New Home Screen Widgets.</strong> This is actually one of the most requested features HabitKit has ever received. The plan is to build a widget that looks like the Compact List View of the app, so users can see their habit progress visualized this way on their home screen as well. I&#8217;m going to start with iOS first because the widget APIs are much cleaner and easier to work with there. Android&#8217;s Jetpack Glance framework is super limited and annoying to deal with in comparison, so that will come later. I think a lot of people will be very happy to finally see this feature land in the app. This is going to be a big project, but I&#8217;m excited to get started.</p><p><strong>No progress on the secret macOS project.</strong> Unfortunately, I didn&#8217;t get to work on it at all this week. There&#8217;s still one big change I need to implement that came out of the first user test, but between not feeling great and other priorities, it just didn&#8217;t happen. Frustrating, but not every week can be a productive one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C29P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C29P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!C29P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!C29P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!C29P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C29P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5706171,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/190851285?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C29P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 424w, https://substackcdn.com/image/fetch/$s_!C29P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 848w, https://substackcdn.com/image/fetch/$s_!C29P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!C29P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F678c616f-593d-4cd3-834c-47c1c8b0a521_2400x1352.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Started working on FocusKit 1.4: Home Screen Widgets.</strong> This is one of the most requested features for FocusKit as well, and I finally started building it this week. The idea is to give users quick access to their focus timer and session progress right from their home screen. I already had a plan for this update ready to go, so it was nice to just sit down and start executing. It&#8217;s still early, but the foundation is coming together. I&#8217;m also considering a light theme for 1.5, and I want to kick off an A/B test for the App Store screenshots soon. I mentioned this a few weeks ago already, and I think it&#8217;s time to actually do it.</p><h4>&#128161; Indie Insights</h4><p><strong>Being sick as a solo dev is rough.</strong> This is something nobody really talks about when they romanticize the indie lifestyle. When you&#8217;re feeling ill and you&#8217;re the only person working on your business, everything just stops. There are no colleagues/employees who can jump in and handle things while you recover. No one is answering support emails, no one is fixing bugs, no one is shipping updates. It&#8217;s just you, and if you&#8217;re down, the business is down too. It&#8217;s really frustrating, especially when you have a list of things you want to get done and your body just won&#8217;t work. All you can do is rest, get better, and then get back to work.</p><p><strong>Taxes are done.</strong> I finalized all my documents this week and handed everything to my tax advisor. If you&#8217;ve been reading along, you know I mentioned working on tax preparation a couple of weeks ago. Getting this off my chest feels really good. It&#8217;s one of those tasks that just sits in the back of your mind and drains energy until you finally deal with it. Now I can fully focus on building again without that nagging feeling.</p><p><strong>Thinking about FocusKit pricing.</strong> I&#8217;ve been going back and forth on whether to raise FocusKit&#8217;s price. The idea would be to add a light theme, stabilize the app a bit more, and then bump it to $2 / month. On the other hand, my original thought was to wait until the app starts ranking better for important keywords and then use the influx of new users to build momentum with the lower price. I honestly don&#8217;t know which approach is better yet. Maybe I&#8217;ll just try it and see what happens. That&#8217;s usually the best strategy anyway when you&#8217;re overthinking things.</p><h4>&#127919; Goals for Next Week</h4><p>Next week I want to start building the HabitKit home screen widget. I&#8217;m going to begin with the iOS version and see how far I can get. I also want to finally get back to the secret macOS project and implement the feedback from the user test. Let&#8217;s hope for a healthier and more productive week.</p><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #93]]></title><description><![CDATA[When AI Solves A 2-Year Problem In 30 Minutes]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-93</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-93</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 08 Mar 2026 07:34:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jLyD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This week was a strong shipping week. <a href="https://tryfocuskit.com">FocusKit</a> got its Watch release, <a href="https://habitkit.app">HabitKit</a> received maintenance and a big performance update, and the secret macOS project moved much closer to first external feedback. It feels good to see progress on multiple fronts at the same time.</p><h4><strong>&#128202; Business Updates</strong></h4><p>FocusKit is doing well. MRR is at $121, and revenue for the last 28 days is at $637. The app is still young, so I&#8217;m happy with where things are going. The Watch integration should help with engagement and retention, and I&#8217;m hoping the next few updates will push the numbers even higher.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jLyD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jLyD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jLyD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg" width="1200" height="676" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:676,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!jLyD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jLyD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a49e62-cbad-49ed-8832-00daf8a9c41b_1200x676.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>&#128736;&#65039; Development Corner</strong></h4><p>This week was very busy, so let me break it down by project:</p><p><strong>The secret macOS project reached MVP feature completeness.</strong> I finally fixed many UX and design issues that came up during first internal testing. After that, I submitted another improved build to my two collaborators. The next step now is getting first user feedback, and I will share more details about this soon. The target group is indie app developers, so it fits very well with my audience on X and LinkedIn. I&#8217;m excited to see how people react to it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZPMS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZPMS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZPMS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg" width="1091" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1091,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!ZPMS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZPMS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe817c4e5-8de9-4111-85fc-7a901c9c341f_1091x1200.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>FocusKit 1.3 shipped with Apple Watch integration.</strong> Users can now manage sessions and workflows directly from their wrist, which was a big milestone for the product. Early feedback has been very positive, which is always motivating right after a release. I already received a few bug reports as well, so fixing those quickly is one of my priorities for next week.</p><p><strong>HabitKit is back in active development mode.</strong> I released the first update in a long time. I upgraded Flutter, updated all dependencies, and did some smaller fixes. This gives me a clean and stable base to move faster again. I&#8217;ve been neglecting this project for a while because of FocusKit and the macOS project, but now I feel ready to pick up the pace.</p><p><strong>HabitKit performance finally fixed.</strong> I&#8217;ve been trying to improve the performance of HabitKit for the past 2 years. I tried many different approaches, but nothing really worked well enough. This week I decided to throw AI at the problem. It refactored the code in about 30 minutes and the performance of the app improved by roughly 10x. I&#8217;m honestly not sure how to feel about this. Maybe I&#8217;m just a bad programmer? But then again, I picked the right tool for the job and made real progress. I&#8217;m excited to ship this update at the start of next week.</p><h4><strong>&#128161; Indie Insights</strong></h4><p><strong>Taxes are the boring part of being indie.</strong> The deadlines here in Germany are approaching, and I spent time this week finalizing bookkeeping and tax preparation. It&#8217;s not glamorous, and it&#8217;s definitely not the part of indie hacking that anyone talks about. But it has to be done. As a solo entrepreneur, you don&#8217;t get to skip the tedious stuff. You just have to push through it and then get back to the fun parts.</p><p><strong>AI keeps surprising me.</strong> The HabitKit performance story really made me think. Two years of trying to solve a problem myself, and AI solved it in half an hour. The interesting thing is that I already had a good understanding of where exactly the performance problems were. I knew the bottlenecks. But I couldn&#8217;t think of the perfect combination of fixes that would actually solve it without breaking other things. I used my usual workflow: Opus 4.6 for planning and Codex 5.3 for implementation. The result was a nice multi-file refactoring that included some very interesting architecture changes I wouldn&#8217;t have thought of myself. The right tool can save you months of frustration.</p><p><strong>Premature optimization is real.</strong> I just wanted to share an additional thing. I took a look at my monthly Firebase bill this week. Back when I started my business, I spent countless hours optimizing the code of my first app to reduce potential Firebase costs. I present to you: the monthly bill. 0.21&#8364;. Yeah. Don&#8217;t spend time on problems you don&#8217;t have yet.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OBu_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OBu_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 424w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 848w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 1272w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OBu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png" width="730" height="228" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:730,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!OBu_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 424w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 848w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 1272w, https://substackcdn.com/image/fetch/$s_!OBu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9a1d576-a4b3-4095-b62b-bdfc04cb1ebd_730x228.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>&#127919; Goals for Next Week</strong></h4><p>Next week I want to ship the HabitKit performance update. I also need to fix the bug reports from the FocusKit Watch release before they pile up. Lots of shipping ahead, but I&#8217;m feeling motivated.</p><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building An Indie App Business #92]]></title><description><![CDATA[Three Projects, One Productive Week]]></description><link>https://sebastianroehl.substack.com/p/building-an-indie-app-business-92</link><guid isPermaLink="false">https://sebastianroehl.substack.com/p/building-an-indie-app-business-92</guid><dc:creator><![CDATA[Sebastian Röhl]]></dc:creator><pubDate>Sun, 01 Mar 2026 06:09:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5xKG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to another issue of my weekly indie log! This was a crazy productive week. I finished a major <a href="https://tryfocuskit.com">FocusKit</a> update (releasing next week!), got <a href="https://habitkit.app">HabitKit</a> back into a development-ready state, and made more progress on my secret macOS project. Multiple projects moving forward at the same time, which is exciting and exhausting simultaneously.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>&#128736;&#65039; Development Corner</strong></h4><p>A lot happened this week, so let me break it down project by project.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;68f75681-68ab-468c-8757-c5dc3eab0c43&quot;,&quot;duration&quot;:null}"></div><p><strong>FocusKit 1.3 is done.</strong> The update adds Apple Watch integration, which I&#8217;ve been working on for the past few weeks. I&#8217;m really happy with how it turned out, and the feedback from beta testers has been great so far. I think this will be a solid addition to the product and improve the workflow for a lot of users who want to track their focus time without pulling out their phone. Getting this shipped feels really good.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5xKG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5xKG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5xKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg" width="1200" height="439" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!5xKG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5xKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953e6df-a008-4d96-ae37-9f43309cef8a_1200x439.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>HabitKit is back in business.</strong> I finally upgraded the project to the latest Flutter version and updated all dependencies. This doesn&#8217;t sound exciting, but it was long overdue. Work has been piling up for HabitKit because I was so focused on FocusKit and the secret macOS project over the past weeks. Now I feel like I have a solid foundation again to iterate on the product. It&#8217;s really hard to find a good balance of time allocation when you&#8217;re running multiple projects at the same time. HabitKit is still my most important project, and it deserves more attention.</p><p><strong>Secret macOS project is getting closer.</strong> I finished another test version this week and I&#8217;m really proud of the result so far. It&#8217;s a native macOS app that utilizes Apple&#8217;s liquid glass APIs, which I personally love. The goal is to release it sometime in March or April. I&#8217;m working on this project with two friends, so I don&#8217;t have complete control over the timeline, but things are moving in the right direction.</p><h4><strong>&#128202; Business Updates</strong></h4><p>FocusKit MRR is still stalling at around $120. The App Store ranking isn&#8217;t great yet, but the app is still relatively young, so I doubt it will rank for the bigger keywords this soon. The most important things right now are: listening to user feedback, gathering reviews on the App Store, and improving the product. That&#8217;s all I can really control.</p><p>On the bright side, one-time-purchase revenue is looking decent. The app made about $600 in the past 28 days, which is pretty cool for a project this young. I&#8217;m also planning to run some App Store screenshot A/B tests soon. I have a feeling that a clean white background with black text could have a better conversion rate than my current design. We&#8217;ll see how that goes.</p><p>Here&#8217;s the big win of the week though: revenue for February 2026 is higher than February 2025. This is huge for me because the past two months were slightly down compared to their respective months from last year. That dip was probably caused by the MKBHD video mention of HabitKit (from &#8220;The Studio&#8221;) which boosted revenue and downloads artificially back then. Now it feels like we&#8217;re actually growing organically again, which is awesome and really reassuring.</p><p>I&#8217;m also thinking about increasing prices for FocusKit. Haven&#8217;t made a final decision yet, but it&#8217;s something I want to experiment with.</p><h4><strong>&#128161; Indie Insights</strong></h4><p><strong>AI tooling keeps getting better.</strong> I think Cursor is the real GOAT right now. It lets you pick whatever AI model you want, gives you full control over the code, and the workflow just feels right. Highlight a code snippet, throw it into the agent context, done. The progress I&#8217;m making across all my projects right now would not be possible without it. Software engineering expertise is becoming less and less of a bottleneck. What matters now is focus, clear thinking, and knowing what to build.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_-ut!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_-ut!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 424w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 848w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 1272w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_-ut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png" width="1456" height="1099" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1099,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2857388,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://sebastianroehl.substack.com/i/189344723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_-ut!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 424w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 848w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 1272w, https://substackcdn.com/image/fetch/$s_!_-ut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093d45f-a9f3-4855-a6e7-d0c3b06f41d2_2688x2028.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>OpenClaw reality check.</strong> Remember when I was super excited about my OpenClaw setup? The reality is that the maintenance cost is just too high. It breaks often, and when I task it to debug itself, it burns through tokens like crazy. Perplexity released an alternative called Perplexity Computer which looks interesting, but I&#8217;m hesitant to sign up for another $200/month subscription just to try some AI tools. I&#8217;m sure more polished agent solutions will come over time, making the whole concept less maintenance-intensive. For now, the hype has cooled down for me a little bit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-FXN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-FXN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 424w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 848w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 1272w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-FXN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!-FXN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 424w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 848w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 1272w, https://substackcdn.com/image/fetch/$s_!-FXN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528dfb17-2a14-4d9a-a06e-96a9c394894d_2912x1632.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Focus is the real superpower.</strong> I keep coming back to this, but it&#8217;s really true. In a world where you can build almost anything with the right tools and a bit of persistence, the bottleneck is not skill anymore. It&#8217;s focus. Knowing what you want and pursuing your projects with real motivation is what separates people who ship from people who don&#8217;t. This week I had some days with zero appointments, and the difference in output compared to days with scattered meetings was massive. I also realized that I slipped back into some bad habits around screen time and distractions. It&#8217;s always like a landslide. You open one gate, and the flood comes. You need to stay disciplined on all fronts, all the time. Deep life habits like going offline more, reading more, and limiting social media to a fixed 20-minute window per day are things I want to get back to.</p><p><strong>Journaling is underrated.</strong> I&#8217;ve been writing in my journal daily for a while now, and it really is a superpower. It helps me reflect on my progress and where I want to go. The past couple of weeks have been super work-intensive and I made a ton of progress, but writing things down every day keeps me grounded and intentional. If you&#8217;re not journaling yet, I really recommend trying it.</p><h4><strong>&#127919; Goals for Next Week</strong></h4><p>Next week I want to start planning the next big FocusKit update. I think it will be all about Home Screen Widgets. I also want to continue with HabitKit development and finally tackle some long-due performance optimizations. Lots of work ahead, but I&#8217;m feeling motivated and ready to keep shipping.</p><p>That&#8217;s it for this week. Thanks for reading, and I&#8217;ll see you in the next one!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://sebastianroehl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Building A Profitable App Business! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>