Johan Forsell's Avatar

Johan Forsell

@joforselldev

Grade school teacher turned iOS developer, currently at Tibber. Maker of bartab.info. Posting mostly nerdy stuff.

240
Followers
250
Following
420
Posts
17.11.2024
Joined
Posts Following

Latest posts by Johan Forsell @joforselldev

Video thumbnail

New subscriptions need to be properly celebrated! πŸ₯³

#buildinpublic #indiedev #iosdev #swift

07.03.2026 08:17 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

So it only makes sense to focus on widening the top level funnel, bringing in as many as possible to see if the app fits them.

Maybe after this is a localization push for even more reach?

3/3

06.03.2026 15:33 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Something I’ve noticed is that for users where Bartabs setup clicks with their way of working, it’s really sticky. Some users have been using it consistently for several years now and I’d definitely say it now offers more value than ever, hopefully fitting into even more peoples work.

2/3

06.03.2026 15:33 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Menu screen inside Bartab, showing a single menu item and a top aligned text stating 0/50 monthly free transactions left.

Menu screen inside Bartab, showing a single menu item and a top aligned text stating 0/50 monthly free transactions left.

Order sheet inside the Bartab app, showing a total amount to order. At the bottom of the sheet is red text stating ”Monthly transaction limit of 50 reached”. Below the text is a yellow button saying ”Get unlimited transactions”

Order sheet inside the Bartab app, showing a total amount to order. At the bottom of the sheet is red text stating ”Monthly transaction limit of 50 reached”. Below the text is a yellow button saying ”Get unlimited transactions”

Excited and scared to put the final touches on the update that will push Bartab to a freemium model with anonymous login support.

But I’m very hopeful this is something that can really push the needle for Bartabs numbers.

1/3

#buildinpublic #indiedev #iosdev

06.03.2026 15:33 πŸ‘ 10 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Likewise! Love Slices season in general 😍

04.03.2026 14:41 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I would never call it Microslop! That’s deeply disrespectful to Microslop employees and leadership.

04.03.2026 14:40 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

So pretty! 🀩 also Metal driven?

04.03.2026 13:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

This is something that (I think) won’t be used often, but needs to be a smooth, easy and reliable experience.

Polish and reliability feels more important than ever with so much slop hitting the App Store.

#indiedev #buildinpublic #iosdev

04.03.2026 13:08 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

OAuth and anonymous sign in all done, with linking and unlinking in place for a smooth and controlled experience πŸ‘Œ

This ”Last used” badge is an easy UX win that I always appreciate in services I use. Stored in keychain so it persists across reinstalls!

#buildinpublic #indiedev #iosdev #swift

04.03.2026 11:19 πŸ‘ 7 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Ok, way too many hoops to jump through for Facebook OAuth.

I have a feeling a lot of my primary customer group (small businesses) might use Facebook to sign in, but needing a verified business to leverage OAuth feels like unnecessary friction.

But what do I know 🀷

#buildinpublic #indiedev

04.03.2026 10:01 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 1

Setting up OAuth flows is the least fun I’ve had in quite a while πŸ™ƒ

03.03.2026 16:07 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

I just deleted my account instead 🫣

01.03.2026 18:29 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Not surprised with Tim Cook at the helm.

28.02.2026 08:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Sounds like your opinion is nuanced and up to date πŸ™ƒ

28.02.2026 08:05 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I mean, I think we agree the badge here is nonsensical, but it’s still not a product of an opinionated framework but rather a developer choice?

28.02.2026 07:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Iirc this is not the default behavior, so the badge is a developer choice.

28.02.2026 07:41 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Is this really related to which UI framework is used? πŸ€”

28.02.2026 07:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
A screenshot of Ketchup showing the list of PokΓ©mon

A screenshot of Ketchup showing the list of PokΓ©mon

A screenshot of Ketchup showing Pikachu’s page

A screenshot of Ketchup showing Pikachu’s page

A screenshot of Ketchup showing the type matchup calculator

A screenshot of Ketchup showing the type matchup calculator

A screenshot of Ketchup showing a list of moves for Houndour

A screenshot of Ketchup showing a list of moves for Houndour

Since its PokΓ©mon Day, I should probably remind you that I make the nicest PokΓ©dex app out there, Ketchup: apps.apple.com/ie/app/ketchup...

(Reposts appreciated)

27.02.2026 15:03 πŸ‘ 19 πŸ” 11 πŸ’¬ 0 πŸ“Œ 2

This is so awesome! Preordered to try it out with my kids 😊

27.02.2026 19:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Think I noticed that earlier! Thanks for being transparent. Seems like it’s fixed now?

26.02.2026 20:12 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Luckily for my use case it’s pretty unlikely two waiters ring up the same order without syncing. I can imagine it can get pretty hairy for others though!

26.02.2026 20:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I can imagine, it felt safest to stick with the proven default πŸ˜…

26.02.2026 18:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I’m just using the default, which is β€˜last write wins’, but you can adjust this if you want.

26.02.2026 15:53 πŸ‘ 2 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Video thumbnail

Focus is state. Now in the browser.

@​FocusState for ElementaryUI ✨

swiftpackageindex.com/elementary-s...

26.02.2026 15:00 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

I’ve also been doing some significant ASO changes with the last few updates, hoping that can pull some more downloads to trickle down into the (hopefully) more efficient funnel.

26.02.2026 14:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Previous research shows the current setup is shedding A LOT of users before they even see the proper inside of the app, so I’m very curious to see how this will pan out.

bsky.app/profile/jofo...

26.02.2026 13:58 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The biggest reason I unplugged my thumb from my behind and got this done is that the next Bartab update is probably the biggest change, business wise, since its inception.

I’m moving to anonymous access AND a freemium model, hoping to heavily reduce first use friction to get more users in the door.

26.02.2026 13:55 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Finally took the time to set up local instances of Supabase and PowerSync. Surprisingly simple to get up and running actually.

Also set up Cloudflare tunnels for them and the local Vapor server, so I can develop on real devices.

#buildinpublic #indiedev #iosdev #swift

26.02.2026 13:55 πŸ‘ 12 πŸ” 1 πŸ’¬ 2 πŸ“Œ 0

Such an interesting story, loved the episode! I wish he posted here, I really enjoyed following him over on Twitter… @adamlyttleapps.com come on over here ☺️

26.02.2026 13:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

They’re great to see sprinkled around in my timelines 😁 happy to hear you’re continuing!

26.02.2026 13:19 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0