ProvidersUpdated 2026-08-20
Transactional email
Render one React Email template and deliver it through Resend, Cloudflare Email, or AWS SES.
One mail contract
Product code calls sendEmail with a business template and context:
ts
await sendEmail({
to: user.email,
template: 'verifyEmail',
context: { name: user.name, url },
})Templates render once to subject, HTML, and plain text. The selected adapter receives the same rendered message.
Available providers
- Resend API.
- Cloudflare Send Email binding.
- AWS SES v2 with SigV4 signing.
Choose the provider with:
env
VITE_MAIL_PROVIDER=resendUse cloudflare or ses for the other adapters.
Included templates
The current product includes verification, password recovery, newsletter welcome, waitlist welcome, and contact-message templates through React Email.
Local preview
env
MAIL_PREVIEW=truePreview mode records the rendered message and context so Playwright can complete verification and password-recovery workflows without contacting a vendor.
Add a template
- Add the template identifier to the mail contract.
- Create the React Email component and plain-text representation.
- Add subject and context validation.
- Exercise the template through preview mode and a real provider smoke test.