The tl;dr: Supabase is great for auth and database. For email beyond magic links, you need a dedicated solution. The question is whether you want to rent someone else's infrastructure or own yours.
I build email infrastructure tools for a living. I've seen dozens of Supabase apps go live with broken or missing email flows. Here's what you actually need and what catches most people off guard.
1. Auth emails — magic links, password resets, confirmations
These work out of the box with Supabase Auth, but the defaults have problems:
Fix: Set up a custom SMTP provider. Supabase lets you configure this in Dashboard → Authentication → SMTP Settings. You'll need a verified domain with SPF, DKIM, and DMARC records.
Most people use Resend or SendGrid here, but if you're already on AWS, SES costs $0.10/1,000 emails vs $0.90+/1,000 on managed providers.
2. Transactional emails — welcome emails, notifications, confirmations
This is where it gets tricky. Supabase Auth handles auth emails, but everything else — welcome sequences, payment confirmations, comment notifications — is on you.
Common approaches:
The gap: most Supabase developers don't realize auth emails and transactional emails are completely separate systems until they're already in production.
3. Broadcasts — newsletters, product updates, announcements
Not supported by Supabase at all. Your options:
The user discusses essential email flows for Supabase apps, highlighting issues with default auth emails and the need for custom SMTP providers. They outline solutions for transactional, broadcast, and automated emails, recommending AWS SES for better deliverability and cost efficiency. The user shares insights from their experience building email infrastructure tools.
The real problem with third-party broadcast tools: contact-based pricing. Your Supabase auth.users table grows, and your email bill grows with it — even if half those users are inactive.
4. Automated emails — weekly digests, usage alerts, drip sequences
The hardest flow to get right. You need:
pg_cron, or external)Most people wire up a pg_cron job that calls an Edge Function. It works, but there's no preview, no visual builder, and debugging a cron-triggered email pipeline is painful.
How I'd set this up today
If you're on AWS (or open to it), here's the stack I'd use:
wraps email deploy to set up SES with DKIM/SPF/DMARC, then paste the SMTP credentials into Supabase Dashboard → Auth → SMTP. Custom domain, $0.10/1K.contact_created trigger. The visual builder lets you chain steps: send welcome email → delay 1 day → check if they've activated → send reminder or next step. Each step is drag-and-drop — send email, delay, condition branch, update contact properties.This is what I built at Wraps — an email platform that deploys to your AWS account. You own the SES config, sending reputation, and email event data. Pay AWS directly ($0.10/1K emails). Unlimited contacts on every plan.
Happy to answer questions about any of these flows.