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.

~130 active stations across 7 coastal regions, 17 sensor metrics per station, collected 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.