They killed my account with no warning
The developer-email industry has a pattern: silent suspensions, unappealable bans, and free tiers that vanish the moment they cost the vendor money. Here's the pattern, the receipts, and the stance we took to not become another one.
The most-cited pain in developer email isn’t deliverability or pricing — it’s waking up to find your account suspended with no warning, no reason given, and no one to appeal to. It happens mid-launch, mid-incident, mid-sentence. The mail stops, the dashboard says “suspended,” support sends a template, and the thing your whole product depended on is simply gone. This is a post about why that pattern exists, and the deliberate choices we made so we don’t become another cautionary thread.
I didn’t set out to write an angry post. But every time I read the switching research — the actual threads where developers describe why they left a provider — the same story comes up more than pricing, more than features, more than deliverability. It’s the silent cut.
The pattern
Go read the forums and the story writes itself. A developer on Hacker News describes being a paying customer for four years, then getting frozen in the middle of a live event — the worst possible moment, no warning. A GitHub issue from a different provider: an account banned before the user had sent a single message. Ask why, and the answer is a wall. Mailgun’s own support language became a meme for it: they were “unable to disclose specific reasons.” You can’t fix a violation nobody will name. You can’t appeal a decision with no stated basis.
The mechanics are understandable, which is what makes them insidious. Email providers live and die by IP and domain reputation. One spammer who slips through can get a shared IP blocklisted and tank deliverability for every other customer on it. So the fraud-and-abuse systems are tuned to shoot first: automated risk scores, hair-trigger suspensions, humans looped in only if you make enough noise. The provider’s incentive is to protect the pool, and you are a rounding error in that math. Rational for them. Devastating if it’s your production inbox.
The free-tier bait-and-switch
The second half of the pattern is the free tier that exists to acquire you and then disappears once you’re load-bearing.
SendGrid retired its free plan in 2025 — the on-ramp a generation of side projects were built on, gone. Twilio’s changelog quietly retired free plans across the board. Resend’s free tier caps you at 100 emails a day, which sounds fine until the 101st signup of a good day silently doesn’t get their confirmation email. Mandrill got folded into Mailchimp and stopped being a standalone product — the developers who’d wired it into their apps got a migration, not a choice; the community even had a hashtag for it. A recurring dev.to comment sums up the resignation: this is the business model. Get people to build on the free tier, wait until switching is painful, then move the line.
I don’t think most of these companies are run by villains. I think they’re run by spreadsheets. A free tier is a customer-acquisition cost, and the moment a CFO decides the acquisition isn’t paying back, the line moves. The problem is that “the line moved” for them means “my product broke” for the developer who trusted the number on the pricing page.
What we decided instead
You can’t out-market this pattern; you can only refuse to run it. So we made a few commitments concrete enough to hold us to:
A human reviews before any cut. Automated systems can flag. They cannot unilaterally kill a live account. If something looks wrong, the first step is a person and a message to you — not a suspension you discover when your mail stops. Abuse still gets stopped; it just doesn’t get stopped by a silent robot with no appeal.
No daily cap. The free tier is 3,000 messages a month, inbound and outbound sharing one quota, with no daily throttle — so a good launch day doesn’t silently swallow your 101st signup. Go over the monthly number and it’s $0.50 per 1,000 messages, metered. Predictable, on a pricing page, no surprise.
A graceful soft-pause, not a hard wall. If you blow past a limit, the behavior is a soft-pause with a warning and a path back — not an instant cutoff that drops mail on the floor. The failure mode is “you get an email,” not “your users get silence.”
None of this is charity. It’s just the opposite bet: that developers build on infrastructure they trust not to surprise them, and that being the one vendor in the category who won’t pull the rug is worth more than the margin from squeezing a free tier. If we ever have to act on your account, you’ll hear it from a person, with a reason, before anything breaks.
FAQ
Why do email providers suspend accounts without warning? Deliverability runs on shared IP and domain reputation, so abuse systems are tuned to suspend fast to protect every other customer on the pool. The side effect is legitimate accounts getting caught by automated risk scores with no human in the loop and no clear appeal.
Does MailKite have a daily sending cap? No. The free tier is 3,000 messages a month with no daily throttle; overage is metered at $0.50 per 1,000. A daily cap is the mechanism that silently drops your 101st signup of the day, so we don’t have one.
What happens if I hit my limit? A graceful soft-pause with a warning and a path back, not a hard cutoff. You get notified before mail stops — the failure mode is an email to you, not silence to your users.
Will an automated system ever suspend my account? Automated systems can flag for review, but a human reviews before any account is cut. Abuse still gets stopped; it just isn’t stopped silently and unappealably by a robot.
If you’ve been burned by a silent suspension or a vanishing free tier, that’s exactly the experience we’re building against. Point a domain at MailKite and see what infrastructure that won’t surprise you feels like.
Related: Receiving email is the part nobody warns you about — the inbound wedge, and You can’t prompt your way out of prompt injection on the security side.