Amazon SES vs listmonk: Why It's Not Actually a Fair Fight

Isometric illustration of a teal AWS cloud pillar beside a slate pillar with a small Go gopher icon, connected by a purple arrow, beneath the headline SES vs listmonk.

The phrase "Amazon SES vs listmonk" turns up in plenty of search results, but the two products are not actually competitors at the same layer. Amazon SES is sending infrastructure, billed at $0.10 per 1,000 emails, per AWS's current pricing. listmonk is a Go-based campaign manager with 21k GitHub stars that still needs an SMTP provider to deliver mail. The honest choice is between using SES directly via API or SMTP, putting listmonk on top of SES, or using a hosted layer like Mailblast on top of SES.

Why this comparison is framed wrong

People search "SES vs listmonk" because both show up in the same self-hosted newsletter conversations, but they sit on different layers. Amazon SES is an SMTP and HTTP API for outbound mail. listmonk is, in its own words, a "self-hosted newsletter and mailing list manager" - it manages subscribers, segments, campaigns, and templates, then hands rendered messages to an SMTP server.

In production deployments, listmonk is overwhelmingly pointed at SES, Mailgun, or Postmark. The decision is not which one to pick; it is whether you want a UI layer at all. If your sending is purely transactional and triggered by code, SES alone is enough. If you need campaign tooling, list segmentation, templates, and click tracking, you need something on top of SES, and listmonk is one of the candidates. Our Amazon SES vs Postal comparison covers a different shape of self-hosted choice: a full mail server rather than a campaign UI.

What listmonk actually does

listmonk is a single Go binary backed by PostgreSQL, currently at version 6.1.0 (March 2026) on the project site, with over 21,000 stars and an AGPL v3 license on GitHub. The maintainer documents a production instance that sent more than 7 million emails using under one CPU core and a peak of 57 MB of RAM, which is the headline efficiency claim and a sharp contrast with PHP-stack alternatives.

Inside that binary, listmonk handles subscriber import and double opt-in, list and segment management using SQL expressions, drag-friendly campaign creation, a templating engine, scheduling, bounce processing, click and open tracking, a transactional API, and a multi-threaded multi-SMTP delivery queue. The "multi-SMTP" part is the key one: listmonk is explicitly designed to fan out through external SMTP servers, including SES, in parallel worker threads.

Resource use: listmonk vs PHP-stack newsletter tools Resource footprint for self-hosted newsletter tools Approximate steady-state RAM for a comparable subscriber list (MB) 0 200 400 600 800 listmonk (Go) Sendy (PHP) Mailwizz (PHP) Mautic (PHP) 57 MB ~250 MB ~450 MB ~750 MB ← documented production peak
listmonk's documented peak per the project site; PHP-stack figures are typical observed steady-state RAM for comparable installations and are approximate.

Self-hosted listmonk plus SES vs hosted Mailblast plus SES

This is the comparison that actually matters, because both options have Amazon SES underneath sending the email. The split is whether the management layer is a binary you run yourself or a hosted service. Raw SES is the third option for teams that do not need a UI at all and are happy calling SES's SMTP interface or HTTP API from application code.

Dimension Raw Amazon SES Self-hosted listmonk on SES Mailblast on SES
Sending infrastructure Amazon SES Amazon SES Amazon SES
Management layer None - your code Go binary + PostgreSQL on your VPS Hosted by Mailblast
Per-email cost $0.10 per 1,000 $0.10 per 1,000 (AWS direct) $0.10 per 1,000 (AWS direct)
App-layer cost $0 ~$5-$20/mo VPS + ops time From $10/mo
Drag-and-drop editor ✗ No Basic templating ✓ BeeFree
List and segment UI ✗ No ✓ SQL segments ✓ Yes
Automation ✗ No Limited ✓ On paid plans
Click and open tracking Event publishing only ✓ Yes ✓ Yes
Patching and backups AWS handles You handle Mailblast handles
Data ownership Your code, your storage Full - your VPS Hosted, your AWS keys

When listmonk is the right call

listmonk is the strongest fit for technical operators who want a real management UI without paying for hosted SaaS and who are comfortable in a Linux and Go world. The PostgreSQL requirement is non-negotiable, but the resource footprint is so light that a single small VPS handles substantial volume. The AGPL license matters too: any modifications you distribute must be open-sourced.

The honest profile is: you have one engineer happy to install and patch a Go binary, you already run PostgreSQL or do not mind starting, you want full ownership of the subscriber database, and you are willing to wire up SES (or another SMTP) yourself. Newsletters from open-source projects, indie publishers, and small developer-led teams are the recurring pattern.

When raw SES is enough

For pure transactional sending - password resets, receipts, order confirmations, system notifications - a management UI adds overhead you do not need. You call SES from application code, either via SMTP or the HTTP API, and let the application database hold whatever subscriber data you have. The SES event publishing pipeline writes bounces and complaints to SNS or Firehose, and you process them in code.

This pattern stops working the moment you need marketing campaigns, segmentation, A/B testing, or a UI that non-engineers can use. At that point you either build internal tooling, install listmonk, or hand it to a hosted layer. Raw SES is the right call when the answer to "who sends the campaigns?" is "a cron job."

When Mailblast is the right call

Mailblast is the right call when you want what listmonk offers - a real campaign UI with SES underneath - without running the server yourself. You connect your AWS account, AWS bills you directly at $0.10 per 1,000 emails, and Mailblast provides the BeeFree drag-and-drop editor, automation on every paid plan, double opt-in, suppression handling, and analytics. The free plan covers 1,000 contacts and 10,000 emails per month; paid plans start at $10 per month for that same 1,000 contacts.

If listmonk and Sendy are the two self-hosted options you are weighing, our Sendy vs Mailblast comparison covers the hosted alternative to the PHP-stack route specifically.

Our recommendation

If you have engineering capacity and want full data ownership, run listmonk on a small VPS pointed at your own Amazon SES account. The 57 MB peak RAM figure is not marketing fluff, and the Go binary is genuinely easy to operate compared to PHP-stack alternatives. If your sending is purely transactional and triggered by code, skip the UI entirely and call SES directly.

For marketing operators who do not want to manage a server, use Mailblast on SES. Same sending infrastructure, same per-email cost, none of the patching. The question is never really "SES or listmonk" - it is "do I want to run the management layer myself, or do I want it hosted?"

FAQ

Is listmonk a replacement for Amazon SES?

No. listmonk is a campaign and subscriber management UI written in Go; it does not deliver email itself. It connects to an SMTP provider to actually send. Amazon SES is one of the most common backends people point listmonk at, so the two are usually paired, not chosen between.

Can listmonk send through Amazon SES?

Yes, that is the most common production setup. You generate SMTP credentials in the SES console, paste the host, port, username, and password into a listmonk SMTP block, and listmonk's multi-threaded worker pushes campaigns through SES at $0.10 per 1,000 emails billed directly by AWS.

How much hardware does listmonk need?

Very little. The project documents a real production instance sending 7 million emails on under one CPU core with peak RAM of 57 MB. The single Go binary plus PostgreSQL means a $5-$10 VPS is enough for most newsletters, far lighter than PHP-stack tools like Mailwizz or Mautic.

Why would I use Mailblast instead of listmonk on top of SES?

Both put SES underneath, but listmonk asks you to run the server, patch it, back up PostgreSQL, and monitor bounces yourself. Mailblast is the hosted version of the same idea - you bring your AWS keys, AWS bills you for sending, and we handle the app layer, BeeFree editor, and automation.

Is listmonk free?

The software is AGPL v3 licensed and free to download and run. The bill comes from infrastructure: a small VPS for the Go binary and PostgreSQL, plus whatever your SMTP provider charges. With SES underneath, that is $0.10 per 1,000 emails on top of roughly $5-$20 per month in server costs.


Disclosure: we make Mailblast, a hosted management layer on top of your own Amazon SES account. We get paid when readers like the hosted path. If listmonk is the better fit for your team, install it - the project is excellent and the maintainer has earned the 21k+ stars.

Ready to Start Your Email Marketing Journey?

Join thousands of businesses using Mailblast to grow their audience.

← Back to Blog