Self-hosted Listmonk: the part nobody mentions
Listmonk is a great piece of software. Single binary, modern dashboard, fast, free, AGPL. The setup tutorial fits on one screen. You'll have a working install in twenty minutes.
For about three weeks, you'll feel clever. You replaced a $30/month Mailchimp account with a $5 VPS and a docker-compose file.
Then your first campaign goes out and you discover the part nobody mentions.
The infrastructure isn't the hard part
Running Listmonk itself is genuinely easy. It's a Go binary with a PostgreSQL dependency. You put it behind Caddy or nginx, you point a DNS record at your server, you're done. If you've ever self-hosted anything, you've already done harder things.
The blog posts you find by Googling "self-host Listmonk" stop here. They're not lying. They're just describing the easy ninety percent.
The hard ten percent is everything that happens after you click "send".
Deliverability is the actual product
When you send a newsletter, it has to land in someone's inbox. Mailchimp, ConvertKit, Beehiiv, Substack — that's mostly what you're paying them for. The dashboard is a polished UI on top of the real work: keeping a sending reputation good enough that Gmail doesn't dump your email in spam.
Self-hosted Listmonk does not do this. It cannot do this. Listmonk hands your message to an SMTP server and the SMTP server hands it to the world. Everything past that point is your problem.
In practice that means:
DNS records. SPF, DKIM, DMARC. You'll set these up once and then spend the next week wondering why some Gmail users get your email and some don't. The answer is usually that one of the records has a typo or your DMARC policy is too strict for your alignment setup. There is no error message for this. The email just doesn't arrive.
Sender reputation. Gmail and Outlook track how often people open your emails, mark them as spam, or delete them without reading. A few bad campaigns and your domain reputation drops. You won't be notified. Your open rate will just quietly go down by 40% and you'll think your subject lines got worse.
Bounce handling. Every newsletter has some recipients whose addresses don't exist or are full. If you keep emailing them, mailbox providers assume you bought your list and start treating you like a spammer. Listmonk has a bounce-processing feature but it requires you to configure webhooks from your SMTP provider, parse the events correctly, and act on them. Most self-hosters never get this set up.
Complaint handling. When someone clicks "spam" in Gmail, the provider sends a feedback loop notification. If you ignore it, your reputation tanks fast. Setting up FBLs is a separate, manual process per provider, and not all providers participate.
You can do all of this. It's not impossible. It's just a part-time job you didn't sign up for.
The SMTP provider problem
You can't send newsletters from a normal server. Hetzner, Digital Ocean, and AWS all block port 25 on outbound by default because their IPs are constantly being abused. You need an SMTP relay.
The cheap option used to be AWS SES — $0.10 per thousand emails. Then AWS started rejecting newsletter senders categorically. Their Trust and Safety team has decided "managed platform for content creators" is not a fit for SES. We tried. They said no twice and explicitly closed the case.
Postmark works but charges $1.20 per thousand. Mailgun is similar. SendGrid is fine but expensive at volume. There's no good cheap option anymore unless you already have an SES account from before they tightened up.
So now your $5 VPS plus your sending costs are $5 plus whatever Postmark charges. At 5,000 emails a month that's $5 + $6 = $11. At 50,000 it's $5 + $60. The math gets less interesting as you grow.
What breaks at 3am
Things that go wrong with a self-hosted setup, in rough order of how often I've seen them:
- DKIM record fails verification after a DNS provider migration
- Postmark or SES suspends your account because your bounce rate crossed 5%
- Your server fills up because Listmonk's logs aren't being rotated
- A Listmonk update introduces a config change you didn't read
- PostgreSQL eats too much memory because the default settings aren't tuned for your VPS size
- Your campaign sends to the wrong list because you didn't notice the dropdown reset
- Subscribers complain that confirmation emails aren't arriving and you spend a Saturday debugging your double opt-in flow
None of this is hard. Each one is a 30-minute fix once you know what's wrong. The problem is the cumulative weight. You wanted to write a newsletter; now you're a part-time email engineer.
When self-hosting makes sense
Self-hosting Listmonk is a real choice for:
- People who genuinely enjoy infrastructure and want to learn email systems
- Newsletters with stable, technical audiences where deliverability is less critical
- Teams with an existing ops person who can absorb the work
- Anyone who already has a healthy SES account from before the tightening
If you're one of those people, Listmonk is excellent. You should keep doing what you're doing.
When it doesn't
It doesn't make sense if your goal is to write a newsletter and have it land in inboxes.
There's no shame in this. Writing the newsletter is the actual job. Operating the email infrastructure is a different job. Mailchimp built a business on that distinction. So did ConvertKit, Beehiiv, Substack, Buttondown, and a dozen others.
The trade is that the managed platforms charge per subscriber. Mailchimp gets expensive past 5,000 subscribers. ConvertKit hits $79 around 7,500. Substack takes 10% forever. The pricing model assumes you're a marketing operation, not a writer with a list.
What we built
This is the part where I tell you we built Yellaro. It's managed Listmonk hosting: same software, same dashboard, but we run the servers and handle the deliverability work. Flat pricing — €12 a month at the entry tier, no per-subscriber escalation, no per-email overages. We send through Postmark, we handle DKIM rotation and bounce processing and SMTP relays, and you get the Listmonk UI you'd have had anyway, just without the part-time email-engineering job.
If you've done the self-hosting thing and you're tired, that's who Yellaro is for. If you're still in the "this is fun" phase, keep going. Listmonk is great software and the people who run it well end up with a better understanding of email than most of the industry.
Either way, the thing nobody mentions is real, and you should know about it before you commit a server to it.