Community-built services directory for the Zimbabwean and wider Southern African diaspora in the UK.
# Kaya
Community-built services directory for the Zimbabwean and wider Southern
African diaspora in the UK. Mission: replace the WhatsApp economy with
something structured, searchable, and trustworthy. Name is Shona for
*home*.
## Quickstart (local dev)
```bash
npm install
npm run db:reset # creates dev.db + seeds 55 listings, 5 events, 4 posts
npm run dev
```
Open . Admin is at `/admin/login`, default password
`changeme` (change it in `.env` before deploying).
## Stack
- **Next.js 15** (App Router, SSR, React Server Components)
- **TypeScript** 5 · **Tailwind** 3
- **Prisma 7** with driver adapters:
- `@prisma/adapter-better-sqlite3` for local dev
- `@prisma/adapter-pg` for production (Neon Postgres)
- Optional: **Resend** for email, **Plausible** for analytics, **Upstash
Redis** for distributed rate limiting — all env-gated, clean no-op when
unset
- Custom-written service worker for PWA offline shell + guide
- Dynamic OG images via `next/og`
## What's in here
- Service directory across 9 categories, 6 UK cities (55 seeded listings,
29 of them in Stoke-on-Trent)
- Community reviews with moderation queue
- Expiring noticeboard (offers / requests)
- Events calendar with moderation
- "First 30 Days" guide for new arrivals
- Flag/report system for every user-visible item
- Full-text search across listings, events, and noticeboard
- WhatsApp share + Web Share API on every listing and event
- Public listing submission + admin create/edit
- Admin dashboard: pending listings, reviews, events, published listings,
upcoming events, open flags
- i18n: English + Shona complete, Portuguese best-effort, Ndebele +
Chichewa scaffolded (community review welcome)
- Standard terms/privacy/legal/about pages
- Sitemap, robots.txt, OG images, PWA manifest, offline SW
- Rate limiting on all public write endpoints
- Dynamic health check at `/api/health`
## Scripts
| Command | What it does |
| --- | --- |
| `npm run dev` | Start dev server on :3000 |
| `npm run build` | Product …