unsubbed.co

Notifuse

Self-hosted email servers tool that provides email platform for newsletters and transactional emails. alternative to Mailchimp.

Open-source email marketing and transactional delivery, honestly reviewed. No marketing fluff, just what you get when you stop paying Mailchimp by the contact.

TL;DR

  • What it is: Open-source (AGPL v3) self-hosted email platform covering newsletters, transactional email, marketing automation, and A/B testing — all in one [README][1].
  • Who it’s for: Founders and developers tired of per-contact Mailchimp billing who want to own their email infrastructure. Also agencies managing multiple client email programs [4].
  • Cost savings: Mailchimp charges ~$350/mo for 25K contacts. Self-hosted Notifuse costs $0 for the software plus a $6/mo VPS and whatever you pay Amazon SES or Postmark per email sent.
  • Key strength: Engineering quality that punches above its star count. The broadcast pipeline uses cursor-based pagination, circuit breakers, and resumable state — the kind of architecture you’d expect from a mature commercial product, not a ~1,900-star open-source project [1].
  • Key weakness: AGPL v3 license means you can’t embed it in a closed-source commercial product. Relatively young project with thin third-party documentation and a small community compared to Listmonk or Mautic.

What is Notifuse

Notifuse is a self-hosted email platform that handles both marketing (newsletters, campaigns, automation) and transactional (API-driven, per-user triggered) email in a single deployment. Built with Go on the backend and React on the frontend, it stores everything in PostgreSQL and sends mail through your choice of Amazon SES, Mailgun, Postmark, Mailjet, SparkPost, or plain SMTP [README].

The homepage pitches it as an alternative to Mailchimp, Brevo, Mailjet, Listmonk, Mailerlite, and Klaviyo simultaneously [homepage]. That’s a wide claim. In practice it sits in a specific gap: more capable than Listmonk (which is newsletters-only with minimal automation), less overwhelming than Mautic (which is a PHP monolith covering every marketing channel at the cost of serious operational complexity) [1].

The project sits at 1,888 GitHub stars as of this review, which by open-source standards is mid-tier. What’s not mid-tier is the code architecture. Florian Narr’s technical review [1] called out the broadcast orchestrator specifically — it models email delivery as a resumable task with cursor-based pagination and a circuit breaker that pauses delivery on provider failure rather than marking the whole campaign as failed. That detail matters if you’ve ever had a campaign silently fail because SES rate-limited you at 2 AM.


Why people choose it

The reviews and coverage are sparse — this is a younger project — but the signal from what exists is consistent.

Versus Mailchimp and Klaviyo. The cost structure is the primary reason people look. Mailchimp’s free tier caps at 500 contacts and 1,000 sends/month. Past that you’re at ~$13/mo for 500 contacts, ~$70/mo for 5K, and ~$350/mo for 25K. Klaviyo is more aggressive: comparable pricing for smaller lists but much steeper at scale. Self-hosted Notifuse costs zero per contact and zero per send — you pay only for the VPS and your email delivery provider (Amazon SES is ~$0.10 per 1,000 emails) [README][homepage].

Versus Listmonk. This is the more technical comparison. Listmonk is the established self-hosted newsletter tool with significantly more community resources, tutorials, and battle-testing. Listmonk does newsletters well. Where Notifuse pulls ahead is automation: Listmonk’s automation story is thin, while Notifuse ships a full node-based workflow engine with delay, branch, filter, A/B test, and webhook nodes [1]. The Gigazine coverage [2] specifically notes this as a differentiator for membership sites and e-commerce where event-driven sequences (welcome series, re-engagement) actually matter.

On the engineering quality argument. The Codeline review [1] is the most technically specific coverage available, and it makes the case that Notifuse’s broadcast pipeline is architecturally serious in a way most projects at this size aren’t. The resumable cursor-based pagination means a crashed send job doesn’t restart from zero. The A/B test state machine tracks testing → test_completed → winner_selected → processed, with AutoSendWinner picking the better-performing variant automatically based on open and click rates. These are the failure modes that bite you at scale, and they’ve been thought through.


Features

Based on the README and first-hand article descriptions:

Campaign management:

  • Visual drag-and-drop email builder using MJML components with real-time preview [README]
  • Liquid templating for personalization ({{ contact.first_name }}, custom fields) [README][homepage]
  • Campaign scheduling and segmentation by contact properties, activity, and subscription status [homepage]
  • Duplicate prevention: if you send to multiple lists, a contact who’s on both gets only one email [2]
  • A/B testing for subject lines, content, and send times — with automatic winner selection when AutoSendWinner is enabled [1]
  • Broadcast orchestrator with resumable state, cursor pagination, and provider circuit breakers [1]

Marketing automation:

  • Node-based workflow builder: trigger → delay → email → branch → filter → A/B test → webhook → list management [1]
  • Up to 10 nodes execute per tick, with delays held until next tick [1]
  • Trigger events include contact.created, list.subscribed, and others [1]
  • Supports welcome series, onboarding sequences, and re-engagement flows [homepage]

Transactional email:

  • REST API for programmatic per-user email delivery [README][homepage]
  • Responsive templates via the same builder used for campaigns [homepage]
  • Webhook integration for real-time event callbacks [README]

Contact management:

  • Custom contact fields and rich profiles [README][homepage]
  • Complete activity timeline per contact (sent, opened, clicked, profile changes, subscription changes) [homepage]
  • Public, private, and subscriber list types [2]
  • Real-time segmentation with dynamic rule-based filters [homepage]

Infrastructure features:

  • Multi-workspace architecture — isolated contacts, campaigns, and custom domains per workspace (useful for agencies) [homepage][2]
  • S3-compatible file manager with CDN delivery for email images [README]
  • Embeddable notification center widget for customer-facing subscription preferences [README][homepage]
  • Granular team permissions with multiple roles per workspace [homepage]
  • Admin log and API key management [2]
  • Supabase integration for user authentication and database synchronization [2]
  • Blog hosting with custom domain (not widely covered — documented in Gigazine [2] but absent from the homepage)

Email provider support: Amazon SES, Mailgun, Postmark, Mailjet, SparkPost, plain SMTP [README]


Pricing: SaaS vs self-hosted math

Notifuse self-hosted:

  • Software: $0 (AGPL v3) [README]
  • VPS: $5–10/mo (Hetzner, Contabo, DigitalOcean)
  • Email delivery (via provider):
    • Amazon SES: ~$0.10 per 1,000 emails (cheapest option; requires AWS account and domain verification)
    • Postmark: ~$1.50 per 1,000 for transactional, ~$1.25 per 1,000 for bulk
    • Mailgun: ~$0.80 per 1,000

Notifuse managed cloud: No pricing publicly listed on the homepage. The website mentions an “Enterprise” tier with “priority support, custom implementation, training & onboarding, SLA guarantee” — contact sales [homepage]. No self-service paid cloud tier with public pricing was found.

The incumbents for comparison:

  • Mailchimp: Free up to 500 contacts/1K sends. Essentials starts ~$13/mo (500 contacts), ~$70/mo (5K contacts), ~$350/mo (25K contacts). Per-contact pricing that escalates predictably as your list grows.
  • Brevo (formerly Sendinblue): Priced per email sent, not per contact. Free up to 300 emails/day. Starter ~$9/mo for 5K emails/month, Business ~$18/mo for 20K/month, plus fees for premium features like landing pages and A/B testing.
  • Klaviyo: Free up to 250 contacts. Email tier at 1K contacts ~$20/mo, 5K contacts ~$100/mo, 25K contacts ~$400/mo.
  • Resend (transactional only): Free 3K emails/mo, Pro $20/mo for 50K.

Concrete math for a 10K-contact list sending 2 campaigns/week (~80K emails/month):

OptionMonthly cost
Mailchimp Essentials (10K contacts)~$135/mo
Klaviyo (10K contacts)~$150/mo
Brevo (80K emails)~$25/mo
Notifuse self-hosted + Amazon SES~$14/mo ($6 VPS + $8 SES)

The SES math holds until you need dedicated IPs for deliverability (additional ~$24.95/mo from AWS). Even then, self-hosted Notifuse stays well below Mailchimp pricing at scale.


Deployment reality check

The README’s install path goes through the documentation site at docs.notifuse.com rather than including a docker-compose file in-repo — not ideal for a self-hoster trying to evaluate quickly, but the documentation exists [README]. The homepage advertises “One-click Deploy” which implies Railway or Render support; the Gigazine article [2] doesn’t elaborate on what “one-click” means in practice.

What you actually need:

  • A Linux VPS with 2GB+ RAM
  • Docker and docker-compose
  • PostgreSQL (likely bundled in docker-compose)
  • Domain name and reverse proxy (Caddy or nginx) for HTTPS and custom email domain
  • An account with one of the supported email providers (Amazon SES being the cheapest)
  • DNS configuration for DKIM, SPF, and DMARC on your sending domain

What the architecture provides out of the box:

  • Go binary: fast startup, low memory footprint compared to PHP-based alternatives like Mautic
  • Clean layered architecture (domain → service → repository → HTTP) with no magic framework [1]
  • PostgreSQL as the only database dependency — no Redis, no Elasticsearch
  • Built-in setup wizard for initial configuration [README]

Realistic setup time for a technical user: 1–2 hours including DNS propagation wait. The Go binary and clean architecture mean fewer moving parts than a typical PHP email platform. For a non-technical founder following a guide: 3–6 hours, with most of that time spent on email provider configuration and DNS verification.

What can go sideways:

  • DNS verification for sending domain (SPF, DKIM, DMARC) trips up everyone on the first attempt — this is provider-side, not Notifuse-specific, but budget time for it
  • Amazon SES starts in “sandbox mode” by default, requiring manual AWS support request to enable production sending — this is a common gotcha for SES first-timers
  • The AGPL v3 license means if you modify Notifuse’s source code and run it as a service, you must publish those modifications — this matters for developers but not for founders running it internally
  • Limited community resources given the project’s age: fewer tutorials, fewer StackOverflow answers, less accumulated troubleshooting documentation than Listmonk

Pros and cons

Pros

  • No per-contact pricing, ever. Self-hosted means you pay infrastructure costs only. A 100K-contact list costs the same to run as a 1K-contact list [homepage][README].
  • Engineering quality above its weight class. Resumable broadcast jobs, circuit breaker on provider failure, A/B test state machine — these are production-grade features, not afterthoughts [1].
  • Both newsletter and transactional in one deployment. Listmonk handles newsletters; Resend handles transactional. Notifuse covers both, which simplifies infrastructure for projects that need both [README][4].
  • Node-based automation engine. Welcome series, onboarding sequences, and re-engagement flows with delay, branch, filter, webhook, and A/B test nodes [1][homepage].
  • Multi-workspace architecture. Agencies can run multiple clients from one instance with isolated data and custom sending domains per workspace [homepage][2].
  • Go backend. Lower memory footprint and faster startup compared to PHP alternatives. Clean layered architecture makes it auditable [1].
  • Multi-provider support. Switch between SES, Mailgun, Postmark, Mailjet, SparkPost, or SMTP without vendor lock-in on the delivery side [README].
  • PostgreSQL only. No Redis dependency, no Elasticsearch — simpler operational footprint [1].

Cons

  • AGPL v3, not MIT. If you want to embed Notifuse in a proprietary commercial product, AGPL requires you to open-source your modifications. For self-hosters this is irrelevant; for SaaS developers building on top of it, this matters [README]. The merged profile lists the license as “NOASSERTION” which suggests some ambiguity in how it’s detected, but the README is explicit: AGPL v3.
  • Young project with thin community. 1,888 stars and sparse third-party documentation. Listmonk has years of tutorials, forum threads, and battle-tested Docker setups. Notifuse doesn’t yet [1][3].
  • No public managed cloud pricing. If you want a hosted version, you’re in “contact sales” territory with no self-serve option publicly visible [homepage].
  • Amazon SES sandbox gotcha. Not a Notifuse issue specifically, but most non-technical founders hit the SES sandbox restriction on their first deploy. Worth calling out because Notifuse leans on SES as the default cheap provider.
  • Documentation lives off-repo. The README points to docs.notifuse.com for installation rather than shipping a docker-compose example in the repository — a friction point for evaluation [README].
  • Embeddable notification center widget is a feature not well-documented in third-party coverage — unclear how production-ready it is versus the core campaign functionality.

Who should use this / who shouldn’t

Use Notifuse if:

  • You’re paying Mailchimp or Klaviyo more than $50/mo and your list is growing — the per-contact pricing math will only get worse.
  • You need both newsletter campaigns and transactional email API from one platform and don’t want to run two separate systems.
  • You’re an agency managing email for multiple clients and want workspace isolation without running separate instances.
  • You’re comfortable with Docker deployment, or willing to pay once for setup.
  • You want to own your subscriber data without it living on a vendor’s servers.

Skip it — pick Listmonk instead — if:

  • You only need newsletters, no transactional email, no automation. Listmonk is more mature, better documented, and has a larger community for that specific use case.
  • You’re a non-technical founder with zero Linux experience and no one to help you deploy.

Skip it — pick Mautic instead — if:

  • You need CRM integration, lead scoring, landing pages, and multi-channel marketing automation. Mautic covers all of it (at the cost of a PHP monolith and significant ops overhead).

Stay on Mailchimp if:

  • Your list is under 500 contacts and you’re on the free tier — there’s no cost pressure yet.
  • Your compliance team won’t approve self-hosted infrastructure.
  • You need deep CRM integrations that Mailchimp’s native connectors already cover.

Use Resend or Postmark for transactional only if:

  • You don’t need campaigns at all. Purpose-built transactional providers have better deliverability tooling, dedicated IP options, and more mature logging for pure transactional use.

Alternatives worth considering

  • Listmonk — the most popular self-hosted newsletter tool. More community resources and tutorials, newsletter-focused, weaker automation. MIT licensed. The safe choice for newsletters-only.
  • Mautic — the Swiss Army knife. Covers CRM, multi-channel campaigns, lead scoring, landing pages. PHP monolith, higher ops overhead, but nothing in self-hosted comes close on feature depth.
  • Mailchimp — the incumbent. Easiest onboarding, best deliverability reputation, most integrations. Expensive at scale, fully closed source.
  • Brevo (formerly Sendinblue) — priced per email sent rather than per contact, which works out cheaper than Mailchimp for large lists with infrequent sends. Still closed-source SaaS.
  • Loops.so — SaaS product focused on product email (onboarding, activation flows). More opinionated and developer-friendly than Mailchimp. Notifuse lists it as a direct alternative.
  • Resend — transactional email API only. No campaign management. If you only need programmatic one-off emails, Resend is cleaner. Notifuse is the self-hosted equivalent when you need campaigns too.
  • Postal — older Go-based self-hosted mail server. More of a raw SMTP relay than an email marketing platform.

Bottom line

Notifuse is the most technically serious self-hosted email platform in the space right now that most people haven’t heard of yet. The broadcast pipeline alone — resumable jobs, cursor pagination, circuit breakers — is built for production in a way that most ~2K-star projects aren’t [1]. For a non-technical founder currently paying Mailchimp $100–$350/mo for a moderately-sized list, the math to switch is obvious: a $6 VPS plus Amazon SES covers the same workload for under $15/mo, indefinitely, with no per-contact pricing cliff to hit.

The trade-offs are real: younger project, thinner community, AGPL v3 instead of MIT, and a setup process that requires at least one technical person. But the feature set — MJML editor, A/B testing, automation engine, transactional API, multi-workspace — is legitimately complete. If you’re evaluating self-hosted email platforms in 2026, Notifuse belongs on the shortlist next to Listmonk. Whether it beats Listmonk depends on whether you need automation. If you do, Notifuse is the better-engineered option.


Sources

  1. Florian Narr, Codeline.co“Notifuse: Self-Hosted Email Platform with Automations and A/B Testing” (October 24, 2025). https://www.codeline.co/thoughts/repo-review/2025/notifuse-self-hosted-email-platform-with-automations-and-ab-testing

  2. Gigazine“Notifuse, a self-hosted email delivery platform, allows you to send newsletters and transactional emails at low cost” (December 20, 2025). https://gigazine.net/gsc_news/en/20251220-notifuse/

  3. Muhammad Fiaz, daily.dev“Notifuse/notifuse: Notifuse is an open-source & modern emailing platform” (September 22, 2025). https://app.daily.dev/posts/v4um1vbkx

  4. OpenAlternative.co“Notifuse: Open Source Alternative to Substack, Resend and Mailchimp”. https://openalternative.co/notifuse

Primary sources:

Features

Integrations & APIs

  • REST API
  • Webhooks