Main features
- Campaigns to all contacts, a saved segment or an inline filter, sent now or scheduled
- Event-driven workflows with waits, branches and webhooks
- Dynamic and static segments based on contact data and email activity
- Drag-and-drop or HTML templates with Liquid personalization
- Transactional email API and SMTP relay
- Hosted unsubscribe and preference pages
- Open and click tracking that can be limited to marketing emails or disabled
- CSV contact import with custom fields
- Inbound email on verified domains
- Webhooks and an email verification endpoint
What Plunk does
Plunk is an email platform aimed at software products. It handles three jobs in one place: transactional email sent from your application through an API or SMTP relay, marketing campaigns to your contacts, and workflows triggered by events. Its developers compare it with SendGrid, Resend and Mailgun rather than with newsletter tools, and that is the right way to think about it.
Contacts are usually created by your application through the API, from events it tracks, or by CSV import. Segments can be dynamic or static and use contact fields as well as email activity, such as who opened or clicked. Campaigns go to all subscribed contacts, a saved segment or an inline filter, immediately or at a scheduled time, and report delivered, opened, clicked and bounced counts.
Workflows are graph based. They start from an event your app sends, from a contact entering or leaving a segment, on a schedule or manually, and can wait, branch on conditions and call webhooks, so onboarding sequences and lifecycle emails can be automated.
Tracking and unsubscribes
Open and click tracking has three modes: on for all email, on for marketing email only, or off. Plunk hosts unsubscribe, resubscribe and preference pages with localization, so recipients can manage their subscription without you building those pages. The documentation does not describe a signup form builder or a double opt-in flow; collecting consent is left to your application.
Self-hosting Plunk
The self-hosted version runs with Docker Compose, which brings up the API, the web dashboard and supporting services including PostgreSQL 16, Redis 7 and MinIO for file storage. Sending relies on Amazon SES, so you need an AWS account with an IAM user for SES. The setup also expects a domain with several subdomains for the dashboard, API, documentation, landing page and optional SMTP relay. Services can be split, for example to run a worker-only container. On self-hosted instances, the marketing-only tracking mode needs an SES configuration set without tracking.
Hosted version
The developers run a hosted version at useplunk.com. It has a free tier with a monthly sending allowance and a Plunk-branded footer on marketing emails; beyond that, billing is usage-based per email with no monthly fee.
Limitations
Self-hosted sending depends on Amazon SES. Plunk is built for product email, so it has no signup forms, newsletter archive or publishing features, and writers and publishers will find it the wrong shape. Self-hosting involves several services and subdomains, which is more setup than a single-binary tool such as listmonk.
Who it suits
Plunk suits developers and SaaS teams who want one open source system for password resets, receipts, onboarding sequences and product announcements, with an API at the center. Organizations whose main need is a newsletter with signup forms should look at Keila or listmonk, and those who need marketing automation for leads at Mautic.
Technical details
Self-hosting needs
- PostgreSQL
- Redis
- MinIO
- Amazon SES
Built with
- TypeScript
- Node.js
- Next.js
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.