For Supabase projects

Email your Supabase users. Skip the webhooks.

Rowsend reads auth.users through a view and a login that can only read it. No other company gets a copy of your users. You send through SES, Postmark, Mailgun or any SMTP server.

Try Rowsend for MacRead the setup guide

7 days free.

Two ways to get your users into email.

Supabase has no built-in marketing email, so most tools ask you to push users to them. A roundup of 21 email tools found every one connects through SMTP, API calls or Edge Functions fed by webhooks. Loops' guide is typical.

The usual way, with webhooks

  1. 1Add database webhooks on auth.users for inserts, updates and deletes.
  2. 2Write and deploy an Edge Function that calls the email tool's API, with its API key stored as a secret.
  3. 3Backfill everyone who signed up before the webhook existed.
  4. 4Keep that function working whenever their API or your tables change.

Your users end up in two databases, and the email tool charges you for each one.

With Rowsend

  1. 1Paste your Supabase connection string. Rowsend uses the password once to list your tables and doesn't save it.
  2. 2Choose the columns to read from auth.users. Join a table like public.profiles to add names or plans.
  3. 3Run the SQL Rowsend writes in Supabase's SQL editor.

Rowsend syncs every 15 minutes. New sign-ups appear, and deleted users drop out.

The SQL Rowsend writes.

This copy is trimmed a little. Add a join to any table, and its extra columns become fields you can filter segments on and put in the email.

create schema if not exists rowsend;

create view rowsend.contacts as
select u.id, u.email, u.created_at, u.last_sign_in_at,
  date_trunc('milliseconds', coalesce(u.updated_at, u.created_at)) as updated_at
from auth.users u
where u.email is not null and u.deleted_at is null;

create role rowsend_reader with login password 'SCRAM-SHA-256$4096:…';
alter role rowsend_reader set default_transaction_read_only = on;
grant usage on schema rowsend to rowsend_reader;
grant select on rowsend.contacts to rowsend_reader;

10,000 users, first year.

The other tools are at list price, billed monthly. Rowsend's total is the license, Cloud billed yearly, and Amazon SES for 4 emails per user a month. More list sizes

LoopsPaid plan$1,188
ResendPro Marketing$960
MailchimpStandard, after the first-year discount$1,031
Rowsend$158

Before you connect.

Can Rowsend change anything in my database?
No. The login it creates is read-only and can only see the rowsend.contacts view. You can read every line of the SQL before you run it.
Is the setup SQL safe to share?
Yes. It holds a hash of the login's password, never the password itself, so you can paste it into a pull request or hand it to an AI agent.
What happens when a user deletes their account?
They drop out of your contacts at the next sync. Rowsend checks every id the view returns, so nothing has to send it a delete event.
Does it replace Supabase's sign-up and password reset emails?
No. Rowsend is for newsletters, launches and product updates. Keep sending those through Supabase's custom SMTP setting, pointed at your email provider.
Can an AI agent set it up?
Yes. Rowsend's MCP server gives the agent the setup SQL, and an agent with Supabase's own MCP server can run it and finish the connection.
Try Rowsend for MacRead the setup guide

Supabase is a trademark of Supabase, Inc. Rowsend isn't affiliated with Supabase.