Goal: ship an interactive AI portfolio that answers questions about my career using real knowledge — on shared hosting that cannot run Python apps, Docker, or a vector database.
Constraints
HostGator shared hosting: PHP + Apache only; no Passenger Python, no Composer packages for retrieval.
Outbound HTTPS available to Groq; secrets must live outside the docroot.
Corpus is small (~knowledge markdown files), so embeddings add cost without clear gain.
Architecture
Static frontend — HTML/CSS/JS chat UI with bilingual EN/ES routes.
Retrieval — BM25 over knowledge/*.md with synonym expansion; flow shortcuts for recruiter/builder paths.
Generation — Groq (llama-3.3-70b-versatile) via plain cURL in PHP.
Hardening — per-IP rate limits, message/history clamps, CORS allowlist, secrets in ~/private/.
A dependency-free stack that stays maintainable on commodity hosting, rebuilds the index on every request, and keeps the “chat portfolio” experience without locking SEO behind a blank SPA shell — professional content also lives in static HTML flows.