Resend
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.
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
Download Trend
Last 12 months
Tradeoffs & Caveats
Know before you commitYou 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
3,000 emails/mo · 100/day
$20/mo (50K emails)
Best free tier in email category
Cost Calculator
Estimate your Resend cost
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
Learning Resources
Docs, videos, tutorials, and courses
Get Started
Repository and installation options
View on GitHub
github.com/resend/resend-node
npm install resendpip install resendQuick 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