> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rocket.new/llms.txt
> Use this file to discover all available pages before exploring further.

# Resend

> Connect Resend to your Rocket.new app - send welcome emails, password resets, and order confirmations with a single prompt.

export const LlmsDirective = () => <blockquote className="llms-directive">
    For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
    For a lightweight markdown version of this page, append .md to the URL.
  </blockquote>;

<LlmsDirective />

Connect Resend and describe the email flow you want in chat. Rocket generates the complete implementation: email templates, send logic, and secure API integration.

<Divider />

## What you can do

<CardGroup cols={2}>
  <Card title="Welcome emails" icon="hand-wave">
    Personalized welcome emails triggered the moment a user signs up, with onboarding steps and branding.
  </Card>

  <Card title="Password reset flows" icon="lock-keyhole">
    Secure, branded password reset emails instead of the default Supabase template.
  </Card>

  <Card title="Order confirmations" icon="receipt">
    Receipt emails after a purchase with order details, totals, and receipt number.
  </Card>

  <Card title="Newsletter signups" icon="newspaper">
    Collect emails and add subscribers to a mailing list using Resend Audiences.
  </Card>

  <Card title="Team invitation emails" icon="user-plus">
    Branded invite emails with a unique signup or join link when adding team members.
  </Card>
</CardGroup>

<Divider />

## Before you connect

You need your **API key** from the Resend Dashboard.

<Card icon="link" horizontal href="https://resend.com/docs/dashboard/api-keys/introduction#add-api-key" arrow="true">
  **Create or copy your Resend API key**
</Card>

<Warning>
  Never paste your Resend API key directly into chat. Always use the secure connection popup. If your key has been exposed, rotate it immediately from the Resend dashboard.
</Warning>

<Note>
  Resend works best paired with [Supabase](/build/connectors/supabase/overview) for linking emails to authenticated users. You can also route Supabase Auth emails through Resend's SMTP for full branding control.
</Note>

<Divider />

## Connect Resend

<Tabs>
  <Tab title="Web Browser">
    You can connect from two places - both open the same popup.

    **Option 1: From chat**

    Type a prompt that mentions Resend - for example, `Connect Resend and send a welcome email when a user signs up`. Rocket detects the intent and shows a **Connect** button inline. Click it and the popup opens.

    <Frame caption="Resend connection prompt in chat">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-chat-light.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=c984055a06b189148cb2a8ed8f3184e9" alt="Resend connection prompt in the Rocket chat panel." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/connectors/resend/web-browser/resend-chat-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-chat-dark.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=abe3efcfcb94331a22678fae614f0aa5" alt="Resend connection prompt in the Rocket chat panel." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/connectors/resend/web-browser/resend-chat-dark.webp" />
    </Frame>

    **Option 2: From the Connectors tab**

    Click the **`...`** button in the preview toolbar, then select **Connectors**.

    <Frame caption="Open Connectors from the toolbar">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/2lqYWidv_xVHKfL6/images/build-docs/connectors/shared/connectors-tab-open-light.webp?fit=max&auto=format&n=2lqYWidv_xVHKfL6&q=85&s=7bd785a0e878564054e08328b2aa3d6b" alt="Toolbar dropdown with Connectors option highlighted." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/connectors/shared/connectors-tab-open-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/2lqYWidv_xVHKfL6/images/build-docs/connectors/shared/connectors-tab-open-dark.webp?fit=max&auto=format&n=2lqYWidv_xVHKfL6&q=85&s=d047040372d776cb47e4e483de8eeb8d" alt="Toolbar dropdown with Connectors option highlighted." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/connectors/shared/connectors-tab-open-dark.webp" />
    </Frame>

    Click the **Resend** card, then click **Connect**.

    <Frame caption="Resend card in the Connectors panel">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-connectors-tab-light.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=3d098eb7675df609e41a840fc6de5773" alt="Connectors panel showing the Resend card with a Connect button." className="theme-image light-image" width="1819" height="645" data-path="images/build-docs/connectors/resend/web-browser/resend-connectors-tab-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-connectors-tab-dark.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=6fcccec9d5f39b8aba2ef8540bae12fc" alt="Connectors panel showing the Resend card with a Connect button." className="theme-image dark-image" width="1815" height="526" data-path="images/build-docs/connectors/resend/web-browser/resend-connectors-tab-dark.webp" />
    </Frame>

    **After clicking Connect**

    A popup opens. Paste your **API key**, then click **Save**. A green dot appears next to Resend when the connection is active.

    <Frame caption="Paste your Resend API key in the popup">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-popup-light.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=82cdf076d75d67c587e489cd74860cda" alt="Resend API key input popup." className="theme-image light-image" width="840" height="500" data-path="images/build-docs/connectors/resend/web-browser/resend-popup-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-popup-dark.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=1bdb411a4080f4451f2bd48f282a3d4d" alt="Resend API key input popup." className="theme-image dark-image" width="840" height="500" data-path="images/build-docs/connectors/resend/web-browser/resend-popup-dark.webp" />
    </Frame>

    **Update or disconnect**

    Go to [**Connectors > Resend**](#connect-resend). Update your key or click **Disconnect** to remove the integration.

    <Frame caption="Disconnect Resend">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-disconnect-light.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=a15f491913f68bf591f25e0d8285f82c" alt="Resend integration showing connected state with a Disconnect button." className="theme-image light-image" width="1626" height="532" data-path="images/build-docs/connectors/resend/web-browser/resend-disconnect-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/QfIb8xISg8b4eaJx/images/build-docs/connectors/resend/web-browser/resend-disconnect-dark.webp?fit=max&auto=format&n=QfIb8xISg8b4eaJx&q=85&s=332e0c744253453ec115a4fdd8dd3c1a" alt="Resend integration showing connected state with a Disconnect button." className="theme-image dark-image" width="1618" height="532" data-path="images/build-docs/connectors/resend/web-browser/resend-disconnect-dark.webp" />
    </Frame>
  </Tab>

  <Tab title="Mobile App">
    You can connect from two places - both open the same popup.

    **Option 1: From chat**

    Type a prompt that mentions Resend. Rocket detects the intent, shows a **Connect** button, and the popup opens when you tap it.

    **Option 2: From the Connectors tab**

    1. Tap the **More** button in the header.
    2. Tap **Integrations**.
    3. Tap the **Resend** card, then tap **Connect**.

    **After tapping Connect**

    A popup opens. Paste your **API key**, then tap **Done**. A green dot appears next to Resend when the connection is active.

    **Update or disconnect**

    Go to **Integrations > Resend**. Update your key or tap **Disconnect** to remove the integration.
  </Tab>
</Tabs>

<Divider />

## Example prompts

| Use case           | Prompt                                                                                                       |
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
| Welcome email      | `Send a welcome email through Resend when a new user signs up with Supabase.`                                |
| Password reset     | `Route Supabase password reset emails through Resend with custom branding.`                                  |
| Order confirmation | `After a Stripe payment, send a receipt email through Resend with the order total.`                          |
| Newsletter signup  | `Add a newsletter form that saves emails to Supabase and adds them to my Resend Audience.`                   |
| Team invite        | `Send an invitation email through Resend with a unique join link when I invite a team member.`               |
| Email verification | `Send a verification email through Resend with a 6-digit code when a user registers.`                        |
| Weekly digest      | `Send a weekly digest email every Monday with the user's activity summary from Supabase.`                    |
| Abandoned cart     | `If a user adds items to cart but does not check out within 24 hours, send a reminder email through Resend.` |
| Feedback request   | `Send a feedback request email through Resend 3 days after a user completes onboarding.`                     |
| Custom HTML email  | `Create a styled HTML email template in Resend with our logo, brand colors, and a CTA button.`               |

<Divider />

## Tips

* **Supabase is recommended.** Rocket links Resend emails to Supabase user accounts for the best experience. Most auth email flows (welcome, password reset) work best with Supabase connected.
* **SMTP routing for auth emails.** Route Supabase Auth emails through Resend for custom branding. See the [Resend + Supabase SMTP guide](https://resend.com/docs/send-with-supabase-smtp).
* **Resend Audiences for marketing.** Resend supports newsletters and marketing emails through Audiences and Broadcasts, with built-in analytics and unsubscribe handling.
* **API key security.** Your key is encrypted at rest and never exposed in your project code. Always use the secure integration flow to connect.
* **One Resend account per project.** Each Rocket project connects to one Resend API key. Use different projects for different Resend accounts.
* **Free plan sender limits.** Free Resend accounts can only send from the default account email. To use a custom domain, upgrade your Resend plan, verify the domain, and update the `from` field in your Supabase Edge Function.

<AccordionGroup>
  <Accordion title="How to change the sender email in your Supabase Edge Function">
    Once your domain is verified in Resend, update the `from` field in the Edge Function that handles sending.

    1. Go to the [Supabase Dashboard](https://supabase.com/dashboard) and open your project.
    2. Click **Edge Functions** in the left sidebar.
    3. Open the function that handles email sending (for example, `send-welcome-email`).
    4. Click the **Code** tab.
    5. Find the `resend.emails.send` call and update the `from` field:

    ```typescript theme={null}
    await resend.emails.send({
      from: "noreply@yourdomain.com", // your verified domain address
      to: recipientEmail,
      subject: "...",
      html: "...",
    });
    ```

    6. Click **Deploy** (or **Redeploy**) to apply the change.
    7. Trigger the function to confirm the email arrives from the new address. Use the **Logs** tab if anything fails.

    <Note>
      If you route Supabase Auth emails (password reset, magic link) through Resend SMTP, the sender address for those is set separately under **Project Settings → Authentication → SMTP Settings** in the Supabase Dashboard, not in an Edge Function.
    </Note>
  </Accordion>
</AccordionGroup>

<Divider />

## What's next?

<CardGroup cols={2}>
  <Card title="Stripe" icon="credit-card" href="./stripe">
    Send order confirmation and receipt emails after Stripe payments with Resend.
  </Card>

  <Card title="Supabase" icon="database" href="./supabase">
    Recommended for linking emails to authenticated users and routing auth emails through Resend.
  </Card>

  <Card title="SendGrid" icon="envelope-open-text" href="./sendgrid">
    An alternative email integration if you prefer SendGrid's platform.
  </Card>

  <Card title="Build a SaaS app" icon="book" href="/learn/recipes/saas">
    Full recipe: Supabase + Stripe + Resend + Netlify to build a complete SaaS product.
  </Card>
</CardGroup>
