WHAT IS IT?
listmonk is a self-hosted newsletter and mailing list manager, shipped as a single Go binary with PostgreSQL as its only dependency. It handles subscribers, campaigns, templates and delivery stats from a web dashboard, and doubles as the transactional sending layer for an application through its API. The point is straightforward: keep your list and your sending data in house rather than at a provider that bills per subscriber.
WHY IS IT INTERESTING?
- One binary, one Postgres: no Redis, no external worker, no broker to babysit. Deployment is a binary plus a config file, or a Docker image.
- SQL segmentation: subscribers are filtered with SQL expressions over their arbitrary JSON attributes. You are not stuck inside a segment builder with three operators.
- Multiple SMTP queues: several SMTP servers in parallel, multi-threaded, with sliding window rate limiting to stay inside provider quotas.
- Deliberately frugal: the instance the project cites as a reference sent over 7 million emails peaking at 57 MB of RAM and a fraction of one CPU core. It fits on a small VPS.
- Go templates, your choice of editor: Go templating with logic and around a hundred functions, usable even in subject lines, plus a drag-and-drop visual builder, WYSIWYG, Markdown or raw HTML.
USE CASES
- Hosting the newsletter for a blog or a product without relying on a third-party service
- Sending an app's transactional emails through the API with predefined templates
- Segmenting a subscriber base from domain-specific attributes stored as JSON
- Tracking bounces and the most clicked links across a campaign
- Spreading send volume across several SMTP relays
