Real-time USGS river monitoring dashboard for Park & Gallatin Counties, Montana.
Open index.html in any browser — no build step, no server, no dependencies to install.
Or deploy to GitHub Pages:
- Push this repo
- Settings → Pages → Source: main branch →
/root - Your dashboard is live at
https://yourusername.github.io/crawdaddy/
Monitors 10 USGS streamgage stations across two Montana counties with live data:
| USGS ID | Station | River |
|---|---|---|
| 06191500 | Corwin Springs | Yellowstone River |
| 06192500 | Near Livingston | Yellowstone River |
| 06192980 | Ab Smith Cr, nr Wilsall | Shields River |
| 06193500 | At Clyde Park | Shields River |
| 06195600 | Nr Livingston | Shields River |
| USGS ID | Station | River |
|---|---|---|
| 06043120 | Ab Deer Cr, nr Big Sky | Gallatin River |
| 06043500 | Nr Gallatin Gateway | Gallatin River |
| 06048000 | At Bozeman | East Gallatin River |
| 06048650 | Ab WRF, nr Bozeman | East Gallatin River |
| 06052500 | At Logan | Gallatin River |
- Streamflow: USGS Water Services API — Instantaneous Values (15-min intervals)
- Discharge (ft³/s), Gage height (ft), Water temperature (°C)
- Weather: NWS API — Current observations + forecast
- Fallback: Seed data from Feb 15, 2026 if APIs are unreachable
index.html
├── React 18 (CDN)
├── Recharts (CDN)
├── Babel Standalone (CDN, for JSX transpilation)
├── USGS NWIS API (fetch → parse → render)
├── NWS Weather API (points → observations → forecast)
└── Seed data fallback (embedded)
Single file. Zero build. Zero dependencies. Just HTML + CDN-loaded libraries.
On load, the app:
- Shows seed data immediately (cached USGS readings)
- Attempts live fetch from
waterservices.usgs.gov - If successful, replaces seed with live data + 24hr sparklines
- Auto-refreshes every 2 minutes
- Falls back to seed if USGS is unreachable
The app queries this endpoint:
https://waterservices.usgs.gov/nwis/iv/?format=json
&sites=06191500,06192500,06192980,06193500,06195600,06043120,06043500,06048000,06048650,06052500
¶meterCd=00060,00065,00010
&siteStatus=active
&period=P1D
Parameter codes:
00060— Discharge (streamflow), cubic feet per second00065— Gage height, feet00010— Water temperature, degrees Celsius
git init
git add index.html README.md
git commit -m "CrawDaddy 2.0"
git remote add origin https://github.com/YOU/crawdaddy.git
git push -u origin main
# Enable Pages in repo settingsJust upload index.html. Works on Netlify, Vercel, Cloudflare Pages, S3, or any web server.
# Just open it
open index.html
# Or serve it
python3 -m http.server 8000
# → http://localhost:8000- Some stations are seasonal — Shields River at Clyde Park (06193500), Shields River ab Smith Cr (06192980), and East Gallatin at Bozeman (06048000) may show as offline during winter months
- All USGS data is provisional and subject to revision
- The USGS API is free, requires no API key, and supports CORS
- The NWS API requires a
User-Agentheader but no key
MIT — Data from USGS and NWS is public domain.