Skip to content
Docs

Command palette

Jump to a page or view, or find a todo by name.

Changelog

Account emails in React Email, in English, German and French

One neutral React Email layout for every account email, rendered synchronously on the server, written in the reader's language, with live previews via pnpm email:dev.

Markdown

The five account emails (verification, welcome, password reset, the password-reset security notice and Organization invitations) are React Email components now: a typed document per email drawn by one layout, with the plain-text part written from the same document. Rendering stays synchronous (renderToStaticMarkup, held equal to React Email's render by a test), so the auth callbacks did not change shape and html-to-text/prettier stay out of the Worker (ADR-0014).

Each email is written in the language of the request that caused it: the site's language cookie, then Accept-Language, then English. The copy lives in packages/email/src/locales/{en,de,fr}.ts. The layout is neutral (the site's brand mark and EMAIL_FROM's display name, the UI's neutral tokens, a dark palette) and links nothing but the email's one action. The invitation rules from the relay fix hold in every language.

pnpm email:dev serves a live preview of every template on port 3060; its Next.js UI is installed on first run outside the workspace, so it never reaches the Worker (Email).

Edit on GitHubDocumentation is in English.