DEV Community

Alex Spinov
Alex Spinov

Posted on

Resend Has a Free API — Send Beautiful Transactional Emails With React Email Templates

SendGrid, Mailgun, AWS SES — they all work but the developer experience is stuck in 2015. XML templates, complex SMTP configs, and ugly default styling.

Resend gives you a modern email API built for developers. Write email templates in React. Send with one API call. 3,000 emails/month free.

What You Get for Free

  • 3,000 emails/month — enough for most side projects
  • 100 emails/day sending limit
  • React Email — write templates as React components
  • Custom domains — send from your own domain
  • Webhooks — delivery, open, click, bounce notifications
  • REST API + SDKs — Node.js, Python, Go, Ruby, PHP, Elixir
  • SMTP support — drop-in replacement for existing setups

Quick Start (2 Minutes)

1. Get Your API Key

Sign up at resend.com, grab your API key from the dashboard.

2. Send an Email (Node.js)

npm install resend
Enter fullscreen mode Exit fullscreen mode
import { Resend } from "resend";

const resend = new Resend("re_YOUR_API_KEY");

await resend.emails.send({
  from: "hello@yourdomain.com",
  to: "user@example.com",
  subject: "Welcome to our app!",
  html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
});
Enter fullscreen mode Exit fullscreen mode

3. Send with React Email Templates

npm install @react-email/components
Enter fullscreen mode Exit fullscreen mode
import { Html, Head, Body, Container, Text, Button } from "@react-email/components";

function WelcomeEmail({ name }) {
  return (
    <Html>
      <Head />
      <Body style={{ fontFamily: "sans-serif", background: "#f4f4f5" }}>
        <Container style={{ padding: "40px", background: "#fff", borderRadius: "8px" }}>
          <Text style={{ fontSize: "24px", fontWeight: "bold" }}>
            Welcome, {name}!
          </Text>
          <Text>Thanks for joining. Here is what you can do next:</Text>
          <Button
            href="https://yourapp.com/dashboard"
            style={{ background: "#000", color: "#fff", padding: "12px 24px", borderRadius: "6px" }}
          >
            Go to Dashboard
          </Button>
        </Container>
      </Body>
    </Html>
  );
}

// Send it
await resend.emails.send({
  from: "hello@yourdomain.com",
  to: "user@example.com",
  subject: "Welcome!",
  react: <WelcomeEmail name="Alex" />,
});
Enter fullscreen mode Exit fullscreen mode

4. Python

import resend

resend.api_key = "re_YOUR_API_KEY"

resend.Emails.send({
    "from": "hello@yourdomain.com",
    "to": "user@example.com",
    "subject": "Welcome!",
    "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
})
Enter fullscreen mode Exit fullscreen mode

5. cURL

curl -X POST "https://api.resend.com/emails" \
  -H "Authorization: Bearer re_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": "user@example.com",
    "subject": "Welcome!",
    "html": "<h1>Hello!</h1>"
  }'
Enter fullscreen mode Exit fullscreen mode

Why Developers Are Switching

A startup CTO told me: "We were using SendGrid. The template editor felt like building a Word doc in 1999. Switched to Resend, wrote our templates in React, and our emails now look exactly like our app. The whole migration took an afternoon."

Free Plan Limits

Feature Free Tier
Emails/month 3,000
Emails/day 100
Custom domains 1
API keys Unlimited
Webhooks Yes
React Email Yes
Team members 1

The Bottom Line

If you are building a modern app and care about email quality — Resend is what email should have been all along. React templates, clean API, generous free tier.


Need to extract email addresses from websites? Check out my web scraping tools on Apify — extract contact data from any site automatically.

Building something custom? Email me at spinov001@gmail.com


More Free APIs You Should Know About

Top comments (0)