Connect
Resend
Add an API key, set the from-address in config.ts, and the welcome email already sends after checkout.
Launch Kit sends mail through sendEmail() in libs/resend.ts. Today that helper is used once: the Stripe webhook sends a welcome message after checkout.session.completed.
Key
Create an account at resend.com. Copy an API key into RESEND_API_KEY.
| Credential | Env var | What the kit does with it |
|---|---|---|
| API key | RESEND_API_KEY | Authenticates resend.emails.send |
No other Resend setting is required in env.
From-addresses
These live in config.ts, not env:
| Key | Used? | What to put |
|---|---|---|
resend.fromAdmin | Yes | Your App <hello@your-domain.com> — this is the from on every sendEmail() call |
resend.fromNoReply | No | Reserved. The helper does not read it |
resend.supportEmail | Footer + legal | A real inbox, or leave empty |
Resend’s test sender works without DNS. You can leave the default from-address while you develop. Mail goes to your own account’s inbox.
Verify the domain in Resend, add the DNS records, then set fromAdmin to an address on that domain. Unverified domains will bounce in production.
Send another email
Keep libs/resend.ts. Call it from a server file:
import { sendEmail } from "@/libs/resend";
await sendEmail({
to: user.email,
subject: "Your subject",
text: "Plain text body",
html: "<p>HTML body</p>",
});Optional replyTo is already on the helper.