All work
CASE STUDYGenerative AI · Academic Email Assistant

LetterLab.Pro

A full-stack generative AI email assistant for the academic world. Three services — a React frontend, a Node.js API, and a Python AI worker — collaborate to draft and reply to academic email in a clean, role-specific UI.

Solo founder · Full-stack buildLive2025

Role

Solo founder

Stack

5 tools

Status

Live

Year

2025

Overview

A full-stack generative AI email assistant for the academic world. Three services — a React frontend, a Node.js API, and a Python AI worker — collaborate to draft and reply to academic email in a clean, role-specific UI. Designed to fit into existing workflows, this build focuses on real production behavior rather than a polished demo.

The Problem

Students and professionals spend a disproportionate amount of time triaging email, summarizing threads, and drafting context-appropriate replies. Existing AI tools either ignore thread context, leak data through scraping, or sit outside the inboxes people actually live in.

What I Built

  1. 01Role-based email generation (Student / Professor)
  2. 02Context-aware AI output for academic tone
  3. 03Three-service architecture: React + Node + Python worker
  4. 04Deployed live on Vercel with 100+ commits

Architecture

→ Client (React + Vite + MUI + Tailwind) hosted on Vercel
→ Express API on Render handling OAuth, token storage, mailbox sync
→ MongoDB for users, sessions, drafts, and analytics
→ Gmail API + Microsoft Graph for inbox + thread access
→ Gemini / OpenAI for summarization + draft generation
→ Strict server-side validation around all AI inputs and outputs

Engineering Decisions

OAuth over scraping

Used official Gmail and Microsoft Graph OAuth flows so accounts stay safe, scoped, and revokable instead of brittle scraping pipelines.

Thread-context drafting

Pulled full thread context server-side so AI drafts read like real replies, not generic responses with no memory of the conversation.

Render + Vercel split

Frontend on Vercel for fast edge delivery, Node API on Render for OAuth and webhook stability — trade-offs considered around latency and cost.

Results & Learnings

  • Production system used through Gmail and Outlook accounts
  • Hardened OAuth flows, token refresh, and error handling
  • Clear separation between Vercel frontend and Render API
  • Designed analytics and privacy pages for real-world usage

Let's talk

Want something like this built?