Yellaro
← All posts

Why we run our own email relay (and what it costs us)

Most newsletter platforms don't send your email. They hand it to someone who does: Postmark, SES, Mailgun, a shared pool you never see. It's a reasonable choice, and for a while it was ours. We run our own relay now, and it's the hardest part of the whole product.

We've written before about why the per-email math didn't work for us and why sharing a reputation pool with strangers is a problem, so we won't re-argue either here. The short version is that a €19 plan is underwater on the relay bill alone, and that on a shared pool your customers' inbox placement depends on people they'll never meet. This post is about what happened after we decided that wasn't good enough.

The part we tell everyone else to avoid

There's a post on this blog called Self-hosted Listmonk: the part nobody mentions. It exists to talk people out of running their own sending. The software is easy, it says. The deliverability is a part-time job you didn't sign up for, full of failures with no error message, where your open rate quietly drops and you blame your subject lines.

We meant it. Then we went and did exactly that.

The difference is scale of reason. For one newsletter, that job isn't worth it. For us it is the job. If we charge people to send their email and promise it lands, then owning the thing that decides whether it lands isn't optional. So we took on the work we tell everyone else to skip.

What you actually take on

When you run your own sending, a pile of things that used to be someone else's problem become yours.

A new setup has no reputation, so you can't point it at fifty thousand people and send. Receivers treat a cold IP sending in volume the same way they'd treat a spammer. You start small and build up over weeks. There's no button for it.

Then there's authentication. SPF, DKIM, DMARC, keeping them aligned, rotating keys. Get it wrong and the mail doesn't bounce with an error, it goes to spam and you hear about it from a customer. We cover the basics of why mail goes to spam elsewhere; living it at scale is a different thing.

Blocklists happen eventually, fairly or not. When they do, mail to part of the internet degrades, and you deal with a different delisting process for every operator, most of them slow.

And you inherit other people's lists. A customer imports something older than they let on, complaints spike, and their sending starts to threaten everyone else's. That's the shared-pool problem we left, so we built it not to happen: each sender is isolated, and one bad list can't reach anyone else. Building that and enforcing it is work a reseller never touches.

What breaks, and how you find out

The lesson that cost us the most is worth passing on even without the details.

When you own the pipe, a failure can be silent. Mail that used to leave stops leaving, nothing throws an error, and no alarm goes off, because the thing that would tell you can be the same thing that broke. You don't find out from a dashboard. You find out from a customer days later asking why nobody got their newsletter.

So we stopped trusting silence. The fix isn't clever. You assume the failure you'll miss is the one that makes no noise, and you build something outside the system whose only job is to expect a regular signal and complain when it stops. It does nothing visible on the days it works, which is why it's the sort of thing you tend to build only after it's caught you out once.

We'd rather say we got it right the first time. We got it right the second time, which is how most of this goes.

Why it's worth it

Against all that, three things make owning it worth the trouble, and we couldn't get them any other way.

Your reputation is yours, so your inbox placement depends on how you send and not on the worst sender in a pool you didn't pick. Your data and your sending are both in the EU, which is two questions most platforms answer halfway. And the pricing can be flat with unlimited sending, because when we aren't paying someone per email, we aren't quietly hoping you send less.

That last one is the real payoff. Every platform reselling metered sending is somewhere in its pricing hoping you don't use too much. Owning the pipe takes that off the table, so we can mean it when we say send as often as you like.

The pitch, since you can see it coming

This is the part where we admit the post is also an argument for Yellaro. It is. The argument is just that the sending infrastructure is the unglamorous, occasionally-3am work that decides whether your email lands, and it's the work most people don't want and shouldn't have to do. We do it so you don't. That's not a feature we added. It's why the product exists.

If you'd rather not become a part-time email engineer, that's rather the point.

FAQ

Why not just use a provider like Postmark or SES? For most senders, you should. Managed sending providers are good, and they own the deliverability work so you don't have to. We left because per-email pricing doesn't fit flat, unlimited-sending plans, and because reselling a shared pool means your customers inherit strangers' reputation problems. Neither is a knock on the providers.

Does running your own relay make deliverability better? Not on its own. A shared pool at a good provider often starts out better, because their reputation is already warm. Running your own is only better once you've done the work: warmup, authentication, monitoring, and isolating each sender. You trade a warm start for control.

What does isolated reputation mean? On a shared pool, your inbox placement depends partly on everyone else sending through the same IPs. Isolating reputation means your sending stands on its own, so a stranger's bad week can't spill onto your send.

Is your relay in the EU? Yes. Both where your list is stored and where the sending happens are in the EU. Those are two separate questions, and a lot of platforms only answer the first one.