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.local
or.env
files inapps/web
,packages/ai
, andpackages/db
as described in their respective READMEs:
- Run the Development Server:
- From the root directory:
pnpm dev
- Open
http://localhost:3000
in 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.