Notifuse
Marketing campaigns and transactional mail from one open-source platform: Notifuse is a modern, self-hosted alternative to Mailchimp, Brevo, and Klaviyo without per-email or per-contact pricing. Built with Go and React on PostgreSQL, it separates concerns cleanly: a drag-and-drop visual builder composes responsive templates from MJML components with Liquid variables like {{ contact.first_name }} and per-template version history; campaigns add A/B testing across subject lines, content, and send times; and a REST transactional API serves application-triggered mail. Delivery routes through your choice of provider - Amazon SES, Mailgun, Postmark, SendGrid, SparkPost, Mailjet, or plain SMTP - with multi-provider failover. Contacts carry custom fields and a full activity timeline (messages, profile changes, webhook events), and real-time segmentation builds dynamic rules over properties, activity, and subscriptions. Event-driven automations create behavioral sequences, a notification center gives recipients self-service preference management, and an S3-compatible file manager handles images with CDN delivery. Multi-tenant workspaces with isolated databases and custom domains suit agencies. Open and click tracking report engagement in real time.
Plunk
Plunk consolidates transactional emails, marketing campaigns, and drip automation into one platform riding AWS SES at roughly one-tenth of a cent per message, with zero per-contact charges regardless of list size. The Turborepo monorepo architecture separates the Express.js API server (handling REST requests with Prisma ORM against PostgreSQL) from a dedicated BullMQ worker process that consumes email, campaign, and workflow jobs independently for fault isolation and horizontal scaling. Transactional emails support HTML bodies, template variable substitution via React Email components, attachments, and custom headers with dedicated SMTP relay on ports 465 and 587 for integration with existing frameworks. The campaign system sends newsletters and product updates to full contact lists or dynamically segmented audiences based on contact properties and behavioral events, with scheduling, A/B testing, and performance tracking for opens, clicks, and bounces. The workflow automation builder creates event-triggered sequences with delays, conditional branches, and webhook steps for lifecycle campaigns like onboarding drip sequences and re-engagement flows. Contact management stores unlimited contacts with custom data fields, CSV import, full activity history, and dynamic segmentation. Custom domain verification with DKIM and SPF ensures deliverability, while inbound email processing handles incoming messages with custom routing rules. Docker Compose deployment runs five containers including PostgreSQL, Redis, MinIO for S3-compatible storage, and ntfy for notifications. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. AGPL-3.0 licensed.
NotifKit
One notify() call is all your product needs to reach users on push, email, SMS, chat, and webhooks, with NotifKit deciding how and when each message travels. List the channels in the order you prefer and NotifKit tries each in turn, so a failed push quietly becomes an SMS or an email instead of a lost message. Per-user preferences, consent, and quiet hours in each user's own timezone hold non-urgent sends until morning, while critical messages such as one-time passwords travel their own lane immediately. Templates, multi-step workflows that wait days or block on events, scheduling, throttling, and deduplication all run behind that single call, defined in TypeScript and kept in your repository. Delivery logs record every attempt, and the admin dashboard shows a live activity feed, queue depth per priority lane, workflow runs step by step, and a replayable dead-letter queue. Several products can share one deployment as separate projects with their own API keys, rate limits, and data, and any service can call the REST API without the TypeScript SDK. Ask an AI assistant why a password reset never arrived by connecting the built-in MCP server to Claude Code, Cursor, or another MCP client. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
MillionSend
MillionSend is an open-source email platform you run yourself that sends transactional and marketing mail through your own AWS SES account behind a Resend-compatible API. Every message you send becomes a row in the dashboard, and every row opens into a timeline of SES events with the raw payload and the SMTP diagnostic when something bounces. Daily metrics chart sent, delivered, opened, clicked, bounced, and complained volumes against SES thresholds, and broadcasts stop on their own at five percent bounces or 0.1 percent complaints before Amazon can pause your account. Contacts live once for the whole team with custom properties and subscribe state, while segments and topics decide exactly who receives each broadcast. You compose broadcasts from reusable templates with per-contact merge fields, schedule them ahead, and cancel them while they wait. Applications that only speak SMTP send through the relay on port 2587 with an API key as the password, and HTTP integrations use idempotency keys, request logs with secrets redacted, and signed webhooks with a delivery history. Guided domain setup handles DKIM records, hard bounces and complaints are suppressed automatically, and every recipient gets an RFC 8058 one-click unsubscribe. Receiving and agent-ready inboxes are included in beta for mail sent to your verified domains. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. AGPL-3.0 licensed.