Case Study
How AI Garage runs its own subscriber base on Claude, n8n, and AWS SES
No email platform. No marketing suite. A self-hosted stack where Claude sends, personalises, and audits every campaign — while guest data from event exports never touches an LLM.
Watch the 2-minute walkthrough.
“232 Reality Check registrants added, synced, and welcomed — end to end, from a single sentence in Claude. The guest CSV never left Supabase.”
— AI Garage Team
Built for
AI Garage — internal infrastructure
Status
Live · running all AI Garage campaigns
Stack
Claude + n8n + AWS SES + Supabase
System Scale
The current state of AI Garage’s email infrastructure:
2,290
Active subscribers
3,230
Event guests synced
34
Events tracked
₹8
Cost per 1,000 emails
The Challenge
AI Garage runs weekly events, a growing Luma community, and multiple outreach motions — but had no real email infrastructure. Guest lists lived in Luma exports. Subscriber history lived nowhere. Sending meant manually pulling a CSV, deduplicating by hand, and hoping the unsubscribe link in last month’s template still worked.
- No platform lock-in. Off-the-shelf ESPs meant per-contact pricing at a list size about to 10x, plus vendor limits on custom logic like event-based cohorts.
- No compromise on guest privacy. Names, emails, phone numbers, custom form answers needed a path into the system that didn’t require pasting them into an AI chat window.
- No engineer required per send. Whoever ran a campaign needed to say “send this to last week’s attendees” and trust it happens correctly, safely, once.
- Reputation had to survive scale. Community sends and cold outreach needed separate domains so one bad list couldn’t tank deliverability for the other.
The Approach
AI Garage built a self-hosted stack — n8n as the automation engine, Claude as the natural-language interface via MCP, Supabase as the system of record, and AWS SES for delivery.
Two ways guest data enters the system — deliberately.
A standalone n8n form lets full Luma CSV exports go straight into Supabase, never through Claude’s context window. When someone asks Claude to add registrants without data in hand, Claude offers the form link instead of guessing.
A queue, not a blast.
New subscribers are queued for the next 10am IST window, deduplicated by email so no one gets welcomed twice regardless of how many events they attend.
Warm-up is structural.
New sending domains ramp through the same campaign_name across days — 100, then 200, then 500, then full volume — building ISP trust before hitting scale.
Every send is previewed before it’s sent.
Claude renders new HTML as desktop and mobile artifacts and asks for confirmation — every campaign, every time.
Under the hood
Claude (via MCP)
Natural-language campaign orchestration, content drafting, personalisation, and compliance auditing.
n8n
Self-hosted workflow engine — triggers, queue management, deduplication, and retry logic.
AWS SES
Transactional and campaign email delivery with verified DKIM/SPF/DMARC domains.
Supabase
Subscriber database, event guest storage, unsubscribe tracking, and audit logs.
Luma exports
Guest CSV ingestion via n8n form — data goes straight to Supabase, never through an LLM.
Results
Guest list source
Before: Manual Luma CSV exports
After: Form upload or Claude, synced hourly
Sending
Before: Ad hoc, no dedup
After: Claude-triggered, queue-managed
Personalisation
Before: Copy-paste per segment
After: Name and reason substituted automatically
Unsubscribe
Before: Static link, unclear status
After: Signed, per-recipient, instant update
Domain reputation
Before: Single domain, all traffic
After: 4 domains, community and cold separated
Engineer dependency
Before: Required for every send
After: Zero — operated through Claude
Why we run it ourselves
This isn’t a demo — it’s the system AI Garage runs its own community on, today. It’s the same methodology AI Garage brings to client engagements: a self-hosted stack the client’s own team can operate through Claude, with sensitive data deliberately kept out of any AI’s context window.
Dogfood the infrastructure before recommending the pattern to someone else.
What would your mailer look like?
Think about the campaigns your team sends manually today — the CSVs, the platform fees, the data you’re handing to third parties. That’s where we start.