A few weeks ago, I decided to tinker with something new. I wanted to play around with AI, specifically how it can help organize and search through information. But I didn’t want to build a massive system—just a simple, fun project to learn and experiment. Here’s what I came up with, why I made the choices I did, and what I learned along the way.
Why a Knowledge Base?
I wasn’t trying to create the next big thing. My goals were simple:
- Experiment with AI tools in a hands-on way
- Try out automated searches and see how AI can help find information
- Learn by doing, without getting bogged down in complexity
So, I kept things small and focused.
No Database? No Problem!
At first, I thought about using a database to store everything. But then I realized:
- My “knowledge base” was just a few Markdown files.
- Each file already had everything I needed: titles, headings, and even optional tags.
- Adding a database would just make things more complicated than they needed to be.
So, I skipped the database entirely. Instead, I just stored my notes in a folder called docs/kb and read them directly. Simple, fast, and easy to manage.
Here’s a peek at how it looks:
Case 1: Information Fetched from Knowledge Base
The system successfully retrieves and displays relevant information from the knowledge base, with clear titles, topics, and content.
Case 2: No Matching Docs Found
How It Works
Here’s the gist of what I built:
1. Just Markdown Files
Each file is a plain Markdown document. I can add:
- Optional tags (like topics or categories)
- Headings to organize content
- Descriptive filenames to make searching easier
Adding a new note is as easy as creating a new file—no setup, no migrations, no fuss.
2. Instant Search
When I search for something, the system:
- Looks for matches in titles, tags, and content
- Ranks results by relevance
- Returns the best matches
Everything happens in memory, so it’s fast and lightweight.
3. The Tech Behind It
I used a few tools to make this work:
- Bun (a fast JavaScript runtime) for quick development
- TypeScript to keep my code clean and reliable
- Fastify for a simple API
- Markdown files as the “database”
- AI tools (like OpenAI and Ollama) to experiment with smarter searches
Try It Yourself!
If you’re curious, the full project is open source and available on GitHub. Feel free to check it out, play around, or even contribute:
akshayitzme
/
support-pilot
AI-powered customer support agent that analyzes Linear tickets, searches internal documentation, and proposes actionable solutions.
SupportPilot
AI-powered customer support agent that analyzes Linear tickets, searches internal documentation, and proposes actionable solutions. Designed for real-world efficiency, it can complete a ticket analysis in under 5 seconds, dramatically reducing manual triage and improving support team productivity by automating repetitive tasks.
Built as a hobby project to experiment with AI integration, RAG, and tool calling, it also demonstrates multi-provider AI configuration, background job processing, and type-safe TypeScript architecture, making it easy to scale and extend.
Tech Stack
| Category | Technology | Reason |
|---|---|---|
| Runtime | Bun | Fast execution |
| Framework | Fastify | Minimal, type-safe, low overhead HTTP server |
| Queue | BullMQ + Redis | Reliable background job processing with retries |
| Queue UI | Bull Board | Web dashboard for monitoring queues and job status |
| AI SDK | Vercel AI SDK | Unified interface for OpenAI, Gemini, Ollama |
| Validation | Zod | Runtime type safety for AI tool parameters |
| Linting | Biome | Fast, unified linting and formatting |
| Container | Docker | Reproducible worker deployment |
| Integration | Linear |
What I Learned
- Start small. You don’t need a complex setup for a tiny project.
- Structure matters. Even simple things like headings and tags make a big difference in search.
- Experimentation is easier when things are simple. I could try out new AI features without getting stuck in setup.
- Files are fast. For a small project, reading files directly is more than enough.
- Keep it fun. The less time you spend on maintenance, the more time you have to learn and play.
Final Thoughts
This project was all about learning and having fun. If you’re curious about AI, RAG, or just want to organize your notes in a smarter way, starting with a simple, file-based system is a great place to begin. It’s easy, flexible, and most importantly - it keeps the focus on what matters: learning and experimenting.
Let me know if you’ve tried something similar, or if you have questions! I’d love to hear about your own experiments.


Top comments (0)