Magic-code sign-in emails and any receipt or notification email you add all go out through Resend
in production. Without a Resend key, development uses `letter_opener` instead, opening every email
in your browser rather than sending it anywhere, so nothing about local development requires this
setup.

## The two variables

- `RESEND_API_KEY`, from resend.com.
- `MAIL_FROM`, a sender address on a domain you've verified inside Resend.

## Deliverability: the step that actually matters

Add Resend's SPF, DKIM, and DMARC DNS records for your sending domain. Skip this, and magic-code
emails will land in spam, or fail to deliver at all, which silently breaks signup for anyone
affected: they never see an error, they just never get their code. This is the single most common
cause of "sign-in doesn't work" reports on a freshly deployed app, and it's invisible from inside
the app itself, since the email leaves your server successfully; it just doesn't arrive anywhere
useful. Set these DNS records up at the same time you're configuring the rest of your domain; see
[Edge and DNS Setup](/docs/deployment/edge-and-dns-setup).

## Next

Turn on real Stripe billing: [Stripe Setup](/docs/billing-entitlements/stripe-setup). Or continue
through the reference: [Sign in with Google and Apple](/docs/bring-your-own-keys/sign-in-with-google-and-apple).
