projects · commute-tracker

Should I go in — and when?

A hybrid schedule turns "how bad is traffic" into a decision you make ten times a week. commute-tracker collects real corridor timings around the clock, learns the shape of each day, and answers the only two questions that matter: which office days cost the least, and when to leave. Verdict it settled: the new office runs ~1.8–1.9× the old commute — so the answer is a plan, not a feeling.

The product

A dashboard that answers, then explains

The layout is a three-tier answer machine: the verdict now, the trends that justify it, and the exploration layer underneath.

dashboard — when to leave · plan your week
commute-tracker dashboard: morning and evening departure-time charts with 10th–90th percentile bands, and a plan-your-week row of weekday cards with GO badges
The answer, drawn: median and 10th–90th percentile bands per departure time (real history, not a vendor's guess), then the week planned into GO days. One crimson doing all the talking.
the verdict
The damage: new office runs 1.8 times the old commute — 25 vs 46 minutes, 238 extra hours per year
The question the app was built to settle, settled: 1.8× the old commute, measured the same way, priced in hours and fuel.

Native on iPhone

A SwiftUI app (plus home-screen widget and watch app) ships through TestFlight — and it's not just a viewer. The phone is the platform's ground truth: it records actual drives in the background (battery-friendly coarse GPS) and uploads them, so predictions are continuously checked against real trips rather than trusted on faith. It talks to the server over an authenticated API designed so the phone works from anywhere without weakening the SSO front door.

  • StackFastAPI + SQLite server · vanilla JS + Chart.js + MapLibre web · SwiftUI iOS app, widget & watch app
  • DataCorridor timings sampled continuously for months — predictions are quantiles over real history, with an uncertainty band, never a vendor's black box
  • SecurityLAN surface is read-only; every write lives behind SSO + MFA; the app API uses bearer auth with constant-time comparison. Hardened after an internal security review.
  • Sourcegithub.com/travismetcalf/commute-tracker — MIT, server + iOS in one repo, honest ops docs included
iOS · simulator
Commute iOS app: when-to-leave percentile charts and the plan-your-week list, in the dusk theme
The same answers, native: quantile bands and the week plan in SwiftUI, wearing the dusk theme.

Lessons

What it taught the platform

Degrade like you mean it

The map is the page's least important widget and most fragile dependency, so when WebGL isn't available it fails to a single honest sentence while every number keeps working.

One crimson, two tones

The corridor map carries traffic in a single hue — darker means slower. That rule, made here, became house law on the styleguide.

Reads and writes are different products

Letting the LAN read freely while routing every mutation through the SSO surface became the platform's trust-surfaces pattern.

Copied