Project
Browser Tab Counter
How many browser tabs do you have open right now? A tiny macOS menu-bar app that counts them across every browser, at a glance.
“Geez… I wonder how many tabs I have open now.”
I heard it from across the room, and I knew the answer was north of 100. I’m a tab-neat-freak, the kind of PC guy who shuts the machine down every single night. You do that too, right? …Right?
And the culprit doesn’t just hoard tabs. They hoard them across several different browsers at once.
So, half as a joke: could I build a little “tab counter” for macOS?
On my Obsidian vault, I noted down what I wanted and where I’d draw the line. For something this simple, it turned out to be genuinely easy… to start. This was new territory. I’d never built anything for macOS before (again: PC guy). But with my friend Claude riding shotgun, the proof-of-concept came together fast: a tiny number living up in the menu bar, quietly counting every tab across every browser.
One nice surprise: macOS natively makes the app ask before it can peek at your browsers, and it shows you exactly why. A win for privacy and security!
Lesson 1: there’s more than one way to install a Mac app
My first instinct was using the App Store, the obvious “click install and you’re done” route. That got me learning more about how apps actually get onto a Mac in the first place.
If you use a Mac, you’ve probably met the other way: the .dmg. You download
it, it pops open, and it asks you to drag the app into your Applications folder.
Turns out these two paths are
architecturally different
in ways that matter. A bit of reading later, I made the call: .dmg only.
Every new version has to be re-packaged into a fresh .dmg.
Lesson 2: the Mac doesn’t trust strangers
Here’s the snag with the .dmg route. If you download an app from the web, macOS slams on the brakes for security reasons. You can click through the
workaround, and savvy users are familiar with this. I wanted something cleaner.
Something that just opens.
Certificates, secrets, and signatures
The fix is to sign the app with a certificate Apple trusts, so every Mac can confirm the code is really from me and hasn’t been tampered with along the way.
I have an Apple Developer ID, which means I can get Apple to bless each .dmg I
put out. I took some time reviewing this part, because this puts my own certificate out
into the world, and I wanted to genuinely understand it, not just follow steps. Certificates, secrets, signatures: I got through it.
Building the .dmg with GitHub Actions
Building the package itself was the clear part. The new twist was baking the
signing step into the build. Locally that’s easy with a certificate on my
machine, but I keep all my code on GitHub, and I’ve been forcing myself to increase my GH literacy beyond the push and pull.
Using GitHub Actions, it can build the .dmg for me automatically on every
release. Learning this was a treat, because it’s the exact CI/CD muscle people
use every day at work.
The final step was wiring the signing into that pipeline. Officially, this is called notarizing and stapling. Lots of trial and error… but Claude and I eventually got it going.
Shipping fast, and adding the fun stuff
A quick test with the original tab-hoarder helped me squash a few early bugs and, better yet, hear what people might actually want. Two “nice-to-haves” made the cut:
- a little graph of your tab count over the day (very simple, no dashboards).
- a threshold alert: set your own limit, and the menu-bar icon throws up a ⚠️ the moment you go over it.
The one I didn’t ship
The tab-hoarder floated one more idea: search across the titles of every open tab. My privacy alarm went off instantly… Using a branch of the code, I prototyped it anyway, just to see.
It worked, and it was totally feasible. To reduce privacy worries, the plan was to put this behind an opt-in toggle. This way there is a clearer acknowledgement from the user. In addition to messing up the privacy narrative, one thing made me decide against shipping it: every browser already has its own tab search built in, and mine would only really shine for someone juggling three or more browsers at once. And honestly, if that’s you, a tab counter isn’t going to save you. 😅
Stable version is out now!
A silly question, a tiny app, and a surprising amount learned about how Mac software actually gets built, trusted, and shipped. Not bad for a PC guy.
Links
- Download & source on GitHub: mariolonghi/browser-tab-counter
- Latest release (
.dmg): github.com/mariolonghi/browser-tab-counter/releases/latest
Updates
Update 1 — 2026-07-29: I went back and ran a full security review of the app and its release pipeline. Read about hardening the app →