Listmonk and Sendy are both small self-hosted tools for sending bulk email. Listmonk is free, written in Go, and works with any SMTP relay. Sendy is about $69 per installation, written in PHP, and only sends through Amazon SES. Start with the relay question. If you are not on SES and do not want to be, Sendy is already out.
Quick answer
Pick Listmonk if you want it free, want to keep your relay options open, or care about throughput. Pick Sendy if you are already committed to Amazon SES, want autoresponders without writing code, and would rather run a LAMP stack than a Go binary. If you want sequences with branching and no relay lock-in, Broadcast is a $250 one-time license that has both.
Conflict of interest
We make Broadcast, a paid self-hosted alternative to both. We have run Listmonk and Sendy ourselves and this page tries to be fair to each. If something reads as unfair, tell us and we will fix it.
| Listmonk | Sendy | |
|---|---|---|
| What it is | Newsletter and mailing list manager | Bulk sender built on Amazon SES |
| Language | Go | PHP on a LAMP stack |
| License | AGPL, free | About $69 one-time, per installation |
| Runs as | One binary plus Postgres | Web server, PHP, MySQL |
| Relay | Any SMTP server or Amazon SES | Amazon SES only |
| Automation | None built in | Autoresponders, no branching |
| Bounce handling | Through your relay | Built in, tied to SES |
| Interface | Plain admin panel | Dated, stable for about a decade |
| Best for | Developers who want flexibility | Teams already standardised on SES |
Listmonk is a Go binary and a Postgres database. Import a list, write a campaign, send it through whatever relay you point it at. It is fast and it sustains high throughput on modest hardware. The API is clean. There are no drip sequences, no triggered emails, and no branching. Reporting is spare and the subscribe form is one basic embed.
Sendy is a PHP application that exists to make Amazon SES usable for marketing email. It handles bounces and complaint feedback from SES properly, which is the part people underestimate when they try to roll their own. It has autoresponders: a timed series that fires after someone signs up. There is no conditional branching and no behaviour triggering. It has been around for about a decade and the UI has not moved much in that time.
This is the fork in the road.
Listmonk sends through any SMTP relay. Amazon SES, Postmark, Mailgun, SendGrid, or your own server. If a relay starts throttling you or raises prices, you change a config value.
Sendy sends through Amazon SES and nothing else. That is not a setting, it is the design. Switching relay means switching platforms. In exchange you get integration that is tighter than a generic SMTP hookup, particularly around bounces and complaints.
Deliverability itself is mostly the relay’s job either way. On SES, both land about the same.
Sendy wins this one, narrowly.
Sendy has autoresponders. Someone joins a list, and they get email one on day zero, email two on day three, and so on. That covers a welcome series, which is the automation most small senders actually want. What it cannot do is branch on behaviour. Everyone on the list gets the same sequence in the same order.
Listmonk has nothing. If you want a welcome series you write it against the API and run it from cron, and then you own that code.
If you need branching, neither tool has it. That is the gap Broadcast and Mautic fill, from opposite directions.
Choose Listmonk if: - You want a free tool and you are comfortable in a terminal. - You want to keep the option of changing relay later. - You are sending high volume and want throughput per dollar.
Choose Sendy if: - You are on Amazon SES and plan to stay there. - You want a signup autoresponder without writing any code. - One installation covers your whole business.
Consider Broadcast if: - You want sequences with conditional branching, not just a timed autoresponder. - You want SES, Postmark, SendGrid, Resend, Mailgun, or plain SMTP, decided by you. - You run several installs and per-install licensing is adding up. Details on Broadcast vs Listmonk and Broadcast vs Sendy.
Yes. Listmonk is AGPL and free. Sendy is about $69 one-time, licensed per installation, so a second install means a second license.
No. Sendy is built around SES. Moving to a different relay means moving to a different platform. Listmonk sends through any SMTP relay or SES.
No. Listmonk has no drip sequences or triggered emails. Sendy has timed autoresponders after signup, though without conditional branching.
Listmonk. It is written in Go and sustains high throughput on modest hardware. Sendy’s speed is bounded by your SES sending limits and the PHP stack underneath it.
Sendy, if you are on SES. Bounce and complaint feedback is wired directly into the SES integration. With Listmonk you handle bounce processing through your relay’s own tooling.
Yes. Subscribers export and import as CSV. Sendy autoresponders do not transfer because Listmonk has nowhere to put them. Moving to Broadcast works the same way: CSV import with tags and custom fields intact.
Broadcast is self-hosted like Listmonk and Sendy, with drip sequences and conditional branching built in and no lock-in to one relay. Bring SES, Postmark, SendGrid, Resend, Mailgun, or plain SMTP. One Docker image, a $250 one-time license, and email support when you need it.
Comparisons cover the tradeoffs. How To covers whether Broadcast does the specific thing you need, organized by what you are trying to accomplish rather than by feature name. If the answer is no, it says no.
One-time payment, unlimited emails forever
"I was tired of spending hundreds per month on Beehiiv. Then I found Broadcast and now I can scale at my own pace without burning money I worked hard for."
@bensnichedsitesFor technical founders & developers
For agencies and consultants managing multiple client deployments