Skip to content

Live data · any US zip code · 10-day hourly forecast

The weather where you are, charted on demand ​

No data ships with this page. Enter a zip code and your browser asks for the forecast there, then Holochart draws it: six charts built from about 3,000 hourly values, and redrawn in place when you ask for another zip code.

or try

Nothing is loaded yet. Enter a zip code and the charts are drawn from the forecast your browser fetches for it.

How it works ​

The other demos read a JSON file that was prepared ahead of time. This one starts empty. On a request the page makes two calls from your browser: the zip code goes to Zippopotam.us, which answers with a latitude and longitude, and those go to Open-Meteo, which answers with ten days of hourly values in °F, mph and inches and in the place’s own time zone. Neither needs an API key.

  • Figures are plain functions of the response. Each chart is built by a function that takes the parsed forecast and returns a figure, so the first zip code goes to createChart and every later one to chart.react, which diffs the new figure against the old and keeps the canvas.
  • Local time without a time zone library. Open-Meteo returns wall-clock times such as 2026-10-03T14:00. Holochart reads a date string with no offset as written, so the axis shows the place’s local time whatever time zone the reader is in.
  • Four charts, one time axis. The hourly charts are separate charts linked with events: a relayout on one is applied to the others with chart.relayout, and a hover on one calls chart.hover({ xval }) on the others. The night bands and the “now” line are layout shapes with yref: 'paper'.
  • Two y axes where two units share a panel. Pressure sits on a right-hand axis over the percentage panel, and the running rain total on one over the hourly bars (overlaying: 'y').

The forecast model has no separate chance of snow, so the precipitation panel shows hourly snowfall as its own bars on the days that have any.

Released under the MIT License.