# weather-app

> An animated weather station. SvelteKit 2, Svelte 5 runes, GSAP; the server keeps the OpenWeather key private.

- status: active
- language: Svelte
- repo: https://github.com/vanillauys/weather-app

An animated weather station: a 7-day outlook, an animated scene per
weather condition, and a dock that follows the terrain. The sky, the
sun, the rain, and the ground band are GSAP timelines driven by the
actual forecast.

![The station at night: Worcester under a clear sky, crescent moon up, 9 degrees.](./weather-app-station.webp)

The OpenWeather calls happen server side, in SvelteKit load functions,
so the API key never reaches the browser. State is Svelte 5 runes
throughout; the repo has no store file.

## For agents

- Run it locally: `bun install`, then `bun run dev`. Type-check with
  `bun run check`.
- Set `OPENWEATHER_API_KEY` in the server environment. The browser
  never sees it.
- Stack: SvelteKit 2, Svelte 5 runes, Tailwind v4, GSAP.
- Source:
  [github.com/vanillauys/weather-app](https://github.com/vanillauys/weather-app).