Live civic product

CityGrid

Toronto, live right now. A full-screen open-data map that helps people understand transit, closures, weather, public services, and local conditions without creating an account.

Updated July 3, 2026
28 production data layers
9,480 TTC stops with live arrivals
PWA installable, no login required
Open data Toronto, Ontario, TTC, Metrolinx, OSM, ECCC

A living map, not a directory.

CityGrid opens directly into the product. No landing page, no account wall, no dashboard maze. The map is already alive with public infrastructure data, and every layer carries a reliability signal so users know whether they are seeing live data, a recent snapshot, or an insights layer.

Live movement

TTC vehicles, stop-level arrivals, Metrolinx GO/UP positions, Bike Share availability, subway/LRT lines, road restrictions, and highway incidents in one city-scale view.

Tap-anywhere context

Click a place and CityGrid assembles the nearby layers into a useful card instead of forcing people to inspect each dataset separately.

Emergency mode

Weather warnings can surface a crisis banner and switch the map toward alerts, closures, air quality, cool spaces, and essential services.

Personal transit alerts

Users can ask for anonymous browser push notifications before a bus or streetcar reaches a stop. No CityGrid account is needed.

Privacy-first analytics

Cookieless, first-party metrics measure reach without raw IPs, search text, third-party trackers, or personal profiles.

Enterprise-ready core

The Fastify data engine normalizes every source into stable GeoJSON so future city or operations dashboards can use the same spine.

Screens that prove the system.

The interface stays focused on the map while exposing deeper workflows only when they are useful: stop cards, alert setup, insights, layers, and mobile operation.

CityGrid stop card showing live TTC arrivals and a weather alert
Stop-level context Tap a TTC stop to see next arrivals, alerts affecting the area, and a direct path into notification setup.
CityGrid alert composer for anonymous transit push notifications
Anonymous alerts Route, timing, and recurrence controls are tied to the browser subscription instead of a user account.
CityGrid insights panel over the live Toronto map
Civic context The insights panel explains sources, caveats, counts, and provenance so open data stays honest.
CityGrid mobile layout with controls around the live Toronto map
Mobile-first utility The PWA keeps search, status, layers, and map controls reachable on a phone.

Designed to survive real civic data.

The hard part is not drawing dots on a map. The hard part is making dozens of uneven public feeds feel coherent, fast, and trustworthy.

01

Normalized data spine

Each source is polled, cleaned, cached, and served through a stable GeoJSON layer API, so the UI does not inherit every upstream quirk.

02

Freshness and fallbacks

Layer metadata exposes age, status, reliability, and errors. Last-good cache behavior keeps the map useful during temporary feed trouble.

03

Performance work

Large layer responses are pre-compressed once per refresh, turning repeated map/API traffic into a mostly network-bound operation.

04

Accessible by default

The project includes keyboard-conscious panels, mobile layouts, accessibility checks, and no-login access to the public experience.

A city-scale open-data surface.

Transit TTC stops Bike Share GO/UP Closures Highway incidents Traffic cameras Weather alerts Air quality Parks Libraries Beaches Public washrooms Child care Hospitals Fire stations Police facilities DineSafe RentSafeTO Public art EV charging Income insights Collisions Crime insights

Toronto's public infrastructure, live on one map.

Free for the public to use, built as the proof point for deeper civic and operations integrations.