Products BeaconMCPs
Company About Blog
Appearance

Why I left Resend for Plunk

I migrated my email infrastructure off Resend, landed on Plunk, and built an open-source MCP server to close the last gap. Notes on the pricing curve, the open-source piece, and why this is the same story as everything else on this site.

Earlier this month I half-accidentally pushed an MCP for Plunk to GitHub and quietly added a page on this site to host it. The code was deliberate; the timing wasn't. I'd planned to do it next month and ended up doing it now because the moment was right. The repo is at github.com/ignytehq/plunk-mcp, the page is at ignyte.me/mcps/, and it's free. All MCPs should be free, and local.

The more interesting story is why I needed it in the first place.

Resend is great. That's not the problem.

For most of the last year I was happily on Resend. If you've been anywhere near transactional email as a developer, you know the vibe: top of the search results, dev-flavored docs, React templates, and a free tier that gets you past the "is this real" stage. The team has shipped. They have a real point of view. If you'd asked me to recommend a transactional email tool to a friend, that's where I'd send them.

I'm not writing this to dunk on Resend. They've earned their spot. The pricing curve under the product is what I want to talk about.

The curve I couldn't make sense of

Resend's free tier is generous on the transactional side: 3,000 emails a month, capped at 100/day. You can ship a side project on that and never touch a credit card. The first paid step on the transactional side is $20/mo for 50,000 emails, which is also reasonable.

Where it got me was the marketing side. I'd been content as a transactional-only customer for a long time, but then I started sending newsletters. The marketing tier moves on a different track: 1,000 contacts free, then $40/mo for 5,000 contacts. That's the moment I sat up. Not because $40 is unreasonable in absolute terms; it isn't. The size of the step-up is what got me. Going from $0 to $40 in a single step doesn't match how a side project typically grows.

Zero-to-forty isn't fun in a car. Too slow. It also isn't fun in SaaS. Too fast.

I'm not the only one doing this math. Melvyn, who runs around 200,000 emails a month, recently migrated off Resend to raw AWS SES because the bill had climbed to $160/mo. His numbers are a different scale than mine, but the trajectory is the same one I was looking down. Resend is built on AWS SES with their own deliverability and DX layer on top, which is fine. That layer is real work, and real work should cost money. But once you've done the math on what the underlying infrastructure costs, the markup starts to feel like a tax on the convenience of not knowing.

What I actually wanted

A short list of things I was hoping a Resend alternative would give me:

  • Per-email pricing that scales with my actual usage, not a fixed monthly tier I'd grow into resentfully
  • An open-source codebase, so the company surviving wasn't a load-bearing assumption
  • A self-host option for when I felt like spending an afternoon learning the operational layer
  • Feature parity-ish for the things I actually use: transactional, broadcasts, simple workflow automations

I was prepared to compromise on some of those but thankfully I didn't have to.

Plunk

Plunk is AGPL-3.0 licensed, Docker-Compose-deployable, and on the cloud side priced at $0.001/email with no base fee. There's a 1,000-email free tier with Plunk branding on outgoing mail. The cloud version handles transactional, marketing campaigns, workflow automations, and unlimited contacts on every plan, including the free one. If you self-host, you wrap your own AWS SES credentials and pay only what SES charges you, which is roughly an order of magnitude less than any managed service charges for the same volume.

The pricing curve I'd been complaining about disappears: a side project that sends 5,000 emails a month costs $5. A growing newsletter that sends 50,000 emails a month costs $50. The cost moves with the usage instead of stair-stepping ahead of it. That alone would have been enough to switch.

What sealed it was the open-source piece. Plunk surviving as a company is no longer a single point of failure for my email infrastructure. If they fold, I deploy the same codebase to my own machine and keep going. That's what self-host-as-fallback means, and it's the kind of insurance you don't appreciate until the thing it insures against has happened to you twice.

The MCP

Email is operationally miserable. I'd forgotten this. Not Plunk specifically: email as a category. Subscribing contacts, debugging deliverability, reading send logs, kicking workflows, managing campaigns: every email tool I've ever touched has a dashboard that inspires just a little bit of wincing when it loads. There's a reason "the email guy" exists as a role at most companies above twenty people. The job mostly consists of clicking around in dashboards.

Resend has an official MCP but Plunk, despite its generous API, didn't come with one out of the box. That was a real gap, and it was the only thing standing between me and a clean migration. So I built one, because that's a way more fun day of work than managing the operational side of email. (And I say this as someone who works in an operational role! I have learned to pick my battles, an email is not my battle.)

plunk-mcp wraps Plunk's API as an MCP server you can plug into Claude Code, Codex, or any MCP-aware client. It covers the operations I actually use day to day: sending transactional emails, listing campaigns, managing contacts, kicking workflows, reading send logs without opening a browser tab. The dashboard is now a thing I look at to verify, not the place I work from. And my workflows benefit from a bit of AI-assisted management, saving me precious time as a side-hustle entrepreneur.

The MCP is open source, and it's free.

The bigger picture

This is the same story as the rest of the work happening on this site. Renting tools where the pricing curve doesn't match how small-and-growing businesses actually grow is, structurally, the same problem as renting your audience or your content or your link page. The answer in every case is some version of: pick tools that are open, where the pricing scales with your usage, where self-hosting is a real option, and where the company surviving isn't a bet you're forced to make.

We're all in this together, keeping the open digital experience open enough that new ideas can grow inside it without paying a toll at every threshold. That's why Beacon exists. That's why this MCP exists. That's why I'd rather write about it than not.

If you're doing your own pricing math right now, give Plunk a look. The MCP is at github.com/ignytehq/plunk-mcp. If you build something on top of it, let me know. We'll feature it here.