Live crowd-sourced water outage map for South Africa.
# Amanz' Alert
Live, crowd-sourced water outage map for South Africa. Pilot region: Eastern Cape.
> *Amanzi* — water (isiXhosa / isiZulu).
This is the MVP. PWA built with Next.js, Supabase, and MapLibre. Designed to be installed on a phone, share-able via a WhatsApp link, and work on a low-data connection.
---
## What's in here
```
amanzi-alert/
├── app/ # Next.js App Router pages
│ ├── page.tsx # Home — the live map
│ ├── report/ # Report-an-outage flow
│ └── about/ # What this is, why it exists
├── components/ # Map, ReportForm, Header, InstallPrompt
├── lib/ # Supabase clients, types, geolocation helper
├── public/ # PWA manifest, service worker, icons
└── supabase/
└── migrations/ # Database schema (run in Supabase SQL editor)
```
---
## First-time setup
You only do these steps once.
### 1. Install Node.js
You don't have Node installed yet. Get the LTS version:
1. Go to
nodejs.org
2. Download the macOS Installer (LTS, currently 22.x)
3. Run the `.pkg` file — accept the defaults
4. Open a **new** Terminal window (important — old ones don't see new PATH)
5. Verify:
```bash
node --version
npm --version
```
Both should print version numbers.
### 2. Install project dependencies
```bash
cd ~/Desktop/amanzi-alert
npm install
```
This downloads Next.js, Supabase client, MapLibre, etc. into `node_modules/`. Takes ~1–2 minutes.
### 3. Create a Supabase project (free tier)
1. Go to
supabase.com → Sign up (GitHub login is fastest).
2. New Project → name it `amanzi-alert` → pick the closest region (Europe/UK is closest to SA).
3. Set a database password and save it somewhere safe.
4. Wait ~1 minute for provisioning.
### 4. Apply the database schema
1. In your Supabase project, go to **SQL Editor** → **New query**.
2. Copy the contents of `supabase/migrations/0001_init.sql` from this repo.
3. Paste and click **Run**.
4. Open a **new query**, paste the conten …