A farmer's weather assistant
# Shamba Sky 🌤️🌾
**Shamba Sky** is a cozy, artsy farm-weather web app for Kenyan smallholders. Compare up to three shamba plots side by side, pull live forecasts from Weather-AI, get Gemini-powered farming tips, and receive weather alert webhooks — all in English or Kiswahili.
Built as a take-home integration project for the Weather-AI developer platform.
---
## Live demo
| | URL |
|---|-----|
| **App** | `
shamba-sky.onrender.com` *(replace with your deploy URL)* |
| **Health** | `
shamba-sky.onrender.com` |
| **Webhook** | `
shamba-sky.onrender.com` |
---
## Features
- **Multi-plot dashboard** — save up to 3 fields (name, lat/lon, crop, emoji) in `localStorage`
- **Side-by-side compare** — responsive grid for 1–3 plots
- **Weather-AI integration**
- `GET /v1/weather?ai=true` — today's briefing + AI summary (`lang=en` \| `sw`)
- `GET /v1/weather?ai=false` — 7-day chart data without burning AI quota
- **Gemini farmer tips** — personalized headline + 3 practical tips per plot (Gemini API)
- **Webhook alerts** — `POST /webhook` receives Weather-AI triggers; inbox on the home page
- **Print summary** — printable daily shamba log
- **Bilingual UI** — English / Kiswahili toggle
---
## Tech stack
- **Next.js 16** (App Router) + **React 19** + **TypeScript**
- **Tailwind CSS 4** — warm farm aesthetic (Fredoka + Caveat fonts)
- **Weather-AI REST API** — server-side proxy (API key never sent to browser)
- **Google Gemini** — structured JSON farmer advice via `x-goog-api-key`
- **Deploy target** — Render (health check at `/health`)
---
## Quick start
### Prerequisites
- Node.js **20+**
- Weather-AI API key (`wai_…`)
- Gemini API key (for farmer tips)
- Weather-AI **Pro** plan (for webhooks in dashboard)
### Install & run
```bash
git clone
cd shamba-sky
npm install
cp .env.example .env.local
```
Edit **`.env.local`** in the `shamba-sky` folder *(not a parent-folder `.env` — Next.js only reads env from the app root)*:
```en …