Transactional Email for MVPs: Resend and SendGrid With Nuxt
Almost every MVP needs to send email. Welcome messages when someone signs up. Password reset links. Notifications when something important happens. Receipts after a payment.
The mistake founders make is either ignoring email entirely (until it becomes a support problem) or overcomplicating it with a full marketing email platform before they have users. There's a simpler path.
Why Your MVP Needs Transactional Email From Day One
Transactional emails are the messages triggered by user actions — not marketing newsletters, but the functional emails users depend on:
- Email verification on sign-up
- Password reset links
- Payment receipts
- Action notifications ("Someone commented on your post")
- Welcome/onboarding sequences
If you're using Firebase Authentication or Supabase Auth, some of these (email verification, password reset) are handled for you out of the box with the provider's default templates. But for anything custom — welcome emails, notifications, receipts — you need a transactional email provider.
Sending from Gmail or your domain directly doesn't scale. Emails end up in spam, you have no delivery visibility, and there's no easy way to manage templates. Use a dedicated provider.
The Email Events That Matter at MVP Stage
Don't build all email flows on day one. Start with:
Required from launch:
- Email verification (usually handled by your auth provider)
- Password reset (same)
- Payment receipt (Stripe can handle this automatically — enable it in your Stripe dashboard)
High value, build early:
- Welcome email (triggered on successful sign-up) — your first chance to guide users to activation
- Key notification emails (whatever the most important event in your product is)
v2 additions:
- Onboarding sequences (day 3, day 7 follow-ups)
- Usage summaries
- Re-engagement emails
Resend vs SendGrid vs Postmark: Choosing a Provider
Resend
Resend is the newest of the three — built specifically for developers, with a clean API and first-class React/JSX email templates via the react-email library. Setup is fast and the free tier (3,000 emails/month) covers most MVP usage.
Best for: Nuxt/Vue teams who want a clean, modern API and don't need extensive marketing features. The developer experience is noticeably better than the older platforms.
SendGrid
SendGrid (owned by Twilio) is the incumbent — widely used, well-documented, and has a generous free tier (100 emails/day). More complex to set up than Resend, but has more features for transactional + marketing workflows.
Best for: Teams already using Twilio, or those who anticipate needing a combined transactional + marketing email platform.
Postmark
Postmark focuses exclusively on transactional email and has a strong reputation for delivery rates. More expensive on the free tier (100 test emails only, then paid), but the deliverability is excellent.
Best for: Products where email delivery reliability is critical (SaaS with business-critical notifications, financial products).
For most MVPs: Start with Resend. The developer experience is excellent for Nuxt, the free tier covers early usage, and migration to another provider later is straightforward.
Sending Email From a Nuxt Server Route
Keep email sending server-side. Your API key never touches the client.
Setup with Resend
npm install resend
// server/api/send-welcome-email.post.ts
import { Resend } from 'resend'
const resend = new Resend(process.env.RESEND_API_KEY)
export default defineEventHandler(async (event) => {
const { to, name } = await readBody(event)
const { data, error } = await resend.emails.send({
from: 'Your App <hello@yourdomain.com>',
to,
subject: 'Welcome to Your App',
html: `
<h1>Welcome, ${name}!</h1>
<p>Thanks for signing up. Here's how to get started...</p>
`
})
if (error) {
throw createError({ statusCode: 500, message: 'Failed to send email' })
}
return { success: true }
})
Call this from your server-side sign-up logic (not from the client directly), and you have welcome emails working.
Email Templates That Don't Require a Design Team
For MVP-stage templates, keep it simple: plain HTML with inline styles. Fancy templates break in email clients.
If you want better-looking emails without custom design work:
- react-email — JSX-based templates that compile to HTML; works well with Resend
- MJML — markup language that compiles to responsive email HTML
A functional plain-text email with good copy outperforms a beautiful template with generic copy every time. Focus on the message, not the design.
Avoiding the Spam Folder: Domain Verification and SPF/DKIM Basics
If your emails end up in spam, users won't see them. The fix is domain authentication.
SPF — a DNS record that tells email servers your provider is allowed to send on behalf of your domain. Your email provider's setup guide will give you the exact DNS record to add.
DKIM — a cryptographic signature that proves emails from your domain weren't tampered with in transit. Also configured via a DNS record your provider gives you.
DMARC — a policy that tells receiving servers what to do when SPF/DKIM checks fail. A basic p=none record is enough for starters.
All three are set up by adding DNS records to your domain registrar. Every email provider's onboarding walks you through this. It takes 15 minutes and dramatically improves deliverability.
Once configured, send a test email and check it at mail-tester.com — it'll score your setup and flag any issues before your users experience them.
If you want email set up correctly as part of a complete MVP build, let's talk.