Resend vs SendGrid in 2026: SendGrid Killed the Free Tier — Here's What Actually Changed

Last updated: May 2026

In May 2025, SendGrid killed its free tier. In its place: a 60-day trial with 100 emails per day, then $19.95/month or you stop sending. That single change is the reason the entire indie / SaaS / Next.js community switched the default to Resend, which offers 3,000 emails per month permanently free. This guide compares Resend and SendGrid as they actually exist in May 2026 — real pricing curves, React Email templating, DKIM / SPF / DMARC setup, webhooks, deliverability, and when each one is still the right pick.

For the broader email-API landscape, see Postmark Pricing and Twilio Alternatives.

Free tier — the decisive change

ServiceFree tier (2026)
Resend3,000 emails/month forever, 100/day cap, no credit card
SendGrid60-day trial with 100/day, then no free tier
Postmark100 emails/month forever (very tight)
Mailgun5,000 emails/month for 3 months, then paid
Brevo300 emails/day forever

If you need permanent free tier above ~100 emails/day, Resend or Brevo are your two real options in 2026. SendGrid is now a paid-only platform from day 61.

Pricing at scale

Volume / monthResendSendGridPostmark
3,000$0 (free)$0 (trial day 1-60)$0 (free)
10,000$0 (free)$19.95$15
50,000$20$19.95$50
100,000$90$34.95$115
500,000~$400~$249~$580
1,000,000~$800~$449~$1,160

Break-even points:

  • Resend vs SendGrid: cross at ~75-90K emails/month. Below that, Resend; above, SendGrid wins on price.
  • Postmark is always the most expensive of the three but has the strongest "transactional-only" deliverability reputation.

For most SaaS apps starting out, you'll be on Resend's free tier or in the $20-50/month range — well below the SendGrid cost crossover. For high-volume e-commerce, marketing newsletters, or any sender doing 200K+ emails/month, SendGrid's pricing becomes competitive.

Developer experience

Resend was designed from scratch in 2023 with a clean API surface:

import { Resend } from 'resend';
const resend = new Resend('re_...');

await resend.emails.send({
  from: 'Acme <[email protected]>',
  to: ['[email protected]'],
  subject: 'Welcome',
  react: <WelcomeEmail name="Jane" />,
});

The react: field is React Email — templates as JSX components instead of table-based HTML. For Next.js / React / TypeScript stacks, this is transformative: type-safe email templates, preview server, Tailwind support, components.

SendGrid works, but feels dated:

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Welcome',
  text: 'Plain text',
  html: '<table ...>...</table>',  // bring your own HTML
};
await sgMail.send(msg);

SendGrid has a visual drag-and-drop template editor (good for marketing, less useful for transactional code-as-config workflows) and supports dynamic templates with Handlebars. For greenfield React/Next.js, Resend's DX is meaningfully better; for marketing teams that need a visual editor, SendGrid still wins.

DKIM, SPF, DMARC — both require it

Both providers require proper DNS authentication for good deliverability:

  • SPF — authorizes the provider's servers to send for your domain.
  • DKIM — cryptographic signing of outgoing mail.
  • DMARC — policy for handling SPF/DKIM failures (recommended p=quarantine or p=reject after monitoring period).

Resend's setup: walks through all three records with automatic validation. Most setups take 30 minutes including DNS propagation.

SendGrid's setup: same three records plus optional branded tracking domain (replaces sendgrid.net tracking links with your domain). The branded tracking domain helps avoid being lumped into SendGrid's shared sender reputation in spam filters.

For senders that get marked as spam due to shared IPs, both offer dedicated IPs ($30-50/month add-on). Use only at high volume (50K+/month) — at low volume, dedicated IPs don't accumulate enough reputation to help.

Webhooks

Both support webhooks for delivered, bounced, opened, clicked, complained events.

Resend has built-in webhook logs in the dashboard — you can see every webhook the system tried to send and the response code. Great for debugging integration issues.

SendGrid has webhooks but no UI for inspecting webhook delivery history; you need server-side logging to debug.

Payload formats differ. Migrating from SendGrid to Resend (or vice versa) requires updating your webhook handler.

Deliverability

Both reach high inbox placement (95%+) when DKIM/SPF/DMARC are configured and sender reputation is healthy. The differences:

  • Shared IP pools. SendGrid has the largest shared IP pool (some pools are very clean, some are problematic). Resend's pool is smaller and more curated.
  • Industry filtering. SendGrid hosts every kind of sender, including marketing platforms with mixed reputation. Some corporate spam filters distrust SendGrid more aggressively than Resend by default.
  • Branded tracking. SendGrid's branded tracking domain helps senders avoid the SendGrid-shared-reputation tax. Resend doesn't have that issue at the same scale yet.

In practice: for low-volume transactional, both deliver well. For high-volume marketing or anti-spam-sensitive industries (HR tooling, recruitment, debt collection), dedicated IPs become more important than the provider choice.

React Email — Resend's unique angle

React Email is an open-source library by the Resend team for building emails with React components. It's not exclusive to Resend (you can use it with any email provider), but Resend's integration is tightest:

  • Send a React component directly to resend.emails.send({ react: }).
  • Preview server for development (react-email dev).
  • Component library for buttons, headings, columns that render consistently in Gmail / Outlook / Apple Mail.
  • TypeScript types throughout.

For teams writing emails in React, this is a productivity multiplier. Templates live in your codebase, get version-controlled, and can use shared design components.

Marketing emails — only SendGrid

If you need to send newsletters, drip campaigns, audience segmentation, or marketing broadcasts, SendGrid handles both transactional and marketing under one platform (Marketing Campaigns module). Resend is transactional-first; the marketing features (audiences, broadcasts) have been added through 2025-2026 but the product is not as mature as SendGrid's marketing tools.

For a SaaS app with separate transactional (Resend) and marketing (Mailchimp / Customer.io / ConvertKit) stacks, this isn't a problem. For a single-platform requirement, SendGrid wins.

Compliance

  • SendGrid: offers HIPAA BAA for covered entities. Strong SOC 2 and ISO 27001 compliance documentation.
  • Resend: SOC 2 Type II compliant. No HIPAA BAA currently.

For healthcare apps, SendGrid is the path. For most other regulated industries, both have adequate compliance.

When to choose Resend

  • New SaaS, Next.js, React-based product.
  • Free tier needed (3,000/month).
  • Transactional-only emails.
  • Developer experience matters.
  • Volume under 75K emails/month.

When to choose SendGrid

  • High volume (>100K emails/month).
  • Need transactional + marketing in one platform.
  • HIPAA BAA required.
  • Existing SendGrid integration that works.
  • Marketing team needs visual template editor.

Common mistakes when switching

  • Migrating webhooks 1:1. Payload formats differ. Update your handler and retest.
  • Forgetting DNS. Both need fresh DKIM/SPF on the new provider's domain. Don't rely on old records.
  • Underestimating IP warmup. New sender on a new IP needs 2-4 weeks of gradual volume ramp.
  • Skipping deliverability monitoring. Use Google Postmaster Tools (postmastertools.google.com) and Microsoft SNDS regardless of provider.
  • Choosing on free tier alone. Project 12 months out: if you'll cross 100K/month, SendGrid is cheaper long-term.

Migration paths

Resend publishes a migration guide from SendGrid. Practical steps:

  1. Sign up at Resend, verify domain.
  2. Update your sending code to use Resend's API (small change).
  3. Update webhook handler for Resend's payload format.
  4. Run both in parallel for 1-2 weeks (split traffic 90/10 then 50/50).
  5. Switch DNS / fully cut over once monitoring is clean.

Reverse direction (Resend → SendGrid) is similar effort.

enjoyed this?

Follow me for more on AI agents, dev tools, and building with LLMs.

X / Twitter LinkedIn GitHub
← Back to blog