Skip to main content
Resend vs Postmark vs SendGrid for SaaS (2026)
Engineering

Resend vs Postmark vs SendGrid for SaaS (2026)

Transactional email is the part of your SaaS nobody notices until it breaks. A password reset that lands in spam is a support ticket; a verification email that never arrives is a sign-up you paid for and lost. Our SaaS MVP tech stack names Resend as the default in one line — this is the reasoning behind it, with every price checked against the vendors' own pages.

Which transactional email service should a SaaS use?

For most Next.js SaaS products in 2026, use Resend: it has a permanent free tier, the cleanest developer experience on a modern stack, and costs $20 a month for 50,000 emails. Choose Postmark when inbox placement of password resets and receipts is business-critical, SendGrid when you want marketing and transactional email in one platform at scale, and Amazon SES when volume is high and your team can run the plumbing.

At MVP volumes, all four deliver well once your domain is authenticated. The differences sit around the send — logs, templates, data location and how much operational work lands on you.

How do Resend, Postmark, SendGrid and Amazon SES compare?

Prices are as of October 2026, in US dollars as billed. Vendors change pricing often, so check before you commit.

ResendPostmarkSendGridAmazon SES
Free tier3,000 emails/month (100/day), permanent100 emails/month, permanentNone — 60-day trial at 100/dayNone for email; new AWS accounts get Free Tier credits
Entry paid planPro: $20/month for 50,000Basic: $15/month for 10,000Essentials: $19.95/month for 50,000No monthly fee; pay per email
~50,000 emails/month$20$55 (Basic), $60.50 (Pro)$19.95~$5–8
~100,000 emails/month$35~$115 (Basic, 125k tier)$34.95 (Essentials), $89.95 (Pro)~$10–16
Overage$0.90 per 1,000, opt-in$1.20–1.80 per 1,000, by planCharged above plan; next tier usually cheaperEvery email metered
Dedicated IP$30/month add-on on Scale, over 3,000 emails/dayFrom $50/month on Pro and up, 300k+ emails/monthOne included on Pro$24.95/month, or managed from $15/month plus per-email fee
Transactional vs marketingSeparate Broadcasts product, priced per contactSeparate message streams on separate IPsSeparate Email API and Marketing CampaignsBuild it yourself
Inbound emailAll plans, counts towards quotaPro and Platform onlyInbound Parse on all plansYes, $0.10 per 1,000
Webhooks1, 5 or 10 endpoints by planAll plans1 to 5 by planVia SNS or EventBridge
TemplatesReact EmailHosted templates and layoutsDynamic Templates with editorBasic API templates
Log retention30 days45 days; 7–365 as paid add-on3 days (Essentials), 7 (Pro)None built in
EU/UK dataSends from Ireland; account data stored in USUS onlyEU data residency on Pro and upAny AWS region, including London

Resend Pro and SendGrid Essentials sit within pennies of each other, Postmark costs roughly three times as much at 100,000 emails, and SES is cheaper still. What the price rows don't show is the work: when a customer says "I never got the invoice", the log retention row decides whether the answer takes thirty seconds or an afternoon.

When is Postmark worth paying more for?

When a missing email costs you real money — a login code, a payment receipt, a security alert — and you want a provider whose whole business is transactional mail. Postmark splits sending into transactional and broadcast message streams that, by its own account, never share IP ranges, so a newsletter can't drag down your password resets. It keeps 45 days of full message content by default, extendable to 365 on Pro and above.

The trade-off is price: 50,000 emails cost $55 a month, nearly three times Resend, and inbound processing needs Pro.

Is SendGrid still worth it without a free plan?

Yes, for teams that want marketing and transactional email under one account at scale — but it's no longer the free default. Twilio began retiring SendGrid's free plans on 27 May 2025; new accounts now get a 60-day trial at 100 emails a day, then Essentials from $19.95 a month.

Its strengths show past the MVP. Pro, from $89.95 a month for 100,000 emails, includes a dedicated IP with automated warm-up, subusers and EU data residency, with Marketing Campaigns alongside the Email API. For a small team the friction is real: Essentials keeps three days of activity, and the dashboard has the sprawl of a platform built for enterprise senders.

Is Amazon SES cheaper than Resend?

Yes — about $10 to $16 a month at 100,000 emails against Resend's $35 — but you pay the difference in engineering time. SES's long-standing rate is $0.10 per 1,000 emails, plus $0.12 per GB of attachments. AWS has since added Essentials, Pro and Enterprise plans, and from 21 July 2026 new accounts start on Essentials at $0.16 per 1,000, with no monthly fee; you can switch to the à la carte rate at any time. The SES pricing page has the detail.

What SES pushes onto you:

  • Production access. New accounts start in a sandbox, per AWS region: verified recipients only, at most 200 messages per 24 hours and one per second. Production access requires describing your mail and confirming you handle bounces and complaints; AWS aims to respond within 24 hours.
  • Bounce and complaint handling. You wire notifications through SNS or EventBridge and act on them. AWS reviews accounts at a 5% bounce rate or 0.1% complaint rate, and may pause sending at 10% or 0.5%.
  • No message log. To answer "did this invoice send?" you store delivery events yourself.
  • Assembly. Templates, suppression syncing, retries and IAM permissions all become your code.

SES earns its place when you send hundreds of thousands of emails a month, already run on AWS — the trade-off in Vercel vs AWS — and have an engineer who will own it.

What deliverability setup does every SaaS need?

Authenticate your domain with SPF, DKIM and DMARC, keep transactional and marketing mail on separate subdomains, and suppress bounces automatically — whichever provider you choose.

  • SPF, DKIM and DMARC. SPF lists who may send for your domain, DKIM signs each message, and DMARC tells receivers what to do when checks fail. Start DMARC at p=none with reporting, then tighten to quarantine or reject once reports are clean.
  • Gmail and Yahoo's rules. Since February 2024, Gmail has required every sender to use SPF or DKIM, valid forward and reverse DNS, TLS and a spam rate below 0.3%. Anyone sending more than 5,000 messages a day to Gmail accounts also needs SPF, DKIM and a DMARC record aligned with the From domain (p=none is acceptable), and marketing and subscribed messages must support one-click unsubscribe. Yahoo enforces equivalent rules and expects unsubscribes honoured within two days. Google's sender guidelines recommend staying under 0.1% spam.
  • Separate streams. Send transactional mail from one subdomain, say mail.yourapp.com, and marketing from another, so a badly received newsletter can't sink your password resets.
  • Warming. A new domain sending thousands of emails on day one looks like a spammer, so ramp volume up gradually. Resend, SendGrid Pro and SES's managed IPs automate warming for dedicated IPs.
  • Bounce handling. All four suppress hard bounces. Sync bounce and complaint webhooks into your database too, so the app can prompt users to fix a dead address.

How do you send email from Next.js on Vercel?

Send only from server code — a route handler, server action or background job — build templates with React Email, and put a queue with retries between your app and the provider. Installing Resend from the Vercel Marketplace creates an API key and stores it as RESEND_API_KEY in your project.

Our pattern: the user action writes to Postgres — Neon or Supabase — and enqueues a job that sends. A queue such as Inngest or Trigger.dev retries failures, and Resend's idempotency key, kept for 24 hours, stops a retry sending twice:

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

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

export async function sendWelcomeEmail(user: { id: string; email: string; name: string }) {
  const { data, error } = await resend.emails.send(
    { from: 'Acme <hello@mail.acme.co.uk>', to: user.email, subject: 'Welcome to Acme',
      react: WelcomeEmail({ name: user.name }) },
    { idempotencyKey: `welcome-email/${user.id}` },
  );
  if (error) throw new Error(error.message); // throw so the queue retries
  return data?.id;
}

Don't expose a generic "send an email" server action — server actions are public endpoints, so trigger sends from your own business logic. And because React Email renders to plain HTML, your templates move with you if you ever switch to Postmark or SES.

Where does your email provider process personal data?

Every email contains personal data, so your provider is a processor under UK GDPR: know where it processes that data and make sure a data processing agreement is in place. All four offer one — Resend, Postmark and AWS build theirs into their terms, and Twilio's covers SendGrid.

Location differs. Resend can send from Ireland but stores account data, logs and metadata in the US. Postmark processes in the US only. SendGrid offers EU data residency on Pro and above. SES runs in whichever AWS region you choose, London included. US processing is lawful with the right safeguards, but enterprise buyers ask, so record it in your privacy notice. Our UK GDPR guide for SaaS startups covers the rest. This is general guidance, not legal advice.

Our default: Resend, with clear exceptions

For the SaaS MVPs we build, the default is Resend with React Email templates, sending from an authenticated subdomain. The free tier covers a product before launch, $20 a month covers 50,000 emails after it, and templates live in the same Next.js repo as everything else. Email is one of the smaller lines in what it costs to maintain a SaaS, so we optimise for developer time, not pennies.

We use Postmark when email is the critical path — login codes, payment confirmations, invoices that become disputes when they go missing. Mature stream separation and 45 days of history are worth about $35 a month extra at 50,000 emails.

We use Amazon SES when volume and skills line up — hundreds of thousands of emails a month, a client already on AWS, and an engineer who will own bounces and monitoring. Below that, the savings don't cover the build.

We don't start new MVPs on SendGrid, but we don't move clients off it if it's working: its Pro tiers are competitive at volume. What we accept with Resend — US data storage, 30-day logs, dedicated IPs only on Scale — doesn't bind an MVP.

Frequently asked questions

Is Resend reliable enough for a production SaaS?

Yes — at SaaS-MVP volumes Resend is a mainstream production choice, not an experiment. Every plan includes domain authentication, automatic suppression of hard bounces, signed webhooks and 30 days of logs, and Resend holds SOC 2 Type II. Its limits appear at scale: dedicated IPs need the Scale plan and more than 3,000 emails a day.

Do transactional emails need an unsubscribe link?

Not under Gmail and Yahoo's bulk-sender rules — one-click unsubscribe applies to marketing and subscribed messages, not password resets or receipts. The catch is mixing: add a promotional block to a receipt and it starts to look like marketing to recipients and filters alike. Give newsletters their own stream with a working unsubscribe.

Can you use Resend with Vercel and Neon or Supabase?

Yes — Resend installs from the Vercel Marketplace and works with any Postgres, because the database only stores what triggers an email and the events that come back. Store webhook events — delivered, bounced, complained — against the user. On Supabase Auth, point its custom SMTP settings at Resend's SMTP relay so auth emails come from your domain. Clerk sends its own auth emails by default; we compare auth providers in Clerk vs Auth0 vs NextAuth.

How hard is it to switch email providers later?

Easy, if every send goes through one function — typically a day's work. Templates render to HTML for any provider, and the main job is new DNS records, re-pointed webhooks and remapped event names. A new provider means new sending IPs, so move traffic across gradually.

Want transactional email that reaches the inbox?

Email is a small slice of an MVP build, but it decides whether users can sign in. If you want it — and the rest of your stack — set up properly, book a free scoping call. We'll spec the stack around your product, assign a dedicated PM, and quote the build fixed-price, so you know the cost before committing.

Sameer AhmadCo-Founder & CTO, Coderacle

Sameer is the co-founder and CTO of Coderacle, a London software studio building SaaS MVPs for UK founders. He leads engineering and architecture on every build — stack decisions, scalable foundations, and getting products to production without the usual rewrites.

Leave a comment