AI-powered South African recipe platform with contextual embeddings, offline support, and POPIA compliance
# SpazaChef π³
**AI-powered South African recipe platform** with contextual embeddings, offline support, and POPIA compliance.
## Overview
SpazaChef connects township kitchens to African heritage recipes with an intelligent, accessible platform that works offline and respects privacy-first principles. Built for loadshedding resilience and cultural authenticity.
### Key Features
- π§ **Contextual AI**: Sentence-transformers embeddings for smart recipe discovery
- π± **Progressive Web App**: Offline-first support for loadshedding environments
- π **POPIA Compliant**: Privacy-first architecture with async JWT auth and rate limiting
- π³ **Monetization Ready**: Subscription tiers (Free/Basic/Premium) via PayFast & Ozow
- π **Redis Caching**: Sub-second recipe retrieval and embedding lookups
- π¨βπ³ **Chef Personas**: Gogo Precious, Chef Mandla, Tandie, Baba Thabo, Chef Zama, Boet Frik
---
## Tech Stack
### Frontend
- **Framework**: React 19 + TypeScript
- **Build**: Vite
- **Styling**: Tailwind CSS (burnt orange `#B85C2C` accent)
- **PWA**: Workbox for offline support
- **State**: React Query (data fetching), Zustand (local state)
### Backend
- **API**: FastAPI (async)
- **Database**: Supabase (PostgreSQL) - Project ID: `bqffpvibvxusfxicssxz`
- **Vector DB**: pgvector (embeddings: sentence-transformers, 384-dim)
- **Cache**: Redis (Celery async tasks)
- **Task Queue**: Celery + Redis
- **Auth**: JWT (async HMAC-MD5 validation)
- **Webhooks**: PayFast HMAC-MD5 validation
### Deployments
- **Frontend**: Vercel - `spazachef.vercel.app`
- **API**: Vercel - `spazachef-api.vercel.app`
---
## Project Structure
```
spazachef/
βββ frontend/ # React 19 + TypeScript + Vite
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Route pages
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API client
β β βββ store/ # Zustand state management
β β βββ types/ β¦