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).