Turning California crash records into an interactive safety map
Free maps and more than 1,500 statically built pages of California crash data for people walking, cycling and riding motorcycles, built from the state’s CCRS records, federal FARS data and OpenStreetMap.
- Client
- Safe Streets Map (own product)
- Role
- Founder and sole engineer
- Built with
- Next.js, React, Mapbox GL, Three.js, Postgres, Tailwind CSS
- Integrations
- CCRS (data.ca.gov), NHTSA FARS, OpenStreetMap, National Weather Service, Caltrans

(01)The problem
California publishes detailed collision records, but as bulk datasets that are practically unusable for a rider or driver who just wants to know which roads are dangerous. The data needed to be cleaned, joined, and put on a map someone could actually read.
(02)The approach
- 01
Data pipeline from public records
Node build scripts turn CCRS crash records and FARS fatal-crash data into compact JSON files, and flag cities whose police reports mostly lack map locations, so undercounted places are labelled rather than shown as quiet.
- 02
A map people can use
Mapbox GL maps for walking, cycling and motorcycling, with crash hotspots, filters, custom vector tilesets, and live weather and road-closure layers from NWS and Caltrans.
- 03
A product, built and run end to end
Designed, built and run as my own product: walking, cycling and motorcycling maps, a ride planner with weather and road conditions, a tool that checks a GPX or FIT ride against crash records entirely in the browser, admin tools for reviewing community rides, and a physics-based 3D riding simulator.
- 04
Pages that answer searches
Every city, busy street and car-crash statistic gets its own static page, built at build time from the same data, so the numbers are in the HTML that search engines and AI assistants read. Sitemap, structured data and llms.txt are generated from those files too.