EmailManager.ai — AI Email Management Agent
An autonomous agent that triages, drafts and routes an entire inbox.

Problem
I was handling a high volume of Gmail and Outlook messages and spent a lot of time drafting replies. The process was inconsistent, and I had no way to ensure a uniform tone across responses. I also worried about where the content of those emails might be stored when using third‑party tools.
Stack
- Vite
- TypeScript
- Tailwind CSS
- NestJS
- Supabase
- LangChain
- LangGraph
- OpenAI
- RAG
What I built
I built EmailManager.ai as a web‑based AI email assistant. The front‑end uses Vite, TypeScript and Tailwind CSS to provide a responsive interface. The back‑end runs on NestJS with Supabase for user data, while the core generation pipeline is powered by LangChain and LangGraph to orchestrate retrieval‑augmented generation. OpenAI models produce the draft replies, and all processing occurs in memory on servers located in Germany, guaranteeing that no email content is persisted. I chose an agentic architecture to let the system decide when to fetch context, when to apply the user‑defined tone, and when to present the draft for review, avoiding any auto‑send functionality.
When I started using Gmail and Outlook for client communication, the sheer number of messages quickly became a bottleneck. Drafting each reply manually meant I spent more time writing than solving problems, and the tone of my responses varied depending on my mood. I also had concerns about privacy; many AI tools required uploading email content to external servers, which conflicted with the confidentiality expectations of my contacts.
To address these issues I created EmailManager.ai. The project uses a Vite‑powered front‑end written in TypeScript and styled with Tailwind CSS, giving a fast, lightweight UI that runs entirely in the browser. The back‑end is a NestJS application that authenticates users via Supabase and stores only minimal metadata – no email bodies are ever written to disk. The heart of the system is a LangChain and LangGraph pipeline that implements a retrieval‑augmented generation (RAG) loop. When a new email arrives, the agent fetches the relevant thread, formats a prompt that includes the user’s preferred tone settings, and calls an OpenAI model to generate a draft reply. All of this happens in memory on servers located in Germany, satisfying data‑residency requirements and ensuring that no content is persisted after the response is returned.
The agentic design lets the system decide when additional context is needed, when to apply tone transformations, and when to hand the draft back to the user for review. I deliberately omitted any auto‑send capability; the draft is saved back into the user’s inbox, where they can edit, approve, or discard it. This approach preserves user control while still delivering a significant reduction in the time spent on routine correspondence. Since launch, the tool has been used by professionals who need consistent, privacy‑first email handling, and the feedback highlights the reliability of the drafts and the peace of mind that no data is stored beyond the processing window.
Outcome
Users now receive AI‑drafted replies directly in their inboxes, can edit them before sending, and benefit from a consistent tone without any stored copies of their email content.
