Johan Forsell
joforselldev.bsky.social
Johan Forsell
@joforselldev.bsky.social
Grade school teacher turned iOS developer, currently at Tibber. Maker of bartab.info. Absolutely love learning new things.
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
The good thing about doing solo indie stuff is that I have the whole stack to myself and noone’s checking my work.

The bad thing about doing solo indie stuff is that I have the whole stack to myself and noone’s checking my work.
January 15, 2026 at 8:44 PM
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
January 10, 2026 at 10:03 PM
Feeling pretty good about the updates to the menu item details view and the new full screen layout for text/number inputs. Getting ready to ship! 🚢

#buildinpublic #indiedev #iosdev #swiftui
January 9, 2026 at 8:12 AM
Reposted by Johan Forsell
now it would be the time to reach out to your friends and tell them to give bluesky another chance
January 9, 2026 at 7:34 AM
Reposted by Johan Forsell
🚨 I'm looking to sell my soccer app, Elite Football Club.

It's like Elite Hoops, but for soccer (or football, depending on where you live 😉).

Reasons:
- I just haven't been able to grow it.
- But I also haven't really tried, I learned I dont care about soccer.
January 3, 2026 at 1:35 AM
I think this feels all right. I actually really like having a whole dedicated page for the input instead of editing in place, with the space for clarifications in the footer and additional, related actions.

Also sneak peek of the upcoming stock tracking feature 🫣

#buildinpublic #indiedev #iosdev
January 1, 2026 at 11:04 PM
What are people using for error/crash monitoring these days? I’ve heard good things about Sentry and I think I’ve heard Raygun mentioned. We use New Relic at the jobby job and that’s all right I guess.

Any recommendations?

#iosdev #indiedev
January 1, 2026 at 6:28 PM
Always a great way to start the year! 🤩

Going to be a great year for dev podcasting with Launched back to a regular cadence. ❤️
“Turn [those ads] off right now – they're burning money” – Jordan's marketing agency

For this year's Christmas Special, I talked with indie app dev @jordanmorgan10.bsky.social about ads and creative fatigue, seasonality, and finding market fit even without huge marketing budgets.
January 1, 2026 at 10:05 AM
Speaking of vanilla components, I want to move my text inputs (eg. user changing the name of a menu item) to full screens pushed onto the stack like this.

Is this style of text field a SwiftUI component or would I need to compose it myself? 🤔

#swiftui #swift #swiftlang #iosdev
December 30, 2025 at 5:43 PM
Something that’s helping a lot though is moving more towards leveraging vanilla platform components, especially for settings like screens/sections.

Makes the app feel native on the platform and takes some design burden off my non designer shoulders…

#buildinpublic #indiedev #iosdev
UI changes always take longer than I anticipate. Not because things are hard to implement (mostly), but because making stuff pretty AND practical is hard.

Growing more appreciative of the talented designers at my jobby job each day 😅

#buildinpublic #indiedev #iosdev
December 30, 2025 at 11:40 AM
UI changes always take longer than I anticipate. Not because things are hard to implement (mostly), but because making stuff pretty AND practical is hard.

Growing more appreciative of the talented designers at my jobby job each day 😅

#buildinpublic #indiedev #iosdev
December 30, 2025 at 7:20 AM
Ok, really feels like I’ve crossed a milestone with Bartab 2.0 out.

• Firebase -> Supabase (so NoSQL to SQL AND moved auth)
• Synced local SQLite DB via PowerSync (everything feels so fast 🤩)
• Moved Vapor backend to free Render instance (and lessened dependency)

#buildinpublic #indiedev #iosdev
December 27, 2025 at 11:27 PM
Noticed the delivery rate of my free tier Mailgun account is pretty shit. Now that I’ve moved to sign ups requiring email confirmation that obviously won’t do. Amazon SES seems much more reliable so sticking to that for now 👌

#buildinpublic #indiedev #iosdev
December 26, 2025 at 1:32 PM
Ok I did it, I pushed the button 🫣

This means I can leave a lot of legacy stuff tied to Firebase behind me! Next up is likely one of the smaller points on my loose checklist, accompanied by some long overdue cleanup and refactoring 🧹

#buildinpublic #indiedev #iosdev
December 26, 2025 at 7:41 AM
One point on my incredibly loose to-do list is an in-app road map. It’d give transparency to users on upcoming work/features. Accompanying this would be voting and suggestions from users.

Anyone who’ve tried something like this? What were your experiences?

#buildinpublic #indiedev #iosdev
December 22, 2025 at 3:43 PM
Turns out I forgot to implement account deletion for the new auth and database. 🙃 Quick fix though, plus I got to implement my first Vapor middleware to handle authenticating delete queries! 🥳

#buildinpublic #indiedev #iosdev
Ok, where’d the past 3 months go? 🫣

Think I’ll have to keep a dev journal or something if Bartab work keeps being this sporadic. Takes some time to get my bearing again.

Got a version approved and ready, but doing the backend swap for real is scary 😬

#buildinpublic #indiedev #iosdev
Trying to finalize stuff to get Bartab 2.0 out the door but the small tasks keep handing me side quests.

Like, I wanted to set up the forgot password flow and suddenly I’m replacing my old Django web site with GitHub pages and setting up transform rules in Cloudflare.

#buildinpublic #indiedev
December 22, 2025 at 3:10 PM
Ok, where’d the past 3 months go? 🫣

Think I’ll have to keep a dev journal or something if Bartab work keeps being this sporadic. Takes some time to get my bearing again.

Got a version approved and ready, but doing the backend swap for real is scary 😬

#buildinpublic #indiedev #iosdev
Trying to finalize stuff to get Bartab 2.0 out the door but the small tasks keep handing me side quests.

Like, I wanted to set up the forgot password flow and suddenly I’m replacing my old Django web site with GitHub pages and setting up transform rules in Cloudflare.

#buildinpublic #indiedev
December 14, 2025 at 12:06 PM
We’re hiring an iOS engineer at Tibber! Come work on an almost fully SwiftUI project, for a good cause (pushing renewable energy), with awesome colleagues (including me 😁) and a considerate work/life balance in focus. EU based.

jobs.tibber.com/jobs/6879561...

#swift #swiftui #hiring
iOS Engineer - Tibber
Enable smarter use of energy, at scale.
jobs.tibber.com
December 8, 2025 at 8:05 AM
Reposted by Johan Forsell
I stand with PBS.

I stand with NPR.

I stand with Stephen Colbert.

I stand with Jimmy Kimmel.

I stand with the First Amendment.

PERIOD.*

*Also #ReleaseTheEPSTEIN_Files
September 18, 2025 at 6:40 PM
Reposted by Johan Forsell
1939
July 26, 2025 at 6:40 PM
Reposted by Johan Forsell
Our new app PocketShelf is OUT NOW! 🥳

- Track your Books 📚
- Get AI summaries of your reading notes 📝
- Designed for Liquid Glass 💧
- 100% Indie Made ♥️

Exclusively on iOS26!

Please help us spread the word! 🙇‍♂️

#shipaton #buildinpublic
September 15, 2025 at 5:50 PM
Trying to finalize stuff to get Bartab 2.0 out the door but the small tasks keep handing me side quests.

Like, I wanted to set up the forgot password flow and suddenly I’m replacing my old Django web site with GitHub pages and setting up transform rules in Cloudflare.

#buildinpublic #indiedev
August 29, 2025 at 4:49 PM
Reposted by Johan Forsell
iOS devs: what do you use to track a funnel from App Store page view right the way through to onboarding steps and onto in app subscription purchase?

Right now I’m using GA for tracking onboarding steps, RevenueCat for purchases and then just eyeballing App Store analytics for page views. #iosdev
August 26, 2025 at 3:11 PM