Skip to main content

What is listmonk?

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.
listmonk is free and open source software licensed under AGPLv3.
Visit listmonk.app for more information or check out the live demo.

Key Features

High Performance

Built with Go for exceptional speed and efficiency. Handles large subscriber bases with ease through optimized database queries and batch processing.

Self-Hosted

Complete control over your data and infrastructure. No third-party dependencies or per-subscriber pricing.

Feature-Rich

Comprehensive campaign management, template engine, media library, analytics, bounce handling, and more.

Single Binary

Entire application packed into one executable with no external dependencies except PostgreSQL.

Architecture Overview

listmonk is built with modern, battle-tested technologies:
1

Backend - Go

The backend is written in Go, providing high performance, concurrency, and reliability. The application compiles to a single binary for easy deployment.
2

Frontend - Vue.js

The admin interface is built with Vue.js and Buefy for a modern, responsive user experience.
3

Database - PostgreSQL

PostgreSQL serves as the data store, providing robust data integrity, ACID compliance, and advanced querying capabilities including JSONB support for flexible metadata storage.

System Design

Core Capabilities

Campaign Management

  • Multiple Campaign Types: Regular campaigns and opt-in confirmation campaigns
  • Campaign Statuses: Draft, scheduled, running, paused, cancelled, and finished
  • Content Types: Rich text, HTML, plain text, markdown, and visual editor
  • Scheduling: Schedule campaigns for future delivery
  • Template Engine: Reusable templates with variable interpolation

Subscriber Management

  • Flexible Attributes: Store custom subscriber data as JSONB
  • Status Management: Enabled, disabled, and blocklisted subscribers
  • Subscription Tracking: Unconfirmed, confirmed, and unsubscribed states
  • Bulk Operations: Import, export, and manage subscribers at scale

List Management

  • List Types: Public, private, and temporary lists
  • Opt-in Options: Single and double opt-in support
  • List Statuses: Active and archived lists
  • Segmentation: Tag-based organization and filtering

Analytics & Tracking

  • Campaign Views: Track email opens and engagement
  • Link Clicks: Monitor click-through rates on campaign links
  • Bounce Handling: Automatic processing of soft bounces, hard bounces, and complaints
  • Dashboard Stats: Real-time statistics and 30-day trend charts

Advanced Features

  • Media Library: Upload and manage campaign media assets
  • Multiple SMTP Servers: Configure multiple SMTP providers with fallback
  • Webhook Support: Integrate with external bounce handling services (SES, SendGrid, Postmark)
  • Public Archive: Optional public archive of sent campaigns with RSS feeds
  • User Management: Multi-user support with role-based permissions
  • Two-Factor Authentication: TOTP-based 2FA for enhanced security
  • API Access: Full REST API for programmatic access

Use Cases

listmonk is ideal for:
Send newsletters to your audience with rich content, media attachments, and detailed analytics. Perfect for bloggers, content creators, and media organizations.
Keep customers informed about product releases, feature updates, and company news. Segment audiences based on product interest or usage.
Run targeted marketing campaigns with A/B testing capabilities, detailed tracking, and bounce management. Scale from hundreds to millions of subscribers.
Build and engage communities with regular updates, event notifications, and announcements. Support both public and private mailing lists.
Send transactional emails using dedicated templates (tx type) for order confirmations, password resets, and notifications.
Manage internal company communications, department newsletters, and employee announcements with private lists.

Performance & Scalability

High Throughput

Configurable concurrency and message rate for optimal sending speed based on your infrastructure.

Batch Processing

Process subscribers in configurable batches (default 1000) for memory efficiency.

Rate Limiting

Built-in rate limiting with sliding window support to comply with SMTP provider limits.
Default performance settings from schema.sql:236-241:
  • Concurrency: 10 concurrent workers
  • Message Rate: 10 messages per second
  • Batch Size: 1000 subscribers per batch
  • Sliding Window: Optional rate limiting over custom duration

Privacy & Compliance

listmonk includes comprehensive privacy features:
  • Individual Tracking Control: Disable tracking per subscriber
  • Unsubscribe Headers: Automatic List-Unsubscribe headers
  • Data Export: Allow subscribers to export their data
  • Data Wipe: Allow subscribers to request data deletion
  • Blocklist Management: Configurable domain blocklist and allowlist
  • Opt-in IP Recording: Optional IP address recording for compliance
  • CAPTCHA Support: hCaptcha and AltCha integration for form protection

Open Source & Community

listmonk is developed and maintained by Zerodha, India’s largest stock broker, and is used to send millions of emails to their user base.
As an open source project under the AGPL-3.0 license, listmonk benefits from:
  • Active Development: Regular updates and new features
  • Community Contributions: Bug fixes, translations, and enhancements from the community
  • Transparency: Full visibility into the codebase and operations
  • No Vendor Lock-in: Self-hosted with complete control over your data

Next Steps

Installation

Get listmonk installed using Docker or binary installation

Quick Start

Send your first campaign in under 5 minutes

Core Concepts

Learn about subscribers, lists, campaigns, and templates

Configuration

Configure listmonk for your environment

Build docs developers (and LLMs) love