Live wind from launch stations

Vendor adapters translate whatever station hardware you run into one documented contract. Build your own UI on that data, or use the components, which render directly in your page and follow your design tokens.

Any vendor

Every adapter emits the same JSON contract, whether it reads WindNerd anemometer kits, WeatherFlow Tempest, Campbell Scientific dataloggers, Ecowitt, or a loader you write.

Headless core

The contract, derivations, chart geometry, and polling stores need no framework. The components are optional.

Rendered natively

Dials, graded history, wind roses, and daily patterns render in your page, without a vendor iframe.

Two peer bindings

React or framework-free custom elements. Both render byte-identical DOM, and neither is the reference.

stations[0].reading
loading…
The same object, drawn by the components.

Stations report what they measure and why they are down, and your site decides the words, units, colours, and wind bands. The wire contract sets out the rules in full.

See every component

This page shows three sections. The component gallery renders every element in the binding live, the same way this page does. That includes instruments, seasons, trends, the air matrix, the fleet table, one-line strips, the atoms, and an instrument with no provider at all.

This package reads live stations. It doesn't forecast.

Station reads live weather stations and draws them. It does not depend on the forecast or Meteogram packages. Forecasts come from the engine, @azohra/meteo.forecast. To build this page against your own stations, start with the station documentation. It covers the wire contract, adapters, the feed handler, and both bindings.