Email & Comms
resend

Resend

TypeScriptReact EmailSaaSFree tier

Modern transactional email API built for developers. Native React Email support, clean SDK, excellent deliverability, and a generous free tier (3k emails/month). The fastest-growing email tool in the ecosystem.

License

MIT

Language

TypeScript

71
Trust
Good

Why Resend?

You want to build email templates with React components

You need transactional email with excellent deliverability

You want a clean modern API (not SendGrid's legacy complexity)

Signal Breakdown

What drives the Trust Score

npm downloads
920k / wk
Commits (90d)
89 commits
GitHub stars
14.2k ★
Stack Overflow
890 q's
Community
High
Weighted Trust Score71 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

You need bulk marketing email campaigns (use Loops or Mailchimp)

You need SMTP relay without a dedicated API

You need on-premise email infrastructure

Pricing

Free tier & paid plans

Free tier

3,000 emails/mo · 100/day

Paid

$20/mo (50K emails)

Best free tier in email category

Cost Calculator

Estimate your Resend cost

10 K emails
15,000

Estimated monthly cost

$20/mo

Pro plan: $20/mo for up to 50,000 emails.

Estimates only. Verify with official pricing pages before budgeting.

Often Used Together

Complementary tools that pair well with Resend

nextjs

Next.js

Frontend & UI

98Excellent
View
supabase

Supabase

Database & Cache

95Excellent
View
clerk

Clerk

Auth & Users

80Strong
View
vercel

Vercel

Hosting & Deploy

89Strong
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/resend/resend-node

npmnpm install resend
pippip install resend

Quick Start

Copy and adapt to get going fast

import { Resend } from 'resend';

const resend = new Resend(process.env.RESEND_API_KEY);

await resend.emails.send({
  from: 'hello@yourdomain.com',
  to: 'user@example.com',
  subject: 'Welcome!',
  react: <WelcomeEmail username="Vamsi" />,
});

Code Examples

Common usage patterns

Send with React Email template

Build email templates as React components

// emails/WelcomeEmail.tsx
import { Html, Button, Text } from '@react-email/components';

export function WelcomeEmail({ username }: { username: string }) {
  return (
    <Html>
      <Text>Hey {username}, welcome aboard!</Text>
      <Button href="https://yourapp.com/dashboard">Get Started</Button>
    </Html>
  );
}

// Route handler
import { Resend } from 'resend';
import { WelcomeEmail } from '@/emails/WelcomeEmail';

const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
  from: 'onboarding@yourapp.com',
  to: user.email,
  subject: 'Welcome to YourApp',
  react: <WelcomeEmail username={user.name} />,
});

Batch send

Send multiple emails in a single API call

const resend = new Resend(process.env.RESEND_API_KEY);

await resend.batch.send([
  { from: 'noreply@app.com', to: 'alice@example.com', subject: 'Invoice', html: '<p>Your invoice</p>' },
  { from: 'noreply@app.com', to: 'bob@example.com', subject: 'Invoice', html: '<p>Your invoice</p>' },
]);

Schedule an email

Deliver an email at a future timestamp

await resend.emails.send({
  from: 'reminders@yourapp.com',
  to: 'user@example.com',
  subject: 'Trial ending soon',
  html: '<p>Your trial ends in 3 days.</p>',
  scheduledAt: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000).toISOString(),
});

Community Notes

Real experiences from developers who've used this tool