Why I switched from QQ Mail SMTP to Resend
saas.pet originally sent emails through QQ Enterprise Mail SMTP. Problems: Chinese webmail providers mark automated emails as spam. Gmail silently drops about 15% of QQ-sent emails. SPF/DKIM/DMARC setup on a custom domain was 2 hours of DNS fiddling. Switching to Resend: point a DNS record, update one API endpoint, and all emails suddenly arrived in inboxes instead of spam folders. The deliverability improvement was immediate: open rates went from 22% to 45%.
The API: 3 lines of code from any backend
Python: `import resend; resend.api_key = 're_...'; resend.Emails.send({'from': 'saas.pet <newsletter@saas.pet>', 'to': ['user@gmail.com'], 'subject': 'Weekly AI Tools', 'html': '<h1>Top 5</h1>'})`. That is literally it. No SMTP server, no port configuration, no TLS negotiation. The SDK exists for Python, Node, Go, Ruby, PHP, and Elixir. Or just POST to `https://api.resend.com/emails` with a JSON body. I use the raw fetch API from Vercel serverless functions to avoid SDK bundling issues.
React Email templates: write emails like React components
Resend created react.email, a library for building email templates with React components. You write `<Container><Heading>Weekly Digest</Heading><Text>Top 5 tools this week</Text></Container>` and it renders to HTML that works in Gmail, Outlook, and Apple Mail. This is the first time I enjoyed writing email templates. The alternative (writing raw HTML tables with inline CSS) is one of the worst developer experiences. react.email plus Resend's preview dashboard means you actually know what the email looks like before sending.
Free tier vs paid: the real limits
Free tier: 100 emails per day, 1 domain, 1 API key. This covers most indie projects. saas.pet sends about 15 emails per day (newsletter, contact form notifications, cron job alerts). Paid starts at $20/month for 5,000 emails/month and adds: multiple domains, audience management, broadcast API for newsletters, and webhook events. The audience feature (mailing list management) is what pushed me to paid: it handles subscribe/unsubscribe automatically and prevents sending to bounced addresses.
What is still missing
No built-in email template builder for non-developers. If a marketing person wants to design an email, they need a developer to code it in React Email. The audience segmentation is basic: you can filter by custom data fields but there is no 'users who opened last 3 emails but did not click' type of segment builder. Webhook events sometimes arrive 30-60 seconds late, which matters for real-time notification systems. And the dashboard does not show inbox placement rates (how many emails actually hit inbox vs promotions vs spam).