C'EST QUOI ?
listmonk est un gestionnaire de newsletters et de listes de diffusion auto-hébergé, livré en un seul binaire Go avec PostgreSQL comme unique dépendance. Il gère les abonnés, les campagnes, les templates et les statistiques d'envoi depuis une interface web, et sert aussi de brique d'envoi transactionnel pour une application via son API. L'objectif est simple : garder sa liste et ses données d'envoi chez soi plutôt que chez un prestataire facturé à l'abonné.
POURQUOI C'EST INTÉRESSANT ?
- Un binaire, une base Postgres : pas de Redis, pas de worker externe, pas de broker à surveiller. Le déploiement tient dans un binaire et un fichier de config, ou dans une image Docker.
- Segmentation en SQL : les abonnés se filtrent avec des expressions SQL portant sur leurs attributs JSON arbitraires. On n'est pas coincé dans un constructeur de segments à trois opérateurs.
- Files SMTP multiples : plusieurs serveurs SMTP en parallèle, en multi-thread, avec limitation de débit en fenêtre glissante pour rester dans les quotas des fournisseurs.
- Sobriété assumée : l'instance citée en référence par le projet a envoyé plus de 7 millions d'emails avec un pic à 57 Mo de RAM et une fraction de cœur CPU. Ça tient sur un petit VPS.
- Templates Go et éditeurs au choix : templating Go avec logique et une centaine de fonctions, utilisable jusque dans les objets de mail, plus un éditeur visuel drag-and-drop, du WYSIWYG, du Markdown ou du HTML brut.
CAS D'USAGE
- Héberger la newsletter d'un blog ou d'un produit sans dépendre d'un service tiers
- Envoyer les emails transactionnels d'une appli via l'API et des templates prédéfinis
- Segmenter une base d'abonnés à partir d'attributs métier stockés en JSON
- Suivre les bounces et les liens les plus cliqués sur une campagne
- Répartir le volume d'envoi sur plusieurs relais SMTP
