Josh Griffith
Build Log

PulseMap

Live

Real-time community health monitoring, built from public government data

  • TypeScript
  • Vite
  • MapLibre GL
  • deck.gl
  • Vercel Edge Functions
  • Upstash Redis

A live dashboard that pulls public health data from CDC, EPA, WHO, CMS, NOAA and NASA feeds onto one interactive map, so someone with no medical background can read the conditions where they live. Search a ZIP code and the national picture resolves to a county-level one: a single risk score, a plain-English situation report, and the underlying signals behind both. There is no database and no account system — nothing about the person looking is stored.

  • Eight live data layers — wastewater surveillance, flu activity, air quality, outbreaks, hospitals, heat alerts, wildfires and UV — with pollen still in progress
  • A Community Risk Score that weights the sources rather than averaging them: wastewater 30%, flu 25%, air quality 20%, hospital capacity 15%, outbreak alerts 10%
  • A situation report that always surfaces exactly three items, ranked by how far each signal sits from its own historical norm — and backfilled with calm signals when nothing is wrong, so the card stays readable on a quiet day
  • Anomaly detection using Welford's online algorithm, tracked per signal type and county, holding only a running count, mean and variance instead of a stored time series — and requiring ten observations before it will call anything unusual
  • Fat client, thin server: all scoring runs in the browser and the edge functions only proxy and cache, with mock-data fallbacks so a dead upstream feed degrades the map instead of breaking it
The national PulseMap view: thousands of coloured signal points across the United States, a Community Risk Score gauge reading 33 Moderate, a three-item situation report, and a per-source breakdown listing wastewater, flu, air quality, hospitals, outbreaks, wildfires, heat alerts and UV.
The national view with every layer on — one composite score, three things worth knowing, and the sources behind them.
PulseMap after a ZIP code search for 92057, zoomed into Southern California with a handful of large signal circles, a red banner reading "Air quality index in this area is 3.0 times above historical average", and the risk score panel now labelled as a local score.
A ZIP search swaps the national score for a local one and raises the banner when a signal breaks from its own norm.