Skip to content

feat(mailer): redesign emails with Zero Day banner layout - #190

Merged
balebbae merged 4 commits into
mainfrom
caleb/email-redesign
Oct 5, 2026
Merged

balebbae merged 4 commits into
mainfrom
caleb/email-redesign

Conversation

@balebbae

@balebbae balebbae commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Moves all 8 emails (magic link, decisions, decisions released, QR, walk-in queued/accepted) onto a shared light layout in internal/mailer/template/layout.html: full-bleed Zero Day banner over a red rule, bold heading, label/value detail rows, red CTA button with caption, signature, link band, and address footer.
  • Each email file now only defines its title, preheader, heading, and content blocks. Copy and template data are unchanged, so no sender code changed.
  • renderTemplate parses the layout alongside each email and registers small helpers (row, accentRow, button, brandImage) so emails can pass several values to shared blocks.
  • The banner (internal/mailer/assets/zero-day-banner.jpg, 1200×273, 82 KB) is compiled into the binary with go:embed, replacing the multi-path disk lookup and the Dockerfile copy step. JPEG rather than WebP because Outlook for Windows can't display WebP.

Notes

  • Event dates, venue, contact links, and address are hardcoded in layout.html (not settings yet), so they're a one-file edit.
  • No unsubscribe link: these are transactional emails.
  • The layout declares a light-only color scheme; the Gmail app still inverts by luminance.
  • The Vite plugin serving /email-assets/zero-day-title.webp is left in place for previously sent emails that may reference it.

Test plan

  • go vet ./..., go test ./internal/mailer/ ./cmd/api/
  • Rendered previews via EMAIL_PREVIEW_DIR and checked against the design
  • Send a test email through SendGrid/SMTP and check Gmail, Apple Mail, and Outlook

🤖 Generated with Claude Code

balebbae and others added 4 commits October 4, 2026 19:30
Move all emails onto a shared light layout with the Zero Day banner,
detail rows, and a contact footer. Embed the banner in the binary
instead of copying it into the container.
@balebbae
balebbae merged commit 1eb569f into main Oct 5, 2026
7 checks passed
@balebbae
balebbae deleted the caleb/email-redesign branch October 5, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant