Notebook
What I build and what I learn along the way
Plain-language introductions to the products I build, plus case studies and craft notes on how they are put together.

Craft note </> Contains code 2026-06-08 · 7 min
A Readable Hourly Weather Chart: Chart.js, 4 Series, 7 Days
An icon says "rain today." A chart says "rain 2–4pm, then wind picks up." How to fit 4 series and 168 hours into one readable Chart.js graph.

Craft note </> 6 min
A Precipitation Radar in Leaflet: Smooth, and Only Once It Is Seen
The radar is the most "live" part of the app — and the heaviest on performance and privacy. How to animate it smoothly, load it only when seen, and handle third-party tiles.

Craft note </> 5 min
Why I Wrote My Own SSG Instead of Reaching for Astro
For a marketing site in 20 languages, Astro or Next is overkill. A few thousand lines of esbuild and tsx do the same — and I understand every line.

Craft note </> 5 min
Free Data as the Backbone, Paid Overlay Behind a Switch — and Why It Is Off
Open-Meteo covers the whole forecast for free. The paid OpenWeather overlay only touched a few instant values — today it is switched off and the app runs on.