← Back to Projects

Lantern
LiveOverdose and care, county by county. Lantern is a public-health atlas for every county in the United States: overdose death rates with a twenty-year trend, opioid prescribing, shortage areas and social vulnerability, set quietly on a dark map. It shows places, never people, and says plainly what is counted and what is modelled.
Screenshots
What It Does
- →Maps overdose death rates for every U.S. county, with a 2003 to 2021 trend line for each one and the state line ghosted behind it
- →Shows Medicare Part D opioid prescribing, mental-health shortage areas and social vulnerability on the same map, each labelled as modelled, claims-based, provisional or a designation
- →Drops to census tracts for six states as you zoom into a county, and switches between a state view and the whole country with a state-only colour scale
- →Ranks a county in its state and in the country, and compares two counties side by side with A and B badges
- →Steps through counties from the keyboard, with a plain county list for screen readers and switch access, and announces each selection
- →Draws suppressed and missing data as a hatch, never as zero, and says plainly what is counted and what is modelled
What I Built
- →A static, installable web app (React, TypeScript, Vite) with MapLibre GL on the owner’s own county and tract polygons: no basemap, no map service, no keys
- →Every number is baked at build time from NCHS, CMS, HRSA, CDC/ATSDR SVI, CDC PLACES and Census files, with a fetch script that checks size, hash and header before anything is parsed
- →A choropleth ramp tuned and checked under three colour-blindness simulations, with hatching for data that is not published
- →The whole view lives in a strictly parsed URL hash; snap-point sheets trap and return focus; live regions announce county and topic changes; axe-clean on 16 screens
- →A locked-down content security policy with no inline code and no remote origin, shape-checked data files, versioned storage and a bounded service-worker cache
- →Source Serif 4 and Public Sans self-hosted, no analytics, no accounts, no trackers; 119 tests


