Labels.io

Newsletter (Resend)

The kit ships a newsletter built on Resend Audiences, in two pieces:

  • Signup — collect subscribers from your site.
  • Broadcast — compose and send an email to your list from /app/settingsNewsletter tab.

Both stay in demo mode (the subscriber count and send button are mock) until you add the Resend keys below.

Already wiring the contact form or auth-triggered contact sync with Resend? See Auth and email setup. It shares the same RESEND_API_KEY.

1. Configure Resend

Create a Resend account, then in the dashboard create an Audience (your subscriber list) and an API key. Add both to .env:

RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxxxxxxx
RESEND_AUDIENCE_ID=aud_xxxxxxxxxxxxxxxxxxxxxxxxx

Verify the sending domain you broadcast from (the same one you use for the contact form), so your emails are not rejected.

2. How it works once configured

  • Signup adds the submitted email to your Resend Audience as a contact.
  • Broadcast (the "Send to subscribers" button in /app/settings → Newsletter) creates a Resend broadcast for the audience and sends it. The mock "subscribers" count is replaced with the real audience size.

3. Test the setup

  1. Restart the dev server after editing .env.
  2. Submit a test email through your signup input → it appears in the Resend Audience.
  3. Open /app/settingsNewsletter, write a subject + message, and send a broadcast.
  4. Confirm the email arrives and shows up under Broadcasts in Resend.

Production checklist

Before going live:

  • Use a verified sender domain for broadcasts.
  • Add double opt-in if your audience/region requires it.
  • Make sure every broadcast includes an unsubscribe link (Resend injects one automatically).

To add every signed-in Supabase user to a Resend Segment or Topic when they log in, set RESEND_SEGMENT_ID and/or RESEND_TOPIC_ID — see Auth and email setup for that flow.

Useful docs:

On this page