Skip to content

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 + AI
  • staff — all internal docs + AI
  • client:pymble — Pymble docs only + filtered AI responses
  • client: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.js Basic Auth with Clerk Edge middleware
  • AI backend receives user_role + client_tag in 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