AI Controllability
9/10
Excellent for AI operation. Claude can: create/manage subscriber lists, add subscribers with custom attributes, create campaigns with templated content, trigger sends, manage templates, configure SMTP via settings API, handle bounces. The JSONB attribs on subscribers is perfect for storing arbitrary client data. Transactional email API means Claude can send one-off emails programmatically. Only gap: no webhook/event system for real-time reactions (would need polling or DB triggers).
API Coverage
9/10
Full REST API for all operations: subscribers, lists, campaigns, templates, transactional email, settings, media, bounces. Basic auth. All CRUD operations work via API. Campaign lifecycle (draft→running→finished) fully controllable. Subscriber attributes stored as JSONB — arbitrary key-value pairs queryable via SQL-like syntax in API.
DB Schema Quality
9/10
Clean PostgreSQL schema. 16 tables total. Key tables: subscribers (with JSONB attribs), lists, campaigns (full lifecycle fields), templates, subscriber_lists (many-to-many with status tracking), bounces, links, link_clicks, campaign_views. Proper foreign keys with CASCADE. Good indexing on status, email, dates. UUIDs on all public-facing entities.
Feature Completeness
7/10
Covers core email marketing well: lists, subscribers, campaigns, templates, bounce handling, link tracking, campaign analytics, transactional email, media uploads, archive/public pages. Missing vs GHL: no visual email builder (HTML/template only), no landing page builder, no funnel builder, no SMS. But these are separate concerns — Listmonk does email marketing and does it well. Supports multiple SMTP providers, S3 uploads, OIDC auth.
Resource Usage
9/10
Extremely lightweight. Go binary uses minimal memory. Shares PostgreSQL with existing stack (no separate DB needed). Docker image is small. Can handle high-volume sending with low overhead. Perfect for a VPS deployment alongside other services.
Setup Complexity
8/10
Simple Docker setup: single Go binary + PostgreSQL. Config via TOML file. Install step seeds DB schema. Lightweight — Go binary is fast, low resource usage. Uses shared PostgreSQL well. Only complexity: config file flag syntax changed between versions (caught during eval — newer versions use --config flag, not --db.* flags).