Feoda Documentation Platform — Roadmap¶
✅ Phase 1 — Docs Site (Complete)¶
- MkDocs + Material theme
- Hosted on Vercel
- Basic Auth protection (shared password — temporary)
- Auto-deploy on push to
main
🔄 Phase 2 — AI Assistant (Current Focus)¶
Architecture: Vercel Serverless Function (no separate backend needed)¶
Everything lives inside the same Vercel project as the docs site.
Flow:
1. User types a question in the chat widget on the docs site
2. Vercel function (/api/chat.js) receives the question
3. Step 1 — Retrieval (Groq, free): sends question + file tree (~2KB) to Groq Llama 3.3 70B → returns list of relevant file paths
4. Function reads those .md files from disk (already bundled in deployment)
5. Step 2 — Answering (Claude Sonnet 4.6, paid): sends question + relevant file contents to Claude → returns high quality answer
6. Answer displayed in chat widget
Why this split: - Groq handles retrieval — tiny input, free, sub-second - Claude handles answering — gets only the relevant context, best quality - No Railway, no Pinecone, no vector DB needed - Single Vercel project, single deploy
Needs before starting:¶
- Groq API key — free at console.groq.com
- Anthropic API key — console.anthropic.com
- Both stored as Vercel environment variables (never in code)
🔜 Phase 3 — Unified Auth + Role-Based Access¶
Vision¶
Single login for both the docs site and AI assistant. User's role determines: 1. Which documentation pages they can see 2. Which documents the AI retrieves and references
Auth stack (planned: Clerk)¶
- Email + password login (replaces current Basic Auth)
- User management dashboard (invite, suspend, revoke)
- Roles:
admin— full access to all docs + AIstaff— all internal docs + AIclient:pymble— Pymble docs only + filtered AI responsesclient:al-faisal— Al Faisal docs only + filtered AI responses- etc.
How role-based access works¶
- Docs site: Clerk middleware checks role → shows/hides nav sections
- AI backend: role passed in API request → filters document retrieval scope
- e.g. a Pymble client user → AI only retrieves from
clients/pymble/ - staff user → AI retrieves from all docs
Implementation notes¶
- Replace
middleware.jsBasic Auth with Clerk Edge middleware - AI backend receives
user_role+client_tagin each request - No manual tagging of docs needed — role filter maps to file path prefix
🔜 Phase 4 — Client-Facing Chat¶
- WhatsApp (Meta Cloud API)
- Telegram Bot
- Standalone chat page on Vercel
- Role/client filter applied from authenticated session