Last night my daughter was sick, so I spent a couple of hours sitting in her bed to help her fall asleep. With a bit of time on my hands, I put together this little open source project.
I really don’t know if anyone has a need for this other than me. But I’ve built this app a few times for myself in the past, so last night I finally took the initiative to make it generic and reusable – both for my future self and anyone else who might find it useful.
It’s called BespokeApp. It’s a simple iOS app that gives you a tabbed web browser with the pre-defined websites of your choosing.
Why is this helpful? Well, I have a number of websites I visit frequently that are all related.
For example, in my day-to-day business running my little software company, I often bounce between my help desk, my customer database, my website stats, and a few other 3rd party web apps like Linode and NodePing.
Separately, I have a number of web apps running locally on my iMac that I use to manage our home media sever, Docker, and some Raspberry Pi stuff.
I think of all these websites as belonging to distinct groups that are helpful when used together while I’m focused on a specific task. A common workflow I’ll run multiple times per day is…
I’ll get a push notification on my phone about a new support ticket from a customer. So, I’ll open up my bespoke, small biz app, flip to my help desk, and read their ticket. If it looks like they’re having a problem with their license or need me to send them a duplicate receipt, I can one-tap over to my backend system, lookup their order, and reply.
When I’m working on a task that requires information from various sources or multiple websites, BespokeApp just makes it fast and easy to coordinate. Sure, on my Mac (or even Mobile Safari) I could do all of this with bookmarks, but specifically on iOS, this is a pain in the butt to manage with every browser I’ve tried. None of them make switching tabs easy. Or even make accessing a group of bookmarks less than eleventy-thousand taps.
BespokeApp gives me a single app to open with a tabbed interface that lets me quickly switch between related websites.
As I said at the beginning of this post, I’ve written this same app a few different times for myself as I’ve needed different groups. But now it’s generic and reusable.
Everything is configured with a single property list (.plist
) file. It lets you define each tab’s title, image, and the URL it loads.
You can even add multiple (related?) URLs on a single tab. The first one will be loaded by default, and you can then long-press to switch between websites within that tab itself. It’s all very meta.
Best of all, if you find BespokeApp helpful, you don’t need to clone a separate copy for each group (app). Instead, just duplicate the iOS target in Xcode with a new bundle ID, give it a new name, and use a different .plist
. That’ll let you keep all of your bespoke apps in a single project / repo.
So that’s it. BespokeApp is a pragmatic, 152 line long, one-trick pony. I really think you’re gonna love it. (Sorry.)