Ikhono AI helps South African youth turn hobbies into income. Describe any skill, from gaming to DJing to art, and get a live-grounded roadmap based on how real creators are actually earning right now, sequenced from a phone-only first step through to sponsorship-ready growth, not generic advice
# Ikhono AI
Ikhono AI helps South African youth turn hobbies and creative skills into income. A user describes a skill, their current resources, and an income goal — the platform returns a ranked, grounded, step-by-step monetisation roadmap, backed by a live web search rather than a language model's static training data.
Built for CAPACITI AI Foundations, Week 4.
**Live:** ikhono-ai.vercel.app (frontend) ·
ikhono-ai-backend.vercel.app (backend API docs)
## Why it's grounded, not just generated
Platform monetisation rules (follower thresholds, revenue splits, country eligibility) change constantly and vary by country. Every roadmap step carries a one-line source note, and the system runs a live web search at request time to check current rules before ranking recommendations. A bundled seed dataset acts as a cached fallback and cross-check, never as the primary source — if grounding fails, the output says so instead of presenting a guess as fact.
## Who it's for
- **Zero to First Rand** — someone with a real skill and no capital, equipment, or audience (e.g. a gamer with only a phone). The pipeline is instructed to lead with the lowest-barrier, zero-capital option for this stage.
- **Ready for Sponsorship** — someone already earning inconsistently (e.g. a working DJ) who wants to formalise into brand deals. The pipeline skips beginner platform sign-up steps entirely and focuses on media kits, rate-setting, and outreach.
## Architecture
```
React + Vite (frontend)
│ Supabase session (JWT)
▼
FastAPI (backend)
│ verifies JWT via Supabase JWKS (no shared secret)
│ scopes every query by the verified user id
▼
Groq (Llama models) ──┐
Tavily (live web search) ──┼──▶ ranked, dated roadmap
YouTube Data API ──────┘
│
▼
Supabase Postgres (roadmaps, roadmap_steps) + Supabase Auth (email/password, Google)
```
**Pipeline per request:**
1. **Classify** — one Groq call returns a free-text skill category, a confidence level, and a stage (`zero_income` / `first_inco …