Skip to content
Docs
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=resend

Use 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=true

Preview mode records the rendered message and context so Playwright can complete verification and password-recovery workflows without contacting a vendor.

Add a template

  1. Add the template identifier to the mail contract.
  2. Create the React Email component and plain-text representation.
  3. Add subject and context validation.
  4. Exercise the template through preview mode and a real provider smoke test.
TanStarter SES documentationBuilt with TanStack Start and Content Collections.