Built for Developers

Email marketing
developers actually like

Docker Compose up. REST API. Laravel under the hood. Punchmail is email marketing that fits your workflow, not the other way around.

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.

Finally, an email platform
that respects your workflow.

Most email marketing platforms are built for marketers and tolerated by developers. The dashboards are slick, but there's no API for the workflow you actually need. Deployments mean clicking through a web UI instead of running a command. Configuration lives in a database instead of environment variables. Version control? What's that?

Punchmail is built on Laravel 11 — one of the most popular and well-documented PHP frameworks. The codebase is clean, well-structured, and follows Laravel conventions. If you've worked with Laravel before, you can read the code, extend it, and customize it without a manual. If you haven't, the Laravel ecosystem has more documentation than any email platform.

Deployment is Docker Compose. Clone the repo, set your environment variables in .env, run docker compose up -d, and you're live. Updates are docker compose pull && docker compose up -d. No manual server configuration, no PHP version conflicts, no dependency hell. Infrastructure as code, the way it should be.

The REST API covers everything: subscribers, lists, campaigns, segments, and more. Import subscribers via API, trigger automations programmatically, pull analytics data into your own dashboards. Punchmail fits into your existing stack — it doesn't demand you build around it.

🐳

Docker-First Deployment

Docker Compose up and you're running. Environment variables for config. docker compose pull for updates. No GUI-only setup.

💻

Clean Laravel Codebase

Laravel 11, well-structured, well-documented. Read the code, extend it, customize it. Open source you can actually work with.

🔗

Full REST API

Manage subscribers, campaigns, and automations programmatically. Integrate with your existing stack via API.

⚙️

Env-Based Configuration

Configuration via .env and config files, not database settings. Version-controllable, environment-aware, 12-factor friendly.

How Punchmail stacks up

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

Punchmail Mailchimp Listmonk Mautic
Docker deployment
REST API
Clean codebase Complex
Env-based config Mixed
Block email editor Basic
Automation engine
SMTP pools
ClickHouse analytics
Self-hosted
One-time pricing $350+/mo Free Free

Frequently Asked Questions

What stack does Punchmail use?

+
Laravel 11 (PHP 8.2+), MySQL for application data, ClickHouse for analytics, Redis for caching and queues, and Laravel Horizon for queue management. Everything runs in Docker containers orchestrated with Docker Compose.

Can I extend Punchmail's codebase?

+
Yes. Punchmail is a standard Laravel application. You can add custom commands, API endpoints, event listeners, and more using Laravel's extension patterns. The codebase follows Laravel conventions, so it's immediately familiar to Laravel developers.

Does Punchmail have webhooks?

+
Punchmail processes incoming webhooks from SMTP providers (SES, Postmark, SendGrid) for bounce and complaint handling. For outgoing notifications, you can extend the application with Laravel's event system to trigger webhooks on campaign events.

Can I deploy Punchmail on Kubernetes?

+
The Docker images can run on Kubernetes. You'd need to create your own Kubernetes manifests (Deployments, Services, etc.) based on the Docker Compose configuration. The stateless application containers scale horizontally; MySQL, ClickHouse, and Redis need persistent storage.

How do I automate subscriber management via API?

+
The REST API supports full CRUD for subscribers: create, read, update, delete, bulk import, and list/segment management. Use it to sync subscribers from your application, trigger automations on user events, or build custom integrations.

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.

I've integrated more email APIs than I can count. Most email platforms treat developers as an afterthought. Punchmail is built the way I'd build it — Docker, env config, clean API, readable code.

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