‹ Back

TRANSIT

A Toronto transit app, rebuilt around what riders couldn't do

The home screen in greyscale — live departures keep a filled dot, scheduled ones a hollow dot, so the two stay distinct with every colour removed
Live and scheduled never share a visual token. The rule holds without colour.

Ten interviews with Toronto commuters kept circling three problems. They couldn't tell which departure times were live and which were timetable guesses — so one wrong estimate cost the app their trust. They planned around crowding as much as time; one pointed to a Hong Kong app that showed how full the bus was. And they didn't know a single trip could cross two agencies, each charging its own fare. Every screen here answers one of the three.

Insight 01 / Live vs scheduled
Nearby departures — each time is either a filled live dot or a hollow scheduled one, and crowding chips appear only on live vehicles
Every departure is either a filled live dot or a hollow scheduled one — and crowding shows only for live vehicles, because you can't know the load of a bus that hasn't left.
Insight 02 / Crowding
Plan a trip — the arrival-time picker is a histogram whose bars are coloured by how crowded each departure is, dragged to choose a time
Arrival time is a crowding histogram you drag, not a list of departures — so "get a seat" becomes a decision instead of a gamble.
Insight 03 / Two agencies
Stop detail — a notice warns that the 97 continues as YRT 98 past Steeles and the TTC fare does not transfer, with a live departures list below
When the 97 continues as YRT 98 past Steeles, the stop says so — and that your TTC fare won't transfer — before you've boarded.

What's real and what isn't: the routes and stations are real TTC and YRT lines; everything else is simulated. The data is fake but internally consistent, a clock starts at 08:12 and live times count down in real seconds, and the map is a hand-drawn SVG — no map library, no backend. It's built to make three decisions legible, not to route you anywhere.

Try it ↗
Next project

Forever Fit 24/7

Game · UX · Full-stack

A playable essay on dark patterns

View project