Listmonk
listmonk.app- Category
- Developer Tools
- Rank
- No. 153Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- knadh
- GitHub
- 23.3k stars
- Latest release
- nightly
- Date
About
Self-hosted newsletter and mailing list manager. Single binary, fast, multi-language.
What it does
Listmonk organizes subscribers into lists, attributes, and segments, then sends campaigns or transactional messages through SMTP or custom HTTP messengers. An admin interface handles settings, templates, users, and campaigns. Its APIs accept transactional messages and bounce events, while PostgreSQL stores application data.
Why it's ranked here
Listmonk combines serious mailing operations with a relatively compact deployment model. It supports opt-in lists, segmentation, reusable templates, tracking, bounce processing, OIDC, and multiple messaging backends. The catch is operational ownership: adopters must run PostgreSQL, configure delivery infrastructure, manage upgrades, and protect powerful template permissions.
What's good
Subscriber attributes support flexible segmentation and personalized content without requiring identical fields across every record. Bounce handling covers POP3 scanning, a general webhook, and several provider-specific webhooks. Templates work across campaigns and transactional messages. OIDC can create users automatically, while custom messengers extend campaigns beyond email through HTTP services.
Tradeoffs
PostgreSQL is mandatory, and upgrades require database backups because downgrades need a matching restored database. Email delivery still depends on configured SMTP infrastructure. Template functions can express complex behavior, but the documentation warns that untrusted authors could exhaust host memory. Tracking features also carry privacy and regulatory responsibilities.
How to use it well
Choose Listmonk for an engineering-led team that wants direct control over subscriber data, newsletters, and application-triggered email. Pair it with PostgreSQL, a dependable SMTP provider, backups, and restricted template permissions. Use custom messengers when campaigns must reach SMS or push systems. It does not replace a two-way support inbox or the underlying delivery service.
Technical notes+
README.md describes Docker Compose and release-binary installation. go.mod declares a Go backend with Echo, PostgreSQL drivers, OIDC, POP3, SMTP pooling, imaging, and Sprig dependencies. Makefile builds with CGO disabled, compiles the Vue frontend and email builder, then uses stuffbin to embed frontend, templates, translations, queries, configuration, and permissions into the binary. docs/docs/content/configuration.md documents admin APIs, public routes, service webhooks, environment configuration, media storage, and logging. docs/docs/content/templating.md warns that Sprig templates are Turing-complete. docs/docs/content/upgrade.md requires database restoration for downgrades after schema upgrades.
Observed
- License
- AGPL v3
- Implementation
- Go backend; Vue frontend using Buefy
- Data store
- PostgreSQL 12 or newer is required
- Packaging
- Released binary and Docker image with a Docker Compose setup
- Interfaces
- Admin web UI, admin APIs, transactional API, bounce webhooks, and HTTP messenger integration
- Authentication
- OIDC single sign-on supports standards-compliant providers and optional user auto-creation
- Build structure
- Production builds embed frontend assets, templates, translations, queries, configuration, and permissions into the binary
Read from README.md, go.mod, Makefile, docs/README.md, docs/docs/content/i18n.md, docs/docs/content/oidc.md, docs/docs/content/index.md, docs/docs/content/bounces.md, docs/docs/content/upgrade.md, docs/docs/content/archives.md, docs/docs/content/concepts.md, docs/docs/content/messengers.md, docs/docs/content/templating.md, docs/docs/content/installation.md, docs/docs/content/configuration.md.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.