phpList Alternative

phpList's philosophy.
This century's technology.

phpList proved open-source email marketing was possible. Punchmail proves it can also be beautiful, fast, and powerful.

terminal
$ git clone https://github.com/punchmail/punchmail
$ cd punchmail && docker compose up -d
# That's it. You're sending.
✓ Punchmail is running at http://localhost

Built by an email deliverability expert with 27 years of experience

0
Monthly fees
Subscribers
Emails / month
1
Price. Forever.
https://your-server.com/dashboard
📊 Dashboard
👥 Subscribers
📋 Lists
📨 Campaigns
🎨 Templates
◇ Segments
⚡ Automations
⚙️ Settings

Dashboard

Subscribers
24,891
↑ 12.3%
Sent (30d)
148K
↑ 8.1%
Open Rate
42.3%
↑ 2.4%
Click Rate
8.7%
↑ 1.1%
Campaign
Status
Sent
Open Rate
Clicks
Black Friday Sale
Sent
24,891
42.3%
2,147
Weekly Newsletter #48
Sent
18,204
38.1%
1,432
Holiday Campaign
Scheduled

An engine built
for serious scale

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 with dedicated workers
500
Emails per batch, bulk-inserted in parallel
Dedup layers prevent duplicate sends
<1ms
ClickHouse query time on millions of events
🚀

Multi-Queue Architecture

7 priority queues — tracking, sending, campaigns, automations, bounces, imports, default. Each with dedicated workers via Laravel Horizon.

Parallel Batch Processing

Campaigns split into 500-subscriber batches. Multiple workers process batches simultaneously. Template compiled once, cached in Redis, reused across all batches.

📊

ClickHouse Analytics Engine

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.

🔒

Atomic Send Protection

Redis SETNX locks → MySQL unique index with INSERT IGNORE → job idempotency. Three layers guarantee zero duplicate sends, even during crashes and restarts.

Theoretical throughput
100K+ emails/hour
Scales linearly by adding worker containers

Everything you need. Nothing you don't.

Enterprise email marketing features without the enterprise price tag. Built by someone who's been sending email since before Gmail existed.

🎨

Block-Based Editor

Drag-and-drop email builder with 10 block types. Compiles to bulletproof HTML via MJML. Looks perfect in every client — yes, even Outlook.

🎯

Power Segmentation

Nested AND/OR conditions across subscriber fields, tags, engagement history, and campaign activity. "Opened campaign X but didn't click in 90 days" — milliseconds.

Automation Engine

Trigger-based workflows with conditions, delays, and actions. Welcome series, re-engagement, cart abandonment. Set it and forget it.

🔌

SMTP Pools

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.

📊

ClickHouse Analytics

Event tracking powered by ClickHouse. Millions of events, instant queries. Full per-campaign reports and per-subscriber activity timeline.

🧪

A/B Testing

Test subject lines and content with 2-3 variants. Auto-send the winner based on opens or clicks. Data-driven sending.

🛡️

Bounce Intelligence

IMAP/POP3 mailbox polling plus webhook receivers for SES, Postmark, and SendGrid. Automatic hard/soft classification with configurable thresholds.

🚫

Suppression System

Multiple suppression lists with email AND domain blocking. Platform-wide suppression for spamtraps and global unsubscribes. Three-layer dedup prevents duplicate sends.

📬

Full Compliance

RFC 8058 one-click unsubscribe (Gmail/Yahoo required), in-body unsubscribe, and full preference center. List-Unsubscribe headers automatic on every send.

phpList pioneered the space.
But it's time to move forward.

phpList is one of the oldest open-source email marketing tools — it's been around since 2000. For over two decades, it's served as the go-to free option for self-hosted newsletters. That legacy deserves respect. But the codebase and user experience show every one of those 25 years.

The interface is functional but painfully dated. There's no drag-and-drop editor, no visual email builder, no modern campaign workflow. Creating an email in phpList feels like filling out a government form from the 1990s. The segmentation is limited, there's no automation engine to speak of, and A/B testing doesn't exist.

Performance is another major concern. phpList stores everything in MySQL with no optimization for analytics workloads. Once you're past a few thousand subscribers, the dashboard slows to a crawl. There's no dedicated analytics engine, no caching layer, no queue system for parallel sending. Large campaigns can take hours to process.

Punchmail honors phpList's self-hosted philosophy while delivering a platform built with modern tools. A block editor for beautiful emails, ClickHouse for instant analytics, Redis for caching, parallel queue workers for fast sending, and a UI that doesn't make you feel like you've time-traveled to 2003.

🎨

Visual Email Builder

Drag-and-drop block editor with 10 block types and MJML output. Build beautiful emails in minutes, not hours of raw HTML.

🚀

Parallel Sending

Multi-queue architecture with parallel batch processing. Send to 100K+ subscribers per hour instead of phpList's sequential processing.

📊

Instant Analytics

ClickHouse-powered dashboards load in milliseconds, not minutes. Track opens, clicks, bounces, and engagement in real time.

Automation Engine

Welcome series, re-engagement flows, drip campaigns. phpList has no automation — Punchmail has a full trigger-based workflow builder.

How Punchmail stacks up

We're not competing with Mailchimp's marketing budget. We're competing with their feature set.

Punchmail phpList Listmonk Mautic
Self-hosted
Modern UI Dated
Block email editor Basic
Automation workflows
A/B testing Basic
SMTP pools
ClickHouse analytics
Bounce processing Basic Basic
Fast at scale
Docker deployment

Frequently Asked Questions

Can I migrate my phpList subscribers to Punchmail?

+
Yes. phpList supports CSV export of subscriber lists. Import these directly into Punchmail with field mapping for custom attributes. Your subscriber data, including custom fields and list memberships, can be preserved during migration.

Is Punchmail free like phpList?

+
Punchmail is a one-time €49 purchase, not free like phpList. But that €49 gives you a block editor, automation engine, ClickHouse analytics, SMTP pools, A/B testing, and modern bounce processing — features that would take years to add to phpList.

Does Punchmail support phpList's plugin system?

+
Punchmail doesn't use phpList's plugin architecture. Instead, it provides built-in features for most common needs and a REST API for custom integrations. Most functionality that required phpList plugins is included out of the box in Punchmail.

How does Punchmail handle large subscriber lists compared to phpList?

+
Punchmail uses parallel batch processing with multiple queue workers, compared to phpList's sequential sending. Combined with ClickHouse for analytics and Redis for caching, Punchmail handles large lists (100K+ subscribers) without the performance degradation phpList experiences.

Can non-technical users operate Punchmail?

+
Once Punchmail is installed (which requires basic Docker knowledge), the day-to-day operation is designed for marketers. The block editor, campaign builder, and subscriber management are intuitive. phpList's interface requires significantly more technical comfort to navigate.

Up and running in 60 seconds

No PhD required. If you can copy-paste three commands, you can run Punchmail.

1

Clone & configure

Clone the repo, copy the environment file, set your admin credentials.

git clone https://github.com/punchmail/punchmail && cp .env.example .env
2

Launch

One command spins up all 7 containers — app, database, analytics, queue, cache, email renderer. Done.

docker compose up -d
3

Connect your SMTP

Add your SMTP provider in settings — Amazon SES, Postmark, your own Postfix, whatever. Create pools, set weights, configure failover.

4

Start sending

Import subscribers, build your first campaign with the block editor, hit send. Welcome to email freedom.

One price. No limits. Forever.

No subscriber tiers. No send limits. No "contact sales." Just a price that makes sense.

Lifetime License
€199
49
One-time payment. Not per month. Not per year. Once.

🚀 Launch price for the first 100 customers. Then €99.

phpList got me through my first 50,000 subscribers. But at some point, I realized I was fighting the tool instead of growing my list. Punchmail is what self-hosted email marketing should feel like in 2025.

Bram, Creator of Punchmail & email deliverability veteran

Stop renting.
Start owning.

Your subscribers. Your data. Your server. One price, forever.

Get Punchmail → See How It Works