Medusa v2 has a notification module. It's designed exactly for transactional email — you register a provider, configure templates, and the module fires on order events. There's one problem: there's no official Resend provider.
The community providers that exist are hit-and-miss on maintenance. The official SendGrid provider exists, but its setup felt heavier than the problem warranted. Resend, on the other hand, seemed easy enough to implement directly — clean API, good TypeScript types, and 3,000 emails a month free and a dollar per thousand beyond that.
This is what I did instead: skip the notification module entirely.
The approach
Medusa's event system still works without the notification module. Any subscriber can listen to order.placed and do whatever it wants. So the setup is:
An order.placed subscriber that calls the Resend SDK directly.
The email template inlined in the subscriber file.
A dev-redirect pattern so order emails in staging don't land in real inb
Discussion
Start the conversation
Your voice can be the first to spark an engaging conversation.