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/ …