Keila is building toward a great self-hosted email tool. Punchmail is already there — with the features, performance, and polish you need today.
Punchmail isn't a hobby project with a queue bolted on. It's a multi-layered sending engine designed from day one to handle millions of emails without breaking a sweat.
7 priority queues — tracking, sending, campaigns, automations, bounces, imports, default. Each with dedicated workers via Laravel Horizon.
Campaigns split into 500-subscriber batches. Multiple workers process batches simultaneously. Template compiled once, cached in Redis, reused across all batches.
Every open, click, bounce, and unsubscribe stored in ClickHouse with 6 materialized views for instant aggregation. No more slow MySQL GROUP BY on millions of rows.
Redis SETNX locks → MySQL unique index with INSERT IGNORE → job idempotency. Three layers guarantee zero duplicate sends, even during crashes and restarts.
Enterprise email marketing features without the enterprise price tag. Built by someone who's been sending email since before Gmail existed.
Drag-and-drop email builder with 10 block types. Compiles to bulletproof HTML via MJML. Looks perfect in every client — yes, even Outlook.
Nested AND/OR conditions across subscriber fields, tags, engagement history, and campaign activity. "Opened campaign X but didn't click in 90 days" — milliseconds.
Trigger-based workflows with conditions, delays, and actions. Welcome series, re-engagement, cart abandonment. Set it and forget it.
Connect any SMTP provider. Create pools with weighted distribution for IP warmup. Automatic failover. Per-campaign throttling. This is what enterprise ESPs charge thousands for.
Event tracking powered by ClickHouse. Millions of events, instant queries. Full per-campaign reports and per-subscriber activity timeline.
Test subject lines and content with 2-3 variants. Auto-send the winner based on opens or clicks. Data-driven sending.
IMAP/POP3 mailbox polling plus webhook receivers for SES, Postmark, and SendGrid. Automatic hard/soft classification with configurable thresholds.
Multiple suppression lists with email AND domain blocking. Platform-wide suppression for spamtraps and global unsubscribes. Three-layer dedup prevents duplicate sends.
RFC 8058 one-click unsubscribe (Gmail/Yahoo required), in-body unsubscribe, and full preference center. List-Unsubscribe headers automatic on every send.
Keila is an open-source newsletter tool built with Elixir and Phoenix. It's a promising project with a clean interface and modern technology choices. The Elixir/Phoenix stack is excellent for concurrent workloads, and Keila shows good engineering taste. But it's still in early stages with a limited feature set.
Currently, Keila handles the basics: subscriber management, campaign creation with a simple editor, and sending via SMTP. But there's no automation engine, no A/B testing, no SMTP pools with weighted distribution, and no advanced analytics engine. The segmentation is basic, and bounce processing is minimal.
The Elixir ecosystem, while growing, is much smaller than PHP's for email marketing. This means fewer libraries, fewer integrations, and a smaller community for support. If you need to customize or extend Keila, you'll need Elixir expertise — a rarer skill than PHP/Laravel development.
Punchmail gives you what Keila is working toward — a beautiful, modern self-hosted email platform — but with the full feature set you need right now. Block editor, automation, A/B testing, ClickHouse analytics, SMTP pools, bounce intelligence, and suppression management. All production-ready today.
Automation, A/B testing, SMTP pools, advanced segmentation — everything Keila is still building toward, available now.
Professional drag-and-drop email builder with 10 block types. Produces bulletproof HTML that renders perfectly everywhere.
Dedicated analytics engine for real-time reporting on millions of events. Far beyond Keila's basic campaign statistics.
Built on Laravel/PHP with a massive community. Easy to find developers, documentation, and integrations for any need.
We're not competing with Mailchimp's marketing budget. We're competing with their feature set.
| Punchmail | Keila | Listmonk | Mautic | |
|---|---|---|---|---|
| Self-hosted | ✓ | ✓ | ✓ | ✓ |
| Block email editor | ✓ | Basic | ✗ | Basic |
| Automation workflows | ✓ | ✗ | ✗ | ✓ |
| A/B testing | ✓ | ✗ | ✗ | Basic |
| SMTP pools + warmup | ✓ | ✗ | ✗ | ✗ |
| ClickHouse analytics | ✓ | ✗ | ✗ | ✗ |
| Bounce processing | ✓ | Basic | Basic | ✓ |
| Advanced segmentation | ✓ | Basic | Basic | ✓ |
| Large developer community | ✓ | ✗ | ✓ | ✓ |
| Production-ready | ✓ | Beta | ✓ | ✓ |
No PhD required. If you can copy-paste three commands, you can run Punchmail.
Clone the repo, copy the environment file, set your admin credentials.
git clone https://github.com/punchmail/punchmail && cp .env.example .env
One command spins up all 7 containers — app, database, analytics, queue, cache, email renderer. Done.
docker compose up -d
Add your SMTP provider in settings — Amazon SES, Postmark, your own Postfix, whatever. Create pools, set weights, configure failover.
Import subscribers, build your first campaign with the block editor, hit send. Welcome to email freedom.
No subscriber tiers. No send limits. No "contact sales." Just a price that makes sense.
🚀 Launch price for the first 100 customers. Then €99.
I love what the Keila team is building, and Elixir is a fantastic choice. But I needed automation, A/B testing, and SMTP pools today — not someday. Punchmail delivered everything I was waiting for Keila to build.
Your subscribers. Your data. Your server. One price, forever.