Svitlo — nationwide power-outage schedules for Ukraine
When the grid is unstable, millions of people need one answer: when will my power go out? Svitlo answers it for every queue in every region — and stays honest when the operator hasn't published a schedule yet.
What I built
- React 19 PWA with offline cache, installable, dark UI
- React Native (Expo) Android app with OTA JS updates and rollback
- Telegram bot + Mini App on the same backend
- Linux desktop widget for Wayland (Niri / Noctalia)
Under the hood
- One TypeScript Cloudflare Worker: API, webhooks, cron importers
- D1 for schedules, KV/R2 for static address packs
- 30-minute slot model, 12 queues per region, mode classification (GPV/GAV/SGAV)
- pnpm monorepo, typed contracts shared by web, mobile and worker