Checklist
Developer Email Checklist
Everything a dev needs to remember when integrating email - templates, webhooks, retries.
Server-side only API keys
Never expose SMTP credentials or API keys in client code. Use env vars on the backend only.
Use templates, not string concatenation
Server-rendered templates with variables. Easier to maintain, harder to break.
Implement retry logic
Wrap sends in exponential backoff. Email providers go down briefly - your app should not.
Queue heavy sends
Welcome flows, password resets - send via a job queue (BullMQ, Inngest) so HTTP requests stay fast.
Subscribe to webhooks
Track delivered, opened, clicked, bounced, complained events. Feed back into your DB.
Honor unsubscribes immediately
Even on the free tier - remove suppressed contacts from your active list within minutes.
Test in staging with a real provider
Use a separate sub-account or sandbox - never send tests to real customers.
Plaintext fallback
Always include a text/plain version. Improves deliverability and accessibility.
Inline CSS
Gmail strips style blocks. Use a tool like Juice or your provider's template inliner.
Set Reply-To headers
noreply@ kills reputation. Use a real, monitored address that humans can reply to.