Dittofeed

automationsmall business

Open source customer messaging automation platform. Build event-triggered journeys for email, SMS, push, and webhooks — a self-hostable alternative to Braze, Customer.io, and Iterable without the per-MAU pricing

#email#messaging#customer-engagement#journeys#automation#self-hosted

Quick Start

git clone https://github.com/dittofeed/dittofeed && cd dittofeed && cp .env.example .env && docker compose up -d

Overview

Dittofeed is an open source customer messaging automation platform — the self-hosted answer to Braze, Customer.io, and Iterable. You send user events and properties to Dittofeed, define journeys that respond to those events, and it handles the orchestration of personalised messages across email, SMS, push notifications, and webhooks. The billing model of the commercial alternatives — typically per monthly active user — goes away when you self-host.

The core primitive is the journey. A journey is a visual flow that defines what happens when a user matches a certain condition: enters a segment, performs an action, or reaches a specific point in their lifecycle. From there, you add steps — wait a day, check whether the user has done something, send an email if they have not, branch based on their subscription tier. The builder handles branching logic, delays, and conditional splits in a drag-and-drop interface.

Segment compatibility makes migration more practical than it might otherwise be. Dittofeed accepts the same identify and track event schema that Segment uses, which means any instrumentation already built for a Segment pipeline can feed Dittofeed directly without schema changes.

The infrastructure requirement is the main consideration for self-hosting. Dittofeed runs on a stack of PostgreSQL, ClickHouse for analytics queries, and Kafka or Redpanda for event streaming. This is meaningfully more complex than deploying a single-container email tool. It reflects Dittofeed’s ambition — handling high-volume event streams reliably — but it is worth evaluating against simpler options like Listmonk if your use case is primarily broadcast email rather than behavioural lifecycle messaging.

Dittofeed: Pros & Cons

Pros (The Wins)Cons (The Friction)
Visual journey builder:
Multi-step, branching flows
based on user events.
Heavy stack:
ClickHouse, Kafka, PostgreSQL
all required.
Segment-compatible:
Same event schema;
easier migration.
No built-in ESP:
Bring your own email
and SMS provider.
MIT, no MAU fees:
Volume limited by your
infrastructure, not pricing.
Younger platform:
2.8k stars; feature depth
still maturing.
Multi-channel:
Email, SMS, push, and
webhooks from one journey.
Complex self-hosting:
More moving parts than
simpler email tools.

Use Cases

Specific ways to use Dittofeed for your workflow.

01
Trigger a welcome email sequence when a user signs up, followed by feature onboarding messages based on what they have and have not done
02
Send a win-back campaign to users who have not logged in for 30 days, personalised with their last activity
03
Build a trial-to-paid conversion journey that sends different messages depending on whether a user has activated key features
04
Replace a paid Customer.io subscription for a SaaS product where per-MAU costs have grown faster than revenue

Deployment Strategy

Recommended ways to host Dittofeed in your own environment.

docker
self-hosted