Skip to main content
If you’re using Supabase Auth, you’ve probably noticed the default emails aren’t great. They only send to team members, have strict rate limits, and look generic. This guide gets you production-ready auth emails for password resets, magic links, email verification, and more.
Password reset email template

Who this guide is for

  • Supabase users who need production-ready auth emails
  • Vibe coders using Lovable, Bolt, or Cursor who want professional emails without the complexity
  • Anyone frustrated with Supabase’s default email templates

What you’ll set up

  • 6 auth email workflows: password reset, magic link, email confirmation, invite, email change, and reauthentication
  • Branded templates with your logo, colors, and tone of voice
  • Production-ready email delivery that works at scale
You can customize colors, logos, and tone of voice with Brand Kits.

Prerequisites

  • A Supabase project using Supabase Auth
  • 5 minutes

New to Dreamlit?

1

Create a Dreamlit account

Go to app.dreamlit.ai and sign up.
2

Connect your Supabase project

During onboarding, click Connect Supabase and authorize the connection.
Connecting Supabase via OAuth
3

Enable Supabase Auth emails

After connecting, you’ll be prompted to set up auth emails. Click Setup Supabase Auth.This creates 6 workflows (password reset, magic link, confirm email, etc.) with branded templates. What this does →
One-click Supabase Auth setup
4

You're all set!

Your auth emails are now live. See Testing your setup below to verify everything works.

Existing Dreamlit users

1

Open your connection settings

Go to Settings → Database Connections and click on your Supabase connection.
2

Enable Supabase Auth emails

Click Setup Supabase Auth.This creates 6 workflows (password reset, magic link, confirm email, etc.) with branded templates. What this does →
3

You're all set!

Your auth emails are now live. See Testing your setup below to verify everything works.

Testing your setup

Once your auth emails are configured, verify they’re working:
  1. Trigger a password reset from your app—call supabase.auth.resetPasswordForEmail() or use your app’s “Forgot Password” flow
  2. Check your inbox within a few seconds for a branded email
  3. Verify the link works by clicking through to reset your password
To test other auth emails, trigger the corresponding Supabase Auth method:
  • Magic link: supabase.auth.signInWithOtp()
  • Email confirmation: supabase.auth.signUp()
  • Invite: Send an invite from your Supabase dashboard

FAQ

  1. Check spam/junk folders: New sender domains sometimes get filtered initially
  2. Verify the connection is active in Settings → Database Connections
  3. Make sure you’re calling the right Supabase method—auth emails only trigger from Supabase Auth API calls, not database changes
First, check that Supabase Auth is connected: go to Settings → Database Connections and look for the “Supabase Auth” badge on your connection. If it’s missing, click the connection and run Setup Supabase Auth again.If the badge is there but you’re still getting old templates, the Auth Hook may not be configured correctly in Supabase. Go to your Supabase dashboard → Authentication → Hooks and verify Dreamlit’s hook is enabled.
Yes. Each auth email has its own workflow in Dreamlit. Open the workflow, click on the email step, and edit the template directly or ask the AI to make changes for you.

Sending from your own domain

By default, auth emails send from Dreamlit’s domain. Want to send from your own domain (like [email protected])? Set up your email domain.

Next steps