This is a submission for the GitHub Finish-Up-A-Thon Challenge
I built the ** Closiq Discord Agent**, a full-stack modular monolith engineered to transform a Discord channel into an automated, AI-driven customer support inbox and lead management system.
When a customer messages your Discord support channel, the backend captures the conversation, handles data persistence, and fetches highly relevant context from a self-hosted Qdrant vector database (which indexes knowledge base documents stored in MinIO). It then leverages OpenRouter or OpenAI-compatible models to dynamically draft and deliver accurate, context-aware responses right back to the customer via a Discord bot.
http://localhost:5173
(Tip: Insert a GIF or a couple of screenshots here showing off your React dashboard interface, your MongoDB message log view, or the Discord bot replying live in a channel!)
Tech Stack At A Glance #
Frontend:React + ViteBackend:Node.js + Express + TypeScriptDatabases & Storage:MongoDB (Metadata), Qdrant (Vector Embeddings), and MinIO (Object Storage)Integrations:discord.js
& OpenRouter / OpenAI SDK
This project started as an ambitious idea but quickly stalled out. Before dusting it off for this challenge, it was just a loose collection of database models, basic tools, and a primitive, unoptimized LangChain loop sitting in a graveyard of unfinished local folders. It completely lacked a front-end management layer, and the architecture was fragile.
To bring this project to life and cross the finish line, I focused heavily on stability, user experience, and structural boundaries:
messages
, knowledgebase
, agent
, infrastructure
) to make the codebase highly maintainable.GitHub Copilot acted as an invaluable pair-programmer during this sprint, especially when it came to tying multiple disjointed storage microservices together.
docker-compose.yml
, getting MongoDB, Qdrant, and MinIO talking to each other effortlessly.shared/errors
or config/logging
) without muddying up the structural boundaries I put in place.