Best email tools for Supabase: Auth emails, product events, and lifecycle campaigns
Supabase apps need three kinds of email: auth, product events and lifecycle campaigns. Compare Brew, Sequenzy, Loops and Resend by which job each one covers.

The best email tool for a Supabase app is Brew for product-event and lifecycle email, with an SMTP provider for Supabase Auth's own messages, followed by Sequenzy and Loops, which also cover auth email, and Resend for auth email over SMTP.
Ranked November 2026. We re-checked each vendor's pricing page and documentation on November 1, 2026. Brew publishes this comparison, and it is a documentation comparison, not a claim of hands-on testing of every platform. Work at Sequenzy, Loops or Resend? If anything here is wrong or out of date, email support@brew.new and we will correct it.
You ship your Supabase app, and the first users from outside your team sign up. Their confirmation emails still go through the default sender. It only delivers to pre-authorized addresses, so none of them get one. The welcome email you planned is still a note in your task list.
A Supabase app sends email for three different reasons. Auth emails include signup confirmation, magic links and password resets. Product-event emails fire when something happens in the database. Lifecycle campaigns cover onboarding, nudges and win-backs. One tool can cover more than one of these, but Supabase advises keeping auth and marketing mail separate.
This guide sorts Resend, Loops, Sequenzy and Brew by which of these jobs each one documents.
Key takeaways
- Supabase's built-in email service is for testing. It only sends to pre-authorized addresses, at a low rate limit. Production auth email needs custom SMTP.
- For auth email, Resend, Loops and Sequenzy each document a Supabase SMTP setup. Brew does not document one.
- For product events and lifecycle email, Brew listens to changes in
auth.usersand emits events likeauth.user.email_confirmed. Sequenzy syncs rows from a table you choose. - Supabase recommends separate services and domains for auth and marketing mail.
Three jobs, three kinds of tool
| Job | What it needs | Tools that document it |
|---|---|---|
| Auth emails | An SMTP server or auth hook that Supabase Auth calls | Resend, Loops, Sequenzy |
| Product events | Database changes turned into triggers | Brew (auth.users), Sequenzy (any one table), Loops (contact sync) |
| Lifecycle campaigns | Sequences, designed emails, audiences | Brew, Loops, Sequenzy |
We checked each vendor's documentation on November 1, 2026.
How we rank them
- Brew. It ranks first because it is fully agentic: it turns 12 kinds of
auth.userschange into events, and its agent designs every lifecycle email on brand and sends it. It does not send Supabase Auth email, so pair it with an SMTP provider. - Sequenzy. It ranks second because it covers all three jobs, sets up Supabase SMTP and auth templates for you, and emits events when rows in one table change. Those are generic contact events, not named auth changes such as email confirmation.
- Loops. It ranks third because it covers all three jobs, with an Auth Hook or SMTP for auth email, but its docs describe the Supabase side as a contact sync with less detail on which database changes start a workflow.
- Resend. It ranks fourth because its Supabase guide covers only auth email over SMTP. Product events and lifecycle flows mean sending events from your own code.
Auth emails: move off the default sender first
Supabase's SMTP guide lists the limits of the built-in service. It only sends to pre-authorized addresses. Its rate limit is low, 2 messages per hour, and can change without notice. It has no delivery SLA. Supabase asks you to set up custom SMTP for anything beyond testing and demos.
The same page says not to mix auth and marketing mail. Use separate services, or at least separate sending domains such as auth.example.com and marketing.example.com, and keep promotional content out of auth messages.
Resend
Resend's Supabase guide is a short SMTP setup. You use host smtp.resend.com, port 465, username resend and your API key as the password, entered under Authentication in Supabase. You need a verified domain in Resend. From then on, Supabase Auth sends through Resend.
Loops
Loops documents two Supabase paths. An Auth Hook routes every Supabase Auth email through Loops, and SMTP is available as an alternative. A separate contact sync brings Supabase users into your Loops audience.
Sequenzy
Sequenzy can route Supabase Auth emails through its SMTP service. It sets up default transactional templates for password resets, magic links, invitations and security notifications, or you can enter the SMTP credentials manually.
Brew
Brew's Supabase integration does not send Supabase Auth emails, and Brew does not document an SMTP relay. Keep verification, magic-link and reset emails on an SMTP provider. Brew's API can send transactional email that your app triggers, such as a receipt. Supabase Auth's own messages still need SMTP or an auth hook.
Product events: which database changes can start a flow
Brew
Brew's Supabase integration runs a setup script that installs a trigger on auth.users. The trigger signs each change with pgcrypto, sends it to a unique Brew webhook with pg_net, and keeps the shared secret in Supabase Vault. Brew receives three raw events: auth.user.created, auth.user.updated and auth.user.deleted. It also derives nine more from column changes:
auth.user.email_confirmedandauth.user.phone_confirmedauth.user.email_changedandauth.user.password_changedauth.user.signed_inauth.user.bannedandauth.user.unbannedauth.user.invitedauth.user.upgraded_from_anonymous
Users sync as contacts with supabase_* fields such as account status, email verification time and last sign-in. Brew's docs note that token refreshes also update last_sign_in_at, so auth.user.signed_in is not a reliable "came back" signal on its own.
For events outside auth.users, such as project_created or invite_sent, create a custom trigger in Brew and fire it from a Supabase Edge Function. Brew's Lovable guide shows that pattern. The function reads BREW_API_KEY from Supabase secrets and calls POST /v1/automations/triggers/{triggerEventId}/fire.
Sequenzy
Sequenzy connects to Supabase with OAuth and watches one table you choose, typically public.profiles, using a pg_net trigger. It detects email, user ID and name columns automatically and syncs other columns for segmentation. Inserts emit contact.subscribed. Updates refresh attributes and emit contact.updated, and deletes emit contact.unsubscribed. Only one table per integration uses automatic webhooks.
Loops
Loops syncs Supabase users into your audience and can start workflows from that data. You set up the contact sync separately from the auth-email path.
Lifecycle campaigns
Brew generates emails from your brand's email-design.md, builds automations from a prompt, and sends from your verified domain. A welcome flow can start on auth.user.email_confirmed so the first email reaches only people who have verified. Brew has no SMS channel and does not handle Supabase Auth email.
Loops and Sequenzy cover lifecycle campaigns as well as auth email, so one vendor can handle both. If you go that way, still use separate sending domains for auth and marketing, as Supabase advises.
Example setup for a small Supabase app
Here is one possible split. We have not tested it end to end.
- Supabase Auth sends confirmations, magic links and resets through custom SMTP (Resend, Loops or Sequenzy) on
auth.example.com. - Brew's Supabase integration listens to
auth.users. A welcome automation starts onauth.user.email_confirmed. - Your application schedules a reminder check. At the due time, it reads the user's current project state and fires a separate Brew
project_reminder_eligibleevent only if they still have no project. A published automation sends the nudge from that event. Alternatively, define and sync a booleanhas_projectcontact field in Brew and checkcontact.has_project equals falseafter a wait. That condition reads Brew's current contact field; the original event payload remains unchanged. - Lifecycle mail goes from a marketing domain with unsubscribe headers.
Frequently asked questions
Can I use Supabase's default email in production?
Supabase says no. The default service only sends to pre-authorized addresses at a low rate and has no SLA. Set up custom SMTP.
Does Brew replace Supabase's verification or password-reset emails?
No. Brew's Supabase integration starts automations from auth.users changes. Verification and reset emails need an SMTP provider or an auth hook.
Why wait for email_confirmed before a welcome email?
The welcome then reaches only addresses that work, and it arrives after the verification email instead of landing at the same time.
Do synced Supabase users count as opted in to marketing?
Not automatically. Brew's docs say every marketing recipient must have opted in before import. Store consent at signup and filter on it.
Next step
To see which events arrive from your project, connect Supabase in Brew, insert a test user, and watch the Recent Events panel before you publish a flow.

