GDPR Compliant

Email marketing that
respects privacy

Your subscriber data stays on your servers, in your country, under your control. GDPR compliance isn't an add-on — it's the architecture.

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.

Your subscribers' data.
On your servers. Period.

GDPR compliance isn't just about cookie banners and privacy policies. For email marketing, the core issue is where your subscriber data lives. When you use Mailchimp, Brevo, or ActiveCampaign, your subscribers' personal data — names, email addresses, engagement history, behavioral data — sits on US-based servers controlled by a third party.

The Schrems II ruling invalidated the EU-US Privacy Shield, making transfers of personal data to US companies legally questionable. Standard Contractual Clauses help, but they add complexity and don't eliminate risk. If your Data Protection Officer is nervous about your email marketing stack, they should be — most SaaS email platforms store data outside the EU.

Self-hosting with Punchmail eliminates this problem entirely. Your subscriber data lives on your server, in your data center, in your jurisdiction. There are no transatlantic data transfers, no third-party processors to audit, and no DPA amendments to negotiate. You are the data controller and the processor.

Beyond data location, Punchmail gives you full control over data retention, deletion, and portability. Subscriber deletion is actual deletion — not a soft-delete that leaves data lingering in backup systems you can't access. DSAR requests are handled directly from your own database, not through a vendor's support ticket system.

🇪🇺

EU Data Residency

Host on any EU server provider. Your data never crosses borders, never touches US infrastructure, never leaves your control.

🔒

Full Data Control

Direct database access for DSAR requests, data deletion, and portability. No support tickets, no waiting for vendor compliance.

📋

No Third-Party Processors

You are the controller and processor. No DPAs to negotiate, no sub-processor lists to monitor, no audit requirements.

🗑️

True Data Deletion

When you delete subscriber data, it's gone. Not soft-deleted, not lurking in backups. Real deletion from your own database.

How Punchmail stacks up

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

Punchmail Mailchimp Brevo Mautic
Self-hosted in EU EU option
No US data transfer
Direct database access
True data deletion
No third-party DPA needed
RFC 8058 one-click unsub
Block email editor Basic
Automation workflows
ClickHouse analytics
One-time pricing $350+/mo $65+/mo Free

Frequently Asked Questions

Is self-hosted email marketing automatically GDPR compliant?

+
Self-hosting eliminates the data transfer issue, but GDPR compliance also requires proper consent management, unsubscribe handling, and data processing records. Punchmail provides the technical infrastructure (data residency, deletion, RFC 8058 unsubscribe) — you still need proper consent flows and privacy policies.

Can I host Punchmail on EU servers?

+
Yes. Punchmail runs anywhere Docker runs. Deploy on Hetzner, OVH, Scaleway, or any EU-based hosting provider. Your data stays physically within the EU, on servers subject to EU law.

How does Punchmail handle unsubscribe requests for GDPR?

+
Punchmail implements RFC 8058 one-click unsubscribe (required by Gmail/Yahoo), in-body unsubscribe links, and a full preference center. Unsubscribes are processed immediately and logged for compliance records.

Can I fulfill DSAR (Data Subject Access Request) with Punchmail?

+
Yes. Since you have direct database access, you can export any subscriber's complete data record, engagement history, and consent logs. No need to submit a request to a vendor and wait for their compliance team to respond.

Does Punchmail track subscribers in a GDPR-compliant way?

+
Punchmail tracks opens and clicks for campaign analytics, stored in your own ClickHouse instance. Since this data never leaves your server, there's no third-party tracking concern. You can also disable tracking entirely if your privacy policy requires it.

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.

Our DPO spent six months auditing our Mailchimp setup for GDPR. With Punchmail on our Hetzner server in Falkenstein, the conversation was over in five minutes. Our data, our server, our jurisdiction.

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