Johan Forsell
banner
joforselldev.bsky.social
Johan Forsell
@joforselldev.bsky.social
Grade school teacher turned iOS developer, currently at Tibber. Maker of bartab.info. Posting mostly nerdy stuff.
Love to see the journey! I guess the recent updates gave them renewed faith in the staying power of Bartab 😁

#buildinpublic #indiedev #iosdev
February 13, 2026 at 10:16 AM
First customer helped through the direct chat! 💬

They wanted help picking iPads. Apparently they’re buying two of them just to use my app, which is pretty cool! 🤯

#buildinpublic #indiedev #iosdev
I’m adding a direct line of contact between me and Bartab users, in the form of an in app chat.

The idea is that there won’t be that many cases where it’s needed, but when it is it’s nice to have a direct line. Plus it feels like a high level of service for users!

#buildinpublic #indiedev #iosdev
February 12, 2026 at 5:35 PM
Lmao yeah thanks, that clarifies things. 🤦

#swiftui
February 12, 2026 at 5:09 PM
UI overhaul moving along nicely, not many screens left to face lift.

Here’s some neat QoL and visual updates to the statistics views. 📊

So easy to make things like this with the #SwiftUI Charts library, loving it!

#buildinpublic #indiedev #iosdev
February 12, 2026 at 12:13 PM
So is it just me or is the Xcode debugger excruciatingly slow lately? 🥴
February 12, 2026 at 10:41 AM
Working on a big UI overhaul for Bartab. Looking through the app screen by screen is making me realize a lot of this hasn’t been scrutinized in a loooong time.

I’m no designer, so moving closer to platform-native design is certainly making things easier for me.

#buildinpublic #indiedev #iosdev
February 10, 2026 at 6:17 AM
Highly recommend this podcast for anyone who likes app development, indie development or both! Haven’t missed an episode since diving into the indie app world 😁
S5E21: All of the Dooms 🫡

@lightbeaminsight.bsky.social has the Dooms (is his GUI project long for this world?), meanwhile @breakth-esystem.bsky.social is streaming data

Join us for a podcast about indie dev, with a focus on mobile platforms

youtu.be/IO9QxYMqd9Y

#Podcast #IndieDev #iOSDev
S5E21: All of the Dooms 🫡
YouTube video by Waiting For Review
youtu.be
February 5, 2026 at 12:24 PM
Ok, check on all of these! Also created a paywall experiment to A/B test paywall designs! One with social proof and one with features listed. Not sure if I want to experiment with prices before I move to a freemium model 🤔
Let’s go, 2 pretty sizeable and one game changing update in just over a month’s time 🤩

Next up, set things up to properly utilize all the doodads baked into @revenuecat.com, starting with:

- webhooks to sync with my own db
- paywall
- customer center
- @telemetrydeck.com integration

What else?
February 5, 2026 at 6:21 AM
Reposted by Johan Forsell
One of the most effective things you can do right now to fight Trump and ICE is to cancel your ChatGPT subscription.
February 4, 2026 at 1:14 PM
I want to eventually move from account creation + hard paywall to anonymous logins + freemium model. I did some research to get a feel for the numbers.

Last 30 days had 66 installs -> 47 account creations -> 9 started trials.

This means ~86% of installs never even tried the app… 😭

#buildinpublic
February 4, 2026 at 4:55 PM
Ok this is pretty neat, I managed to set up impersonation in Bartab. Now I can see what users see, with nothing but a user id!

It’s leveraging the Supabase auth admin REST API, through my own Vapor server layer. I might actually do a write up of how I did it, couldn’t find any other sources for it.
February 3, 2026 at 9:05 AM
So cool 🤩 I guess internal admin dashboard hopped up a few steps in the to-do list, I just have to give this a spin!
Thanks to everyone who made the "Swift @ FOSDEM" event such a pleasure - great talks, thoughtful discussions, and a very welcoming crowd!

Find a recording of my talk on Swift in the Browser here if you’re curious 👇

www.youtube.com/watch?v=OmQ8...

#SwiftLang #FOSDEM #WebAssembly
Swift in the Browser with ElementaryUI
YouTube video by Swift Meetups
www.youtube.com
February 2, 2026 at 6:46 PM
Reposted by Johan Forsell
Added a sponsor button for those who want to contribute to my work for Foundation Models and App Store Connect CLI

github.com/sponsors/ru...
Sponsor @rudrankriyam on GitHub Sponsors
iOS + AI driven coding. Sharing my work for the AI world ahead to benefit from
github.com
February 2, 2026 at 9:46 AM
Reposted by Johan Forsell
I'm buying a house, and those things aren't cheap. So I did a thing on LinkedIn. If you're in charge of a freelance budget, I'd appreciate it if you checked it out! And if you aren't, shares are always welcome.

www.linkedin.com/posts/ojhasl...
January 27, 2026 at 1:43 PM
Let’s go, 2 pretty sizeable and one game changing update in just over a month’s time 🤩

Next up, set things up to properly utilize all the doodads baked into @revenuecat.com, starting with:

- webhooks to sync with my own db
- paywall
- customer center
- @telemetrydeck.com integration

What else?
January 31, 2026 at 7:11 PM
Completely unrelated, I made some additional tweaks before submitting for review 🙃

But it made sense to return to the issue of deciding when and where to ask for App Store reviews, given the feedback focus of the update.

#buildinpublic #indiedev #iosdev
How is scope creep even worse when I’m working solo? 😅
January 28, 2026 at 10:29 PM
How is scope creep even worse when I’m working solo? 😅
January 28, 2026 at 2:11 PM
Took a stroll through my App Store stats and it totally makes sense to drop support for iOS 16 and move up to iOS 18 (probably even way overdue).

Any potential users lost is worth it for the improvements to the ScrollView API alone 😅

#iosdev #swift #swiftui #buildinpublic
January 26, 2026 at 10:00 PM
Added another avenue for feedback inside the app! Users will be able to propose translations or vote for existing proposals. I think this will be the final feature to go with the “User feedback” update, 2.2.

#buildinpublic #indiedev #iosdev
January 25, 2026 at 11:26 AM
The word “localization” is not as common outside the software bubble right? Does using “translation” make more sense in a user facing context? Eg. translation requests vs localization requests
January 22, 2026 at 9:30 PM
Ok, think I’m arriving at something I’m happy with. I like the uniformity between sections here.

Considering adding a final section with “your suggestions”, something to further clarify that your suggestion has been noted but not yet accepted. 🤔
January 22, 2026 at 5:27 AM
Closing in on done with adding a roadmap in the app. Everything behind the scenes is in place, all I need to finish now is the UI parts.

I can’t quite decide on how to display the item under development. I have a favorite but won’t say which 😁

Thought, suggestions?

#buildinpublic #indiedev
January 21, 2026 at 2:05 PM
It’s been such a pivotal move for me to untangle my mess of a database and set up in SQL instead.

It’s helped tremendously to have a clear mental model of how my app actually works, which in turn has made further development more fun, easy and fast 🤩
January 21, 2026 at 6:57 AM
Aaand it’s set up with email and push notifications when there’s a new message (both for me and for users!).

Pretty straightforward to implement, with deep links and everything, now that things are already set up 😊

#buildinpublic #indiedev #iosdev
We’re getting somewhere! I wonder if this message is enough to convey that I’ll gladly help but that it might take a little while 🤔

#indiedev #buildinpublic #iosdev
January 16, 2026 at 3:55 PM
We’re getting somewhere! I wonder if this message is enough to convey that I’ll gladly help but that it might take a little while 🤔

#indiedev #buildinpublic #iosdev
January 16, 2026 at 12:11 PM