ABOUT
Bluegraph is a real-time ocean data analytics platform. It collects meteorological, wave, and spectral data from NOAA buoy stations across U.S., Canadian, and Mexican coastal waters and presents it through interactive visualizations updated every 30 minutes.
THE DATA
All data comes from the NOAA National Data Buoy Center — a network of moored buoys and coastal stations maintained across North American waters. Sensors on each platform measure atmospheric and ocean conditions continuously. NOAA publishes this data as plain-text files; Bluegraph collects and parses them into a queryable time-series database.
Meteorological
Wind speed/direction, gusts, air/water temperature, pressure, dewpoint, visibility, tide.
Wave
Significant wave height, dominant and average period, mean wave direction.
Spectral
Swell and wind-wave decomposition, wave steepness analysis.
Advanced Directional Spectral
Per-frequency energy density with directional coefficients. Powers Wave Intelligence visualizations.
FEATURES
Dashboard
Live metrics ticker, regional comparison charts, station explorer with map view, spectral wave energy overview.
Station Detail
17 metric tabs with interactive D3 line charts, drag-to-zoom, and 7 time ranges from 24h to full history.
Compare
Multi-station overlay charts with regional presets. Up to 8 stations on a single chart.
Wave Intelligence
Spectral visualizations: wave rose, energy spectrum, directional spreading, wave crossing. Being reworked.
HOW IT WORKS
NOAA publishes plain-text data files for each station. Every 30 minutes, Bluegraph's collector fetches these files for all active stations, parses the sensor readings, deduplicates against existing records, and stores them in PostgreSQL. A daily health audit automatically deactivates stations that stop reporting and reactivates ones that come back online. The web application serves data from an in-memory cache that refreshes after each collection cycle.
TECHNICAL NOTES
- Language
- Go
- Rendering
- Server-side (Templ + HTMX)
- Charts
- D3.js, uPlot
- Database
- PostgreSQL (Neon)
- Deployment
- Fly.io
- CSS
- Tailwind
- Source
- github.com/brannn/bluegraph-go
Developed & maintained by Brandon Huey.
CONTACT
Questions, feedback, or bug reports? Send a message.
Use the unit toggle in the navigation bar to switch between metric and imperial units. Your preference is saved across sessions.