Screen.Recording.2026-01-05.at.11.51.31.mov
StackSearch is an AI-powered search assistant that lets developers query framework documentation using natural language. Ask anything about AWS, Docker, FastAPI, React, MongoDB, Node.js, Redis, PostgreSQL, Tailwind CSS, TypeScript, and more — StackSearch retrieves the most relevant docs using vector search (FAISS + Gemini embeddings) and replies only from the official documentation.
If the answer isn’t in the docs, StackSearch will strictly reply:
Not in docs.
This project was built as a real-world demonstration of:
✅ AI-powered RAG (Retrieval-Augmented Generation)
✅ FAISS similarity search
✅ Gemini Embeddings + LLM
✅ Multi-framework doc ingestion & indexing
✅ React frontend with markdown & code highlighting
✅ MongoDB chat history persistence
✅ Google Authentication
- Ask natural-language questions about any supported tech stack
- Answers strictly grounded in documentation
- Prevents hallucinations using “Not in docs” fallback
Supporting (and expandable): AWS • Docker • Express.js • FastAPI • MongoDB • Next.js • NumPy • Pandas PostgreSQL • Prisma • React • Redis • Tailwind • TypeScript Node.js • GraphQL • Kubernetes • Go • Python • Django
- Docs split into semantic chunks
- Embedded with
gemini-embedding-001 - Stored in a monolithic FAISS index
- Filtered per-framework using normalized metadata
- Secure login gateway
- Only authenticated users can chat
- Messages stored per-framework
- Conversations restored on reload
- Built with React + Tailwind
- Markdown rendering
- Syntax-highlighted code blocks
- One-click copy button
- Beautiful dark theme
- React
- TypeScript
- Tailwind CSS
- React Markdown
- Syntax Highlighter
- Redux Toolkit
- Firebase Auth
- React Router
- Node.js
- Express
- TypeScript
- MongoDB + Mongoose
- LangChain
- Gemini LLM + Embeddings
- FAISS Vector Index
git clone https://github.com/yourusername/stacksearch.git
cd stacksearchcd server
npm installcp .env.example .envnpm run ingestnpm run devcd client
npm installcp .env.example .envnpm run dev- User logs in with Google via Firebase
- Redux stores user session
- Logged-in users can access chat
- Logout clears state + storage
- Each framework maintains its own conversation thread.
chatId: string // framework name
framework: string
history: [
{ role: "user" | "assistant", content: string, timestamp: Date }
]- User asks question
- Query embedded via Gemini
- FAISS retrieves top-k relevant doc chunks
- Gemini LLM answers ONLY using those docs
- If missing → reply "Not in docs."
- Save messages to MongoDB