AI-powered African heritage recipe platform that turns pantry ingredients into culturally grounded recipes, with discovery, saved collections, PWA support, and M-Pesa-ready payments.
# KEROMA — Recipes that remember.
> African heritage recipe intelligence. A heritage-modern platform that turns what's in your kitchen into real food, with the cultural context that makes it worth making.
---
## What's here
A Next.js 15 full-stack application with:
- **Marketing site** — home, recipes library, recipe detail (with JSON-LD + SEO), AI discover page, about, pricing, blog (with 4 long-form articles)
- **App** — authenticated dashboard, pantry management, saved recipes, account
- **Auth** — email magic link + Google OAuth (NextAuth.js v5 ready)
- **AI core** — multi-provider recipe generation with zod-validated output, fallback chain (Anthropic → OpenAI → Google → mock), streaming-ready
- **M-Pesa payments** — IntaSend STK push integration (scaffold)
- **PWA-ready** — installable on mobile, offline-capable for saved recipes (v2)
- **Design system** — Fraunces (display) + Inter (body) + JetBrains Mono, full brand token system, dark mode
See `BRAND.md` for the complete design spec.
---
## Quick start
```bash
# Install
npm install
# Copy environment template
cp .env.example .env.local
# Edit .env.local — at minimum, set KEROMA_AI_MOCK=true to start without API keys
# Dev server (port 3005)
npm run dev
# Open
localhost
# Production build
npm run build
npm start
# Type check
npm run type-check
```
---
## Environment
The site is fully functional out of the box **without any API keys** — it falls back to a mock recipe generator (`KEROMA_AI_MOCK=true` is the default). Add keys to enable real AI:
| Variable | Purpose | Required? |
|---|---|---|
| `MONGODB_URI` | Database | Optional (mock uses in-memory) |
| `NEXTAUTH_SECRET` | Auth signing | Optional in dev |
| `NEXTAUTH_URL` | Auth callback | Optional in dev |
| `ANTHROPIC_API_KEY` | Primary AI (Claude 3.5 Sonnet) | Optional — falls back to mock |
| `OPENAI_API_KEY` | Secondary AI | Optional |
| `GOOGLE_GENERATIVE_AI_KEY` | Tertiary AI | Optional |
| `REPLICATE_API_TOKEN` | Hero image …