A simple, fast weather app — current conditions, hourly forecast, 7-day with expandable hourly per day. Sunrise/sunset, humidity, wind in Beaufort, UV, precipitation. PWA-ready, mobile-first, dark-only.
No API keys. No backend. All data from Open-Meteo.
adapter-static → pure SPA, deployable as a folder of files.pnpm install
pnpm dev # http://localhost:5173
pnpm check # svelte-check (TypeScript + template)
pnpm build # outputs to ./build
pnpm preview # serve ./build locally
src/
app.html, app.css
routes/
+layout.ts # ssr: false (SPA mode)
+layout.svelte # registers service worker
+page.svelte # the only page
lib/
weather.ts # Open-Meteo client + localStorage of last location
wmo.ts # WMO weather code → translation key + icon
format.ts # temperature, time, compass, Beaufort
i18n.svelte.ts # reactive language state, translations, t() helper
components/
Search.svelte # debounced city search + locate button
Current.svelte # big temperature + condition + 4-tile detail grid
Hourly.svelte # next 24h horizontal scroll
Daily.svelte # 7 days, tap a row to expand its hourly
Icon.svelte # all SVGs
static/
manifest.webmanifest, icon.svg, icon-192.png, icon-512.png, sw.js
localStorage.navigator.languages; persists choice.5 Bf · Fresh breeze / 5 Bf · Μέτριος).The build output (./build) is a static site — drop it on any static host.
pnpm build and deploy the build/ directory. No environment variables needed.build/ as static assets.Forecast and geocoding data: Open-Meteo (CC BY 4.0).