Loading project
Preparing this case study...
Preparing this case study...
A multi-tenant AI email platform for managing workspaces, templates, contacts, AI-generated drafts, bulk sends, unsubscribe handling, and delivery logs.
Project Snapshot
Technical Footprint
Mailing Solutions Director is a multi-tenant AI-assisted email operations platform built to manage workspaces, contacts, templates, campaigns, AI-generated email drafts, bulk sending, unsubscribe handling, and delivery logs.
The platform is built around a Django and Django REST Framework backend, with a Next.js dashboard for managing the email workflow. The backend handles tenant workspaces, client app API tokens, contacts, templates, campaigns, email logs, AI suggestions, and bulk send jobs. The frontend gives users a working interface for templates, contacts, campaigns, AI suggestions, settings, and delivery logs.
A key part of the project is the AI drafting flow. Instead of treating AI as a loose writing assistant, the system uses a separate FastAPI microservice to call OpenAI, generate structured email suggestions, return subject/body outputs, and persist the result inside Django with telemetry such as model, latency, tokens, raw response, feedback, and status.
The email sending layer uses AWS SES. Emails are rendered from templates, optionally enriched with AI suggestions, sent through SES, and recorded as email log entries. The system also supports SES delivery, bounce, and complaint event handling, so the platform can track what happened after an email was sent.
The platform also supports bulk sending. Smaller jobs can run in-line, while larger jobs are pushed into Celery background tasks using Redis. Each recipient result is logged, which makes the system more operational than a simple “send email” form.
This project is not just about sending emails. It is about building the foundations of an email operating system: tenants, contacts, templates, AI drafts, campaigns, sending, unsubscribe links, delivery tracking, logs, and feedback loops.
I built the full-stack structure of the platform, including the Django/DRF backend, Next.js dashboard, tenant workspace model, client app authentication, email template system, contact management, campaign models, email logs, and bulk send workflow.
I implemented the AI drafting architecture using a FastAPI microservice connected to OpenAI, with Django persisting generated suggestions, telemetry, feedback, acceptance status, and promotion into templates.
I also worked on the AWS SES sending layer, template rendering, unsubscribe flow, SES event handling, Celery background jobs, Redis configuration, Docker setup, and the frontend screens for templates, contacts, campaigns, AI suggestions, logs, and settings.
One of the main challenges was building the system as a multi-tenant platform rather than a simple email sender. Each workspace needed its own contacts, templates, campaigns, logs, AI suggestions, and API-token access, so tenant isolation had to be part of the foundation.
Another challenge was connecting AI into the email workflow without making it messy. The AI drafting layer needed to generate useful email suggestions, but the system also had to store the raw response, telemetry, feedback, prompt context, and acceptance status so the output could be reviewed and improved later.
Email delivery also added real operational complexity. Sending an email is only one part of the lifecycle. The platform also needed logs, unsubscribe URLs, delivery tracking, bounce and complaint handling, test mode, bulk sending, and failure paths.
A further challenge was keeping the frontend and backend contracts aligned. Some frontend areas were ahead of the backend implementation, especially around client management, so the project showed the importance of keeping API routes, UI hooks, and documentation in sync.
This project demonstrates a complete email operations workflow rather than a basic contact form or newsletter script.
It brings together authoring, contact management, AI-assisted drafting, template rendering, bulk sending, unsubscribe handling, SES delivery tracking, and operational logs in one platform.
As a portfolio project, it shows my ability to build production-style systems with multiple services: a Django backend, a Next.js frontend, a FastAPI AI microservice, Celery workers, Redis, PostgreSQL, AWS SES, OpenAI integration, and Docker-based deployment structure.
It also gives me a strong foundation for future email automation products, client communication tools, CRM-style workflows, and AI-led marketing systems.
This project taught me that a real email platform needs much more than a send button. Once emails are being sent at scale, the system needs contacts, templates, unsubscribes, logs, delivery events, provider failures, and background jobs.
I also learnt how important it is to separate AI generation from core application logic. By using a FastAPI microservice for the OpenAI drafting flow, the AI layer could stay focused on generation while Django remained responsible for tenants, persistence, logs, suggestions, and the main product workflow.
The project also helped me understand multi-tenant architecture more deeply. Workspace switching, client app tokens, session auth, tenant-owned records, and scoped data access all need to be consistent across backend and frontend.
Another learning was that AI features become much easier to trust when they are auditable. Storing prompts, outputs, model details, token usage, latency, feedback, and acceptance history makes the AI layer easier to review and improve.
I help founders and teams turn messy ideas into reliable systems — from MVPs and APIs to AI-enabled automation workflows.