Thumbnail image

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:

  1. Core Functionality First: Prompted Gemini to generate a basic timezone converter—two dropdowns, a clock, and a quick comparison.
  2. 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.
  3. 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.

View the mess on GitHub.

“Sundial not included.”

Related Posts