# SkyPulse Kenya 🌤️
> AI-powered real-time weather dashboard for Kenya and East Africa — sky-blue glass UI, real photography backgrounds, built on the WeatherAI API.
---
## Live Demo
đź”— **skypulse-kenya.vercel.app**
---
## Features
| Feature | Detail |
|---|---|
| **Auto-detect location** | WeatherAI `/v1/weather-geo?ip=auto` — silent on mount, no browser prompt |
| **8 Kenyan cities** | Nairobi, Mombasa, Kisumu, Nakuru, Eldoret, Nyeri, Malindi, Kakamega |
| **Real background photos** | Unsplash images that shift by weather condition (clear, rain, storm, night) |
| **AI insight card** | Gemini-powered narrative via `ai=true` parameter |
| **24-hour hourly strip** | Scrollable, with precipitation probability |
| **7-day forecast** | Daily min/max with visual temperature bar |
| **8 stat cards** | Humidity, wind, visibility, UV index, pressure, rain chance, cloud cover, moon phase |
| **Glass morphism UI** | Sky-blue palette, Lucide icons, Playfair Display + Outfit typography |
| **Server-side API proxy** | `WEATHERAI_API_KEY` never exposed to the browser |
| **ISR caching** | 10-minute revalidation to protect API quota |
---
## WeatherAI Endpoints Used
| Endpoint | Parameters | Purpose |
|---|---|---|
| `GET /v1/weather` | `lat`, `lon`, `days=7`, `ai=true`, `units=metric` | Coordinates-based forecast |
| `GET /v1/weather-geo` | `ip=auto`, `days=7`, `ai=true`, `units=metric` | IP-based auto-detect + forecast |
---
## Tech Stack
| Layer | Choice |
|---|---|
| Framework | Next.js 15 (App Router) — SSR + Route Handlers |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3 + custom glass morphism CSS |
| Icons | Lucide React |
| Fonts | Playfair Display (display) · Outfit (body) · JetBrains Mono (data) |
| Backgrounds | Unsplash (weather-conditional real photos) |
| Deployment | Vercel |
---
## Local Setup
### Prerequisites
- Node.js ≥ 18
- A WeatherAI API key — prefix `wai_`
### 1. Unzip & install
```bash
unzip skypulse-kenya-production.zip
cd sk …