
Building ZoneBro- A Timezone Tool for the Chronologically Challenged
Remote work means coordinating with people across timezones. This shouldn’t be hard. Yet every timezone tool I found was either bloated with features I didn’t need or looked like it was designed in 2003 using Excel conditional formatting. I didn’t want a Swiss Army knife—just a clean way to answer: “If it’s 2 PM in London, is my colleague in Sydney awake or should I wait until tomorrow to passive-aggressively ping them about that PR?”
The Problem: Timezones Are a Social Construct
Enter ZoneBro. Github Link
Building a Timezone Tool with an AI Co-Pilot
I built ZoneBro entirely through Gemini-CLI, one prompt at a time. No frameworks, no build tools—just raw HTML, CSS, and JS, deployed as a static site. Here’s how:
- Core Functionality First: Prompted Gemini to generate a basic timezone converter—two dropdowns, a clock, and a quick comparison.
- Testing in Real-Time: Every feature was immediately opened in the browser. If it worked, I kept it. If it didn’t, I told Gemini to fix it or simplify.
- Feature Iteration: Added:
- Dual timezone display (so I could stop mentally calculating UTC offsets).
- Working hour overlap (yellow-highlighted if people are awake, red if they’re probably asleep).
- Time slider (because sometimes you need to plan ahead).
- Real-time sync toggle (so I could pause it when testing).
- Pinned timezones (via
localStorage
, for frequent comparisons). - Mobile view (because I check timezones from my phone more than I admit).
What Didn’t Make the Cut
I purposefully avoided:
- Third-party APIs (timezone calculations are done in-browser via
Intl
). - Logins or cloud sync (no one needs another account just to check the time).
- Useless extras (World clocks? Sunrise/sunset? My colleagues don’t care about golden hour in Bali—they care if we’re having a meeting at 9 PM their time).
The Stack: So Simple It Hurts
- Frontend: Vanilla JS, with a single HTML file (yes, really).
- Styling: A single CSS file (under 200 lines).
- Deployment: Pushed to GitHub Pages (could equally go to Cloudflare).
- Persistence:
localStorage
for pinned zones.
What Surprised Me
- Gemini-CLI was shockingly good at translating my vague requests into working JS—though I had to refine prompts when it overcomplicated things.
- The hardest part wasn’t the code—it was deciding what not to build. Every feature felt trivial to add, but bloat would ruin the tool’s simplicity.
- People actually use it. Coworkers started asking for the link. I don’t know if that’s flattering or sad.
What’s Next?
Maybe:
- Keyboard shortcuts (because clicking is for peasants).
- A dark mode (so I can check timezones at 2 AM without burning my retinas).
- Shared links for sending time comparisons (so I can passive-aggressively send “Look, it’s 11 PM for them” without typing it out).
Final Thoughts
ZoneBro works. It’s fast, ugly in a minimalist way, and does exactly what it needs to. And if it ever breaks? No big deal—time is an illusion anyway.
“Sundial not included.”