← Back to articles

Resend Email API Review (2026)

Resend is a modern email API built for developers. Send transactional and marketing email with a clean API, React Email templates, and competitive pricing. Founded by the creator of React Email — the DX reflects that pedigree.

What You Get

FeatureDetails
APIREST + SDKs (Node, Python, Ruby, Go, etc.)
React EmailBuild email templates as React components
AudiencesMarketing email to subscriber lists
WebhooksDelivery, bounce, open, click events
Custom domainsSend from your domain
DKIM/SPFAutomated email authentication
AnalyticsOpens, clicks, bounces, complaints
Batch sendingSend to multiple recipients efficiently
IdempotencyPrevent duplicate sends

The Developer Experience

Send an Email (4 Lines)

import { Resend } from 'resend';

const resend = new Resend('re_123456789');

await resend.emails.send({
  from: 'hello@yourdomain.com',
  to: 'user@gmail.com',
  subject: 'Welcome!',
  html: '<p>Hello world</p>',
});

React Email Templates

The real power — build email templates as React components:

import { Html, Body, Container, Text, Button, Img } from '@react-email/components';

export function WelcomeEmail({ name, loginUrl }: { name: string; loginUrl: string }) {
  return (
    <Html>
      <Body style={{ fontFamily: 'sans-serif', background: '#f6f6f6' }}>
        <Container style={{ maxWidth: 600, margin: '0 auto', background: '#fff', padding: 32 }}>
          <Img src="https://yourdomain.com/logo.png" width={120} />
          <Text style={{ fontSize: 20 }}>Welcome, {name}!</Text>
          <Text>Your account is ready. Click below to get started.</Text>
          <Button
            href={loginUrl}
            style={{ background: '#000', color: '#fff', padding: '12px 24px', borderRadius: 6 }}
          >
            Log In
          </Button>
        </Container>
      </Body>
    </Html>
  );
}
await resend.emails.send({
  from: 'hello@yourdomain.com',
  to: 'user@gmail.com',
  subject: 'Welcome!',
  react: WelcomeEmail({ name: 'John', loginUrl: 'https://app.example.com' }),
});

Why this matters:

  • Type-safe. TypeScript catches errors in templates at compile time.
  • Testable. Render components in Storybook or a preview page.
  • Version-controlled. Templates live in your codebase, not a SaaS dashboard.
  • Reusable. Share components across email templates (headers, footers, buttons).
  • No HTML hell. React Email handles the notorious email HTML compatibility issues.

Preview Emails Locally

npx react-email dev

Opens a browser preview of all your email templates. Hot reload as you edit. See exactly what recipients will see — without sending test emails.

What's Great

Modern API Design

The SDK is clean, typed, and predictable:

// Send with attachments
await resend.emails.send({
  from: 'hello@example.com',
  to: 'user@gmail.com',
  subject: 'Your Invoice',
  react: InvoiceEmail({ amount: 99.99 }),
  attachments: [{ filename: 'invoice.pdf', content: pdfBuffer }],
});

// Batch send
await resend.batch.send([
  { from: '...', to: 'user1@gmail.com', subject: '...', react: Email1() },
  { from: '...', to: 'user2@gmail.com', subject: '...', react: Email2() },
]);

// Schedule
await resend.emails.send({
  from: '...', to: '...', subject: '...',
  react: Email(),
  scheduledAt: '2026-03-15T09:00:00Z',
});

Audiences (Marketing Email)

Not just transactional — send marketing emails too:

// Add to audience
await resend.contacts.create({
  audienceId: 'aud_123',
  email: 'subscriber@gmail.com',
  firstName: 'John',
});

// Send to audience
await resend.emails.send({
  from: 'newsletter@example.com',
  to: 'aud_123', // audience ID
  subject: 'Monthly Newsletter',
  react: NewsletterEmail(),
});

One platform for transactional (welcome emails, receipts) and marketing (newsletters, announcements).

Webhooks

Track everything:

// Your webhook endpoint receives:
{
  "type": "email.delivered",
  "data": {
    "email_id": "em_123",
    "to": "user@gmail.com",
    "subject": "Welcome!",
    "delivered_at": "2026-03-10T12:00:00Z"
  }
}

Events: email.sent, email.delivered, email.opened, email.clicked, email.bounced, email.complained.

Domain Setup

  1. Add your domain in the Resend dashboard
  2. Add 3 DNS records (DKIM, SPF, MX)
  3. Verify → start sending from your domain

Clear instructions, fast verification, and Resend handles DKIM key rotation.

Where It Falls Short

Deliverability Is Good, Not Best

Resend's deliverability is solid but not Postmark-level. Postmark's dedicated focus on transactional email and strict sender policies give it higher inbox placement rates. For most applications, Resend's deliverability is more than adequate.

Newer Platform

SendGrid has 15+ years of production use. Postmark has 10+. Resend is younger. While stable and reliable, the track record is shorter. For mission-critical email (banking, healthcare), some teams prefer proven providers.

Analytics Are Basic

Open rates, click rates, bounce rates — the essentials are covered. But compared to SendGrid's detailed analytics (geographic, device, engagement scoring), Resend's analytics are simpler.

No Drag-and-Drop Editor

Templates are code-only (React Email or raw HTML). Non-developers can't create or edit email templates without developer involvement. SendGrid and Mailchimp have visual editors.

Free Tier Is Small

3,000 emails/month. Enough for development and small projects. But a moderately active SaaS with 1,000 users sending 5 emails each will exceed the free tier quickly.

Pricing

PlanEmails/moPrice
Free3,000$0
Pro50,000$20/mo
Pro100,000$40/mo
Business150K+Custom
Dedicated IPAdd-on$40/mo

Competitive with SendGrid. Cheaper than Postmark at most tiers.

Resend vs Alternatives

ResendSendGridPostmarkAmazon SES
DX⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
React Email
DeliverabilityGoodGoodExcellentGood
Marketing
Price (50K/mo)$20$20$50$5
AnalyticsBasicAdvancedGoodBasic

FAQ

Is Resend production-ready?

Yes. Stable, reliable, and used by thousands of production applications. The API has been stable with no breaking changes.

Can I use Resend without React Email?

Yes. Send HTML strings, plain text, or use any template engine. React Email is optional — it's just the best way to build email templates.

How does Resend handle bounces?

Bounced emails are flagged via webhooks. Hard bounces are suppressed automatically (won't send to that address again). You can manage the suppression list via API.

Is Resend GDPR compliant?

Yes. Resend processes data in accordance with GDPR. DPA (Data Processing Agreement) available.

Can I migrate from SendGrid to Resend?

Yes. Migration involves: updating SDK imports, adjusting API calls (similar structure), and optionally converting templates to React Email. 1-2 hours for most projects.

Bottom Line

Resend is the best email API for developers in 2026. React Email templates, clean SDK, and competitive pricing make it the default choice for new projects. The developer experience gap over SendGrid and Postmark is significant — especially for teams already using React/TypeScript.

Start with: The free tier (3,000 emails/month). Send your first email in 5 minutes. Build one React Email template. Preview it locally. If the DX clicks (it will), upgrade when you need higher volume.

Get AI tool guides in your inbox

Weekly deep-dives on the best AI coding tools, automation platforms, and productivity software.