Anjo AI
Starting up…
AI
This portfolio: a Next.js site whose primary experience is an AI assistant grounded in retrieval-augmented generation over Markdown files in the repository, with pgvector search, streaming answers, citations, and rich portfolio cards.
Anjo's portfolio is built as an AI application rather than a static résumé site. Visitors ask questions in a chat interface — "What is his .NET experience?", "Tell me about Asterweave", "How can I contact him?" — and the assistant answers from Markdown files stored in the repository, streaming the response and citing the sections it used. Traditional pages (About, Experience, Projects, Skills, Contact) are generated from the same Markdown so there is never a second copy of the information.
Recruiters and engineers do not want to navigate many pages to find one fact. A chatbot widget bolted onto a portfolio does not solve this either: it usually answers from the model's general knowledge and invents details. The goal was an assistant that is fast, grounded, and honest about what the portfolio does and does not say.
Markdown is the single source of truth. A content pipeline parses frontmatter, validates it with Zod, chunks documents by heading, computes a SHA-256 hash per chunk for incremental re-indexing, generates embeddings, and stores them in PostgreSQL with pgvector. At query time the assistant validates input, rewrites follow-up questions using conversation context, retrieves relevant chunks with hybrid vector-plus-lexical search, filters by relevance, builds a grounded prompt in which retrieved content is untrusted data, streams the answer from the model, and attaches citations and typed portfolio cards.
Next.js, React, TypeScript (strict), Tailwind CSS, Zod, PostgreSQL with pgvector, the OpenAI API for embeddings and chat, Docker and Docker Compose, GitHub Actions, Vitest and React Testing Library for unit and integration tests, and Playwright for end-to-end tests.
Anjo designed and built the whole system: content schema, ingestion pipeline, retrieval layer, AI orchestration, chat UI, security controls, tests, evaluation suite, and deployment.
The site works end to end with or without an OpenAI key and database, ships with automated unit, integration, and end-to-end tests, a RAG evaluation suite, a CI pipeline, and a production Dockerfile, and is deployed on Vercel.