Self-hosted email marketing platform built by Spatie for Laravel teams
Mailcoach is a self-hosted email marketing platform built by Spatie, the renowned Belgian Laravel consultancy. It provides newsletter campaigns, drip sequences, and transactional email via your own infrastructure or their EU-hosted cloud, offering full data ownership.
Headquarters
Antwerp, Belgium
Founded
2020
Pricing
EU Data Hosting
Yes
Employees
11-50
Open Source
Yes
€21/mo
€10/mo
Pay-as-you-go
Billing: annual, pay-as-you-go
Mailchimp charges per subscriber. Reach 10,000 contacts and you're paying $100/month — before you send a single email. Scale to 50,000 subscribers and the bill hits $350/month. For a Laravel developer running a newsletter alongside a SaaS product, this is a compounding cost that grows regardless of whether the business does.
Mailcoach exists because Spatie — the Antwerp-based Laravel consultancy behind some of the most-downloaded PHP packages on Packagist — faced that problem themselves and built a solution. Released in 2020, Mailcoach is a self-hosted email marketing platform that integrates directly into your Laravel application as a Composer package. One annual licence (€249/year) covers unlimited subscribers and unlimited email lists. You own the data. You own the infrastructure.
Spatie's standing in the Laravel ecosystem is relevant context. The team behind Mailcoach has also built laravel-permission, laravel-activitylog, laravel-medialibrary, and dozens of other packages used by hundreds of thousands of developers. When Spatie ships software, Laravel teams pay attention. Mailcoach inherits that trust — and the scrutiny that comes with it.
The product is available in two forms: the self-hosted licence for teams running their own servers, and a cloud-hosted version at mailcoach.app for those who want the functionality without the infrastructure management. Both options are EU-based. Both offer the same core features.
The defining architectural decision behind Mailcoach is that it runs inside your Laravel application — not alongside it or via a webhook integration. Install the package via Composer, run the migrations, publish the config, and Mailcoach's admin interface is live at a path you configure. Your subscriber data lives in your own database. Your email sending history is in your own logs. There is no external SaaS platform processing your customer data.
For teams already running a Laravel application, this integration is genuinely seamless. Authentication reuses your existing Laravel auth. Queued jobs use your existing queue. The application does not add an external dependency — it becomes part of your stack.
Mailcoach supports multi-step drip sequences with conditional branching. A welcome sequence might send an email on day one, wait three days, check whether the subscriber clicked a link in the first email, then send a different follow-up depending on that outcome. Webhooks can be used as both triggers and actions within automations — a subscription event can trigger a Mailcoach automation while simultaneously notifying an external system.
The automation builder is functional without being visually elaborate. Teams expecting a drag-and-drop canvas in the style of ActiveCampaign or Klaviyo will find it more utilitarian, but the logic coverage is solid for common developer-managed sequences.
Beyond newsletters and automations, Mailcoach handles transactional mail — password resets, order confirmations, shipping notifications. Transactional sends appear in the send log alongside campaign mail, with open and click tracking configurable per send. Routing transactional mail through Mailcoach consolidates your email operation in one place rather than managing a separate Postmark or Mailgun integration independently.
Mailcoach does not lock you into a single email delivery service. Amazon SES, Mailgun, Postmark, Brevo, SendGrid, and turboSMTP are all supported, as is generic SMTP. Switching providers — for pricing, deliverability, or compliance reasons — requires a configuration change rather than a platform migration.
The REST API covers subscriber management, campaign creation, list management, and send operations. PHP and Laravel SDKs reduce boilerplate for teams working within that ecosystem. Webhooks fire on subscriber events: subscriptions, unsubscribes, bounces, and clicks. External systems can stay synchronised without polling.
The pricing model is where Mailcoach makes its clearest argument. For the self-hosted licence, €249/year is a fixed cost regardless of how many subscribers you have, how many lists you maintain, or how many emails you send. A newsletter growing from 5,000 to 50,000 subscribers does not change the licence fee — you pay your email provider's per-send rate, but not Mailcoach.
The cloud-hosted plan starts at €9.99/month with 2,000 emails included. Above that, you pay €0.002 per email sent — or €0.001 per email if you route through your own SES or Mailgun account. For moderate send volumes against large lists, the per-email model is more predictable than the per-subscriber model used by Mailchimp, ConvertKit, and most mainstream platforms.
The calculus breaks down at high volume. If you are sending 200,000 emails per month on the cloud plan using Mailcoach's infrastructure, the cost approaches €400/month — competitive with enterprise tiers at Brevo or Mailjet that include more comprehensive support. At that scale, the self-hosted licence plus direct SES costs becomes the obvious choice.
Spatie operates from Antwerp, Belgium — an EU member state. The self-hosted version routes all subscriber data through your own servers, with no third-party SaaS processing your list. Your data processing agreement is with your email delivery provider (SES, Mailgun, etc.), not with Mailcoach. This is the cleanest possible GDPR posture for email marketing: the platform vendor handles zero subscriber data.
The cloud-hosted version runs on EU infrastructure with a data processing agreement available for business customers. Unsubscribe management and consent logging are built in and configurable. There are no third-party tracking scripts embedded in self-hosted deployments — the tracking pixel and click redirect are served from your own domain.
For EU businesses concerned about transatlantic data flows triggered by email marketing tools, Mailcoach's self-hosted model eliminates the concern structurally rather than through contractual workarounds.
Laravel development teams building SaaS products or content platforms who want email marketing integrated into their existing stack. The Composer installation and shared database architecture reduce operational overhead compared to managing a separate email platform.
Newsletter publishers with large lists who send infrequently. Paying Mailchimp $350/month for 50,000 subscribers on a newsletter that sends twice a month is expensive. Mailcoach's flat-rate self-hosted licence with per-send delivery costs changes that arithmetic.
Privacy-conscious EU businesses where having a US-based SaaS platform process your subscriber list raises compliance concerns. The self-hosted model is the most robust possible approach to GDPR compliance for email marketing.
PHP developers who build client email systems and want to offer clients a white-label email marketing tool running on infrastructure the client controls.
Mailcoach solves a real problem with a genuine architectural advantage. The self-hosted, Composer-native approach gives Laravel teams something that no mainstream email marketing platform offers: full data ownership with a sensible feature set at a flat-rate price. The limitations are equally real — non-PHP teams cannot use it, the automation builder is functional but not polished, and heavy cloud senders will find the per-email pricing exceeds SaaS alternatives. For its target audience, though, Mailcoach from Spatie is one of the most honest value propositions in European developer tooling.
Yes. The self-hosted version processes no subscriber data through Mailcoach's servers — everything stays in your own database and infrastructure. The cloud version runs on EU infrastructure with a DPA available. In both cases, the delivery provider (SES, Mailgun, etc.) has its own DPA you need to manage separately.
The self-hosted version requires Laravel and PHP expertise to install and maintain. For non-PHP teams, the cloud-hosted version at mailcoach.app provides a web interface without requiring server management, though it lacks the deep code-level integration that makes the self-hosted option compelling.
Brevo is a hosted SaaS email platform with a free tier up to 300 emails/day, a broader feature set including CRM and SMS, and is also EU-based (France). Mailcoach is narrower in scope but gives PHP/Laravel teams a level of infrastructure control and data ownership that Brevo cannot match. For technical teams, Mailcoach; for non-technical marketing teams, Brevo.
Yes. Mailcoach supports multi-step drip sequences with time delays, conditional branching on opens and clicks, webhook triggers, and subscriber segmentation. The automation builder covers common use cases — welcome sequences, re-engagement flows, post-purchase drips — though it does not have the visual canvas depth of platforms like ActiveCampaign.
The Mailcoach package is available on GitHub under a commercial licence. The source code is publicly auditable. The licence permits self-hosting within your own organisation but does not allow redistribution as a competing hosted service. There is no completely libre version — the licence requires purchase for production use.
All-in-one marketing platform with email, SMS, and CRM
Alternative to Mailchimp, Constant Contact
Developer-friendly email API for transactional and marketing emails
Open-source transactional email platform hosted in the EU
French transactional email and SMS API for software teams who treat messaging as a core product component