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.
What shipped
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.
Product detail
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.
Build quality
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.
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.
Freshness and fallbacks
Layer metadata exposes age, status, reliability, and errors. Last-good cache behavior keeps the map useful during temporary feed trouble.
Performance work
Large layer responses are pre-compressed once per refresh, turning repeated map/API traffic into a mostly network-bound operation.
Accessible by default
The project includes keyboard-conscious panels, mobile layouts, accessibility checks, and no-login access to the public experience.
Coverage
A city-scale open-data surface.
CityGrid
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.