A full-stack portfolio with a free-tier AI assistant powered by a RAG pipeline. Explore my projects and skills through natural language queries, with support for i18n, dark/light mode, and responsive design.
Byte of Me is a full-stack developer portfolio that highlights my projects, skills, and experience. It includes an AI assistant built on a Retrieval-Augmented Generation (RAG) pipeline using **LangGraph **, part of the LangChain ecosystem.
The system supports multiple language models and embedding providers.
- text-embedding-004 - optimized for English-language tasks
- Jina Embedding v3 - designed for strong multilingual performance
- Pinecone for semantic search
- PostgresSaver (Supabase PostgreSQL) for storing conversation threads and chat history
The assistant provides context-aware responses in multilingual, supporting:
- Stateful AI Assistant
- Internationalization
- Multilingual UI with i18n
- Dark/Light theme toggle
- Responsive design for both mobile and desktop
Try asking: "What projects has Phu built?" or "What is Phu’s tech stack?"
-
Clone the Repository:
git clone https://github.com/lthphuw/byte-of-me.git cd byte-of-me -
Install Dependencies:
pnpm install
-
Set Up Environment Variables:
- Create
.env.localor.envfiles inapps/web,packages/ai, andpackages/dbas described in their respective READMEs:
- Run the Development Server:
- From the root directory:
pnpm dev
- Open
http://localhost:3000in your browser.
- Deploy to Vercel:
- Push your code to GitHub.
- Connect your repository to Vercel via the Vercel dashboard.
- Add module-specific environment variables to Vercel’s Settings > Environment Variables (see submodule READMEs).
| Technology | Purpose |
|---|---|
| Next.js | Frontend framework |
| Tailwind CSS | Utility-first styling |
| Framer Motion | UI animations and transitions |
| Radix UI | Accessible UI primitives |
| React Bits | UI components |
| Prisma | ORM for PostgreSQL |
| Supabase | Auth and storage backend |
| Pinecone | Vector database for RAG |
| LangChain.js | RAG pipeline framework |
| PostgresSaver | Save conversation state |
| Google Gemini 2.0 / 2.5 Flash | Fast LLMs for chat |
| text-embedding-004 | English embedding model |
| Jina Embedding v3 | Multilingual embedding |
| Cohere Reranker | Reranking retrieved documents |
| Vercel | Hosting and deployment |
| Cloudflare Turnstile | CAPTCHA for bot protection |
| Upstash | Redis-based rate limiting and caching |
Contributions are welcome! Please open an issue or submit a pull request to suggest improvements or report bugs.
This project is licensed under the MIT License. See LICENSE for details.