Dev.to WebDev 🛠 Dev 👁 0 📖 7 min read

The cheapest transactional email APIs for side projects and vibe-coded apps (2026)

Disclosure: I build Notify, one of the APIs below. I've tried to be fair, and Notify isn't the right pick for everyone. Where another provider is the better choice, I've said so. Every side project hits the same moment

Disclosure: I build Notify, one of the APIs below. I've tried to be fair, and Notify isn't the right pick for everyone. Where another provider is the better choice, I've said so.

Every side project hits the same moment. You need a password reset email, or a "your export is ready" email, or a magic link, and suddenly you're reading pricing pages instead of shipping. If you're building with Lovable, Bolt or Cursor, it often comes even sooner, because the AI happily writes sendEmail() and leaves you to work out who actually sends it.

This post is the comparison I wanted when I was in that spot: what eight popular transactional email APIs actually cost at small volumes, and which one I'd pick for which situation.

The short version

  • Lowest cost per email at any volume: AWS SES, if you're comfortable in AWS.
  • Best free tier for a hobby project: Mailtrap (4,000/month) or Resend (3,000/month), as long as you stay under their daily caps.
  • Deliverability reputation above all: Postmark.
  • React Email and the biggest ecosystem: Resend.
  • Cheapest managed option around 3k to 10k a month: Notify ($10 for 10,000).
  • Cheapest managed option at 50k a month: SendGrid, Resend and Mailtrap are all around $20. Notify isn't the cheapest here.
  • Marketing and transactional in one place: Brevo.

What it costs (USD per month, as of Nov 2026)

I checked list prices on each vendor's public pricing page in early November 2026. These are the cheapest plans that cover each volume, for transactional sending only: no dedicated IPs, add-ons, tax or annual discounts. Plans change often, so check the linked page before you commit.

Provider 1k/mo 3k/mo 10k/mo 50k/mo Free tier
AWS SES ~$0.16 ~$0.48 ~$1.60 ~$8 None for SES itself; new AWS accounts may get credits
Notify $0 $10 $10 $50 1,000/month
Resend $0 $0* $20 $20 3,000/month, 100/day
Mailtrap $0 $0 $15 $20 4,000/month, 150/day
Mailgun $0 $0* $15 $35 100/day
Postmark $15 $15 $15 $55 100/month (testing)
SendGrid $19.95 (a) $19.95 (a) $19.95 (c) $19.95 60-day trial, 100/day
Brevo $0 $0 $17 (b) $56 (b) 300/day

* Fits only if you never exceed 100 emails in a single day. A launch-day spike can push you over.

(a) Free for the first 60 days, then you need a paid plan.

(b) Brevo Starter, billed monthly (about 10% less if billed yearly). Brevo's volume counts campaign and transactional email together.

(c) SendGrid's cheapest paid plan, Essentials, is listed as "starting at $19.95/mo". The pricing page doesn't show a separate lower-volume tier, so check it for your volume.

SES notes: since July 2026, new SES accounts start on the Essentials plan at $0.16 per 1,000 emails. AWS says you can switch to the a la carte rate of $0.10 per 1,000, which brings 50k down to about $5. New accounts also start in the SES sandbox (verified recipients only) until AWS approves production access.

A few things jump out:

  1. SES is in a league of its own on price. Nothing managed comes close per email. You pay in setup time instead: IAM, the sandbox request, and wiring bounce and complaint events through SNS or EventBridge yourself.
  2. The free tiers aren't equal. Monthly numbers look generous, but daily caps (Resend 100, Mailgun 100, Mailtrap 150, Brevo 300) matter more for a launch than the monthly total.
  3. The 10k-to-50k jump changes the ranking. Notify is cheapest among managed APIs at 3k to 10k. At 50k, Resend, Mailtrap and SendGrid are cheaper than Notify's $50 Scale plan (which covers up to 100k).
  4. Postmark has no small paid tier. Above 100 a month you're on the $15 plan, which is fair if you value what Postmark is known for.

Best for: honest verdicts

AWS SES: lowest cost at scale. If you're already in AWS and sending a lot, use it. For a weekend project it's often more plumbing than it's worth, but the per-email maths is unbeatable.

Postmark: deliverability reputation. Postmark has a long track record on transactional-only sending and keeps transactional and broadcast mail on separate streams. If a password reset that lands in spam would really hurt your business, the $15 is easy to justify.

Resend: React Email and ecosystem. If you like writing emails as React components, Resend is the natural home. It has great docs, lots of tutorials and framework guides, inbound email and a hosted MCP server. Its free tier is good; the jump to $20 is the main reason people look around.

Mailtrap: biggest free tier, plus testing. 4,000 a month free, and if you already use Mailtrap's sandbox to catch emails in staging, keeping sending in the same place is convenient.

Mailgun: routing and inbound. Strong if you need to receive and route email by rules, validate addresses, or choose EU or US regions.

SendGrid: the big established option. A huge feature set, marketing as well as transactional, and Twilio behind it. It's cheap at 50k, but it can feel heavy if you only need three templates.

Brevo: one tool for campaigns and transactional. Good value if you also want newsletters, a CRM and SMS. If you only send password resets, much of it is surplus.

Notify: a small API at a low flat price. Notify is one send endpoint, domain verification, logs and webhooks, with an MCP server for coding agents. It's a good fit if you already render your own HTML, send somewhere between a few hundred and 10,000 emails a month, and don't want the $20 step. It isn't the right pick if you want React Email tooling, agent inboxes or receiving email, the cheapest option at 50k, or SMTP (Notify is HTTP only).

What actually matters for indie devs

The free tier, and how it's capped. A daily cap can make a "3,000 free" plan unusable on launch day. Look at both numbers.

Domain verification. Every serious provider makes you add SPF and DKIM records before you can send from your own domain. That's good for deliverability, but it's where most people stall. Check whether the provider shows exactly which record is missing, and whether there's a test address you can send from first. Most do; SES's sandbox is the strictest.

Developer experience. Count the lines of code from zero to a first email, and how readable the error messages are. Most of these APIs are a single HTTPS POST with an API key; try one before you choose.

Logs and webhooks. When a user says "I never got the email", you need a log to check. Retention on free plans ranges from a few hours to a few days, so check it.

MCP and agent support. If you build in Cursor, Claude Code or Windsurf, an MCP server lets the agent verify domains, send test emails and read logs without you pasting keys into chat. Resend has a hosted MCP; Postmark, Mailgun, Mailtrap and Notify (npx -y notifycx-mcp) have local ones. It's not essential, but it saves time while you build.

Adding email to a Lovable, Bolt or Cursor app

The pattern is the same whichever provider you choose:

  1. Keep the key on the server. Put the API key in an environment variable, or in Supabase secrets if your app uses Supabase. Never put it in client-side code. AI builders sometimes do this, so check.
  2. Send from a server route or edge function. For example, a Next.js route handler, a Supabase Edge Function or a Cloudflare Worker.
  3. Verify a subdomain like mail.yourapp.com so your main domain's reputation stays separate.
  4. Ask the AI for HTML, not a template builder. Prompt something like "write a plain, accessible HTML password reset email with a single button". Then send that HTML through the API.

With Notify, the whole send is one call:

await fetch("https://notify.cx/api/email/send", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NOTIFY_API_KEY!,
  },
  body: JSON.stringify({
    to: user.email,
    from: "MyApp <[email protected]>",
    subject: "Reset your password",
    html: `<p><a href="${resetUrl}">Reset your password</a></p>`,
  }),
});

Resend, Postmark and Mailgun look much the same: one POST, a key in a header, a JSON body. If you use Supabase Auth, its built-in email service is rate-limited and meant for testing, so plan to plug in a real provider before launch.

So which should you pick?

  • Hobby project, under ~100 emails a day: Mailtrap's or Resend's free tier, or Notify's if 1,000 a month is enough.
  • Real side project sending a few thousand a month on a budget: Notify at $10, or Mailgun/Mailtrap at $15 if you need their extras.
  • Heavy React Email user: Resend.
  • Deliverability is everything: Postmark.
  • Lots of email and AWS skills: SES.
  • Newsletters as well: Brevo.

If you want to try Notify, it's free for 1,000 emails a month at notify.cx. If something above is wrong or out of date, tell me in the comments and I'll fix it. Pricing pages change faster than blog posts.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.