Self-Hosting Newsletters with listmonk
Indie Hacker Newsgo watch the original →
the gist
listmonk is a self-hosted, open-source mailing list manager that replaces per-subscriber SaaS costs with a single Go binary and a Postgres database.
The Breakthrough
listmonk provides a high-performance, self-hosted alternative to platforms like Mailchimp or Substack, allowing developers to manage large-scale mailing lists and transactional emails without per-subscriber pricing or vendor lock-in.
What Actually Worked
- Architecture: The system runs as a single Go binary with a Vue-based admin dashboard baked into the executable, requiring only a Postgres database for persistence.
- Targeting: Instead of rigid tagging systems, users can execute raw database queries to segment subscribers based on specific behaviors, such as join dates or interaction history.
- Throughput Control: The engine is multi-threaded and supports fanning out across multiple mail servers, with built-in rate limiting to prevent account flagging by SMTP providers.
- Deployment: Users can deploy the stack using a Docker Compose file or by running the binary directly with an install flag to initialize the database schema.
- Privacy and Security: Version 6.1 introduced granular user permissions, a toggle to disable open and click tracking, and an option to proxy media through the application to hide raw S3 storage links.
Context
The project was created by the CTO of Zerodha to avoid the escalating costs of commercial email vendors. It functions as an orchestration layer that sits between an application and a raw SMTP provider like Amazon SES. While it removes the monthly subscription burden, the trade-off is that the user assumes full responsibility for email deliverability, server maintenance, and database management.
Notable Quotes
"It's one program written in Go; you drop a single file onto a machine, point it at a Postgres database, and you're live."
Content References
{ "type": "tool", "title": "listmonk", "url": "https://github.com/knadh/listmonk", "context": "reviewed" }, { "type": "tool", "title": "Amazon SES", "context": "mentioned" }