You are browsing as a guest. Sign up (or log in) to start making projects!

gchristan_studio

@gchristan_studio

Joined August 6th, 2026

  • 2Devlogs
  • 2Projects
  • 1Ships
  • 15Votes
Ship Pending review

I made Worldline, a single self-contained HTML file that solves the annoyance of doing timezone math by hand every time you need to schedule something with someone in another country. It fixes this in three main ways: you drag one slider and everyone’s local time updates live, color coded so you know at a glance if its a decent hour for the, instead of converting each person one at a time; a “find a good time for everyone’ button scans the whole day and suggest fair windows instead o you eyeballing it; and one click copies a ready-to-paste message with everyone’s time in it, so you stop hand typing the same line into Slack every time. It also remembers your people list between sessions and lets you copy a shareable link, so it’s genuinely usable day to day, not just a demo.

The hardest part was a DST bug where my own time updated correctly as I dragged the slider but everyone else’s was off by an hour depending on the date, which took real debugging to trace back to how I was anchoring the reference date before converting it per timezone. I’m proud that the timezone conversion is actually correct across DST boundaries and that the whole thing runs with zero backend, zero install, and zero dependencies, just open the file. To test it, add at least two people, drag the slider through different hours to watch the status dots change, then try the “find a good time” and “copy message” buttons.

Try project → See source code →
Open comments for this post

48m 18s logged

The big three from the “whats next” list are all in now: a real timezone search instead of my hand-typed shortlist, working hours you can actually set per person instead of assuming everyone works 9-6, and a shareable link so I stop readding my team everytime I open this on a different device.

The timezone search was the easy win, turns out the browser already knows every timezone (Intl.supportedValuesOf), I just didn’t know that existed when I first wrote it. The working hours thing took more thought since it touches basically every function that checks if a time is “good,” but it was mostly mechanical once I pulled that logic into its own function. Used Claude again for the CSS on the new bits (the working-hours inputs, the little clickable hours label) so it’d actually match the rest of the page instead of looking bolted on, and had it sanity-check the storage-loading code since I chained a few promises together in a way that felt fragile and wanted a second pair of eyes on it.

Still rough: editing hours is done through prompt() popups because I didn’t want to build a whole modal for it, and the shareable link is a bit theoretical since this is just a static file, it works, but only really makes sense if you host it somewhere. Good enough though. Onto whatever breaks next.

0
0
13
Open comments for this post

2h 27m 51s logged

I built this because I was sick of doing timezone math by hand every time I had to schedule something with someone in another country. I kept opening tabs, converting “3pm PT” to five different cities, then hand-typing the result into Slack. Small annoyance, but it happened constantly. So now there’s Worldline: drag one slider, see everyone’s local time update live and color-coded, hit “find a good time” to get a few suggested windows, and copy a ready-made message instead of typing it out again.

I wrote the actual logic myself: the timezone conversion, the slider, the scoring for what counts as a “good” time. But I leaned on Claude a fair amount along the way. It helped me debug a nasty DST-related bug where everyone’s time except mine was off by an hour depending on the date; I could tell something was wrong but Claude spotted that I was building the reference date in the wrong spot relative to the timezone conversion. It also did most of the heavy lifting on styling, left alone this would’ve been black text on white with default buttons, so the color palette, spacing, and the slider actually looking like a slider is basically all Claude’s doing on the CSS side. I’m sorry I don’t know how to style ok? 🫠

It’s rough in places, the timezone dropdown is a shortlist of ~30 common zones, not the full IANA list, and “good time” just means 9–6 for everyone with no real concept of actual work schedules. But it does the one thing I built it to do: drag, copy, paste, done. v1.0, shipped.

2
0
64

Followers

Loading…