Jugaad
Jugaad Tool AGPL 3.0IntermediateBusiness AppsFree

listmonk

Self-hosted newsletter and mailing list manager with subscriber segmentation, campaign analytics, and transactional messaging.

Stars
24k
Forks
2.8k
Last update
4 Nov 2026

Overview

listmonk manages subscribers, mailing lists, and newsletter campaigns through a web dashboard. It runs as a single binary with PostgreSQL and supports transactional messages through an API, plus other messaging channels through Messenger interfaces.

Who it's for

Small businesses running email newslettersNewsletter publishers and community organisationsMarketing teams managing subscriber listsDevelopers building transactional messaging workflows

Tech stack

GoPostgreSQLDocker ComposeBunHTML templatesJavaScript

Features and benefits

Key features

  • Single and double opt-in mailing lists with SQL-based subscriber segmentation.
  • Campaign analytics covering performance, bounces, and top links.
  • Dynamic email templates using Go template expressions and functions.
  • Email editing with drag-and-drop, WYSIWYG, Markdown, HTML, or plain text.
  • Multi-SMTP email queues with throughput and sliding-window rate limiting.
  • API-based transactional messages using predefined templates.
  • Messenger HTTP webhooks for SMS, WhatsApp, FCM notifications, and other channels.
  • Subscriber privacy controls for data export and removal.
  • OIDC single sign-on, granular roles and permissions, and scoped API tokens.
  • Built-in media library with S3-compatible storage support.

Why it helps in Pakistan

  • Keep mailing-list data on infrastructure you control.
  • Target different subscriber groups using SQL expressions.
  • Create newsletters without writing raw HTML.
  • Review campaign results and bounced messages in one dashboard.
  • Use one application for newsletters and template-based transactional messages.

Pakistan use cases

  • 01

    A Pakistani retailer can send opt-in product newsletters to segmented customer lists.

  • 02

    A Lahore training institute can publish course announcements and review campaign performance.

  • 03

    A Karachi software company can send template-based transactional emails from its application through the API.

  • 04

    A Pakistani community organisation can publish a newsletter while letting subscribers export or remove their data.

  • 05

    A development agency can connect Messenger webhooks to an external SMS or WhatsApp delivery service for subscriber messages.

Requirements

Hardware
The main amd64 binary targets Intel and x86 CPUs.Minimum CPU, RAM, and disk requirements: Check the official docs.
Operating system
Darwin (macOS)WindowsLinuxFreeBSDNetBSDOpenBSD
Skills
Basic command-line and configuration-file editingDocker Compose administration for container installationPostgreSQL setup for manual binary installationGo and Bun for source buildsSQL expressions for subscriber segmentation
Accounts needed
Create a listmonk Super Admin user during initial setup.PostgreSQL connection credentials for manual installation; PostgreSQL 12 or newer is required.Email delivery provider requirements: Check the official docs.

Setup guide

Commands are copied from the project's README and official docs.

  1. 1

    Download the Compose file

    Run curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml.
  2. 2

    Review configuration

    Customize docker-compose.yml for your environment. The sample includes listmonk configuration through LISTMONK_* environment variables.
  3. 3

    Start the services

    Run docker compose up -d to start PostgreSQL and listmonk in the background.
  4. 4

    Create the administrator

    Visit http://localhost:9000 to create the Super Admin user and log in.

Works with

  • PostgreSQL

    Required database store; manual installation requires PostgreSQL 12 or newer.

  • SMTP

    Supports multiple SMTP servers with email queues and rate limiting.

  • Messenger HTTP webhooks

    Connect delivery implementations for SMS, WhatsApp, FCM notifications, or other message types.

  • OIDC

    Supports single sign-on through OIDC.

  • S3-compatible storage

    Supported by the built-in media library.

  • Mailhog

    Recommended in the developer docs as a mock SMTP server with a UI for testing.

What it costs

SoftwareFree to self-host under the AGPL-3.0 licence.
HostingFor a small newsletter, a small VPS usually costs about $5-20 per month; check current prices. Size the server for both listmonk and PostgreSQL. Delivery services may have separate costs.

FAQ

Does listmonk offer an official hosted cloud service?

The supplied sources list third-party hosting providers and explicitly state that listmonk has no affiliation with them. They do not identify an official hosted cloud service.

Can it send WhatsApp or SMS messages?

It supports these channels through Messenger interfaces and HTTP webhooks. You need a suitable delivery implementation; the sources do not describe a built-in WhatsApp account connection.

Does it require PostgreSQL?

Yes. PostgreSQL is its data store, and the installation docs require version 12 or newer.

Can subscribers control their data?

Yes. The homepage describes subscriber controls for exporting their data or having it completely removed.

Should I use a nightly release for production?

The docs warn that nightly releases are untested and may have bugs. Always back up PostgreSQL before trying a nightly release.

Troubleshooting

The dashboard does not open.

Confirm that listmonk is running and that you are using http://localhost:9000 for a local installation. Check logs and port availability; see the official docs.

Database installation or connection fails.

Check that PostgreSQL is version 12 or newer and that database settings in config.toml or LISTMONK_* variables match your instance. Check logs; see the official docs.

Docker does not use a custom config.toml.

Follow the documented custom-config method: remove the corresponding environment configuration, mount the host file at /listmonk/config.toml, and change the command's --config paths to that file.

Development changes are not appearing.

In the Docker development shell, press Ctrl-C and rerun make run so Go and static-file changes are picked up.

Get it set up for you

Don't want to install it yourself? A Jugaad maker can set up listmonk for your business. Payment is held in Safe Deal until it works.

No maker offers a setup gig for this yet. Post a request and makers will quote.

Post a setup request Paid through Safe Deal

Built by knadh and contributors on GitHub. All credit goes to the authors. GitHub stats refresh daily. Jugaad does not host, copy or sell this code.

Is this your project?