Replacing Segment with Self-Hosted RudderStack or Snowplow

Segment Connections + Engage pricing compounds with MTU volume. RudderStack, Snowplow, and Jitsu offer the same pipeline for a fraction of the cost.

By Andrii Votiakov on 2026-03-21

Segment felt like a bargain when you signed up. One SDK, all your destinations, events flowing everywhere. Then your product grew, your MTU count climbed, and Segment's pricing climbed with it. At 100,000 MTU on Connections + Engage, you're looking at $2,000-5,000/month. At 500,000 MTU, enterprise pricing territory — and enterprise pricing means a conversation you don't want to have.

Quick answer

Segment's value is the routing layer: collect once, send anywhere. RudderStack replicates this exactly with a self-hosted or cloud-hosted open-source option, typically at 60-80% lower cost than Segment at equivalent volume. Snowplow is the right choice if you want raw event streams and a warehouse-first approach. Jitsu is the fastest to self-host. Which one fits depends on how much of Segment's Engage (audience + campaign) functionality you actually use.

What you're actually paying for in Segment

Segment's pricing has two layers that compound:

Connections — event routing from your product to destinations (Amplitude, Intercom, Salesforce, your data warehouse, etc.). Priced per MTU (Monthly Tracked User). $120/month for 1,000 MTU, scaling steeply. At 50,000 MTU you're at roughly $1,200/month.

Engage — the identity resolution, audience building, and journey orchestration layer. Significantly more expensive. Adding Engage to a 50,000 MTU Connections plan pushes monthly cost to $3,000-5,000+.

Destination fees — Segment charges for some premium destinations on top of the base plan.

The MTU model is the core issue. "Monthly Tracked User" means any user who sends at least one event in a month. If you have a lot of lightly-active users, you're paying for everyone equally. A user who triggers 1 event costs the same as a user who triggers 10,000 events.

When does it tip?

The rough crossover:

MTU count Segment Connections RudderStack Cloud Self-hosted RudderStack
10,000 $120 Free tier ~$80 (hosting)
50,000 ~$1,200 ~$250 ~$150
200,000 ~$3,500 ~$750 ~$300
1,000,000 Enterprise (~$8-15k) ~$2,500 ~$700

These are estimates. RudderStack's cloud pricing is event-based, not MTU-based, which changes the math depending on your event volume per user.

The alternatives

RudderStack

RudderStack is the closest architectural match to Segment. Same concept: one SDK, multiple destinations, a control plane to manage routing. The open-source version (Apache 2.0) is self-hostable. The cloud version is cheaper than Segment and uses event-based rather than MTU-based pricing.

Self-hosted: Runs on Kubernetes or Docker. Needs Postgres (for state) and a message queue (Kafka or their built-in BadgerDB option). At moderate volumes (sub-100M events/month), a couple of medium VMs handles it fine — $150-400/month in compute.

Cloud-hosted: RudderStack Cloud Free tier handles 5M events/month. Their Growth plan is event-priced. Cheaper than Segment and includes Transformations (custom JS to reshape events mid-pipeline) on all plans.

Transformations are worth mentioning separately: RudderStack lets you write JS to transform, filter, or enrich events before they're delivered to destinations. Segment has Functions but they're gated by plan. If you're manipulating events in your application layer before sending to Segment because the product won't let you do it inline, RudderStack fixes that.

Snowplow

Snowplow takes a different philosophy. Instead of "collect once, send to SaaS tools", it's "collect once, land everything in your warehouse, query from there". Events land in Snowflake, BigQuery, or Redshift first. You then use dbt models or reverse ETL to activate that data in downstream tools.

This is genuinely the better architecture if your data team is strong and you want your warehouse to be the source of truth. It removes the Segment MTU pricing model entirely because Snowplow charges per pipeline, not per user. Self-hosted Snowplow (Snowplow Open Source) is free to run; Snowplow BDP (their managed offering) is priced per pipeline/environment.

Trade-off: Snowplow requires more data engineering than Segment. There's no "connect to Salesforce in 3 clicks". You're building dbt models and using tools like Hightouch or Census for reverse ETL. That's the right pattern at a certain data maturity level; it's not right for a team that just wants events in Intercom.

Jitsu

Jitsu is the fastest self-hosted option. Single Docker Compose file, up in under an hour. Supports most of the same destinations as Segment. Event transformation via JS functions.

It's less feature-complete than RudderStack — no native identity resolution, simpler audience tooling. But for the core use case (collect events, route to destinations), Jitsu does it cleanly with minimal ops overhead.

Good choice if your Segment usage is mostly Connections with no Engage dependency.

Amplitude CDP / Mixpanel CDPs

Worth mentioning: both Amplitude and Mixpanel have added CDP/source connectivity features. If you're already using one of them as your analytics destination, you might not need Segment at all — you can instrument directly via their SDKs and use them as the routing layer for a subset of destinations.

Not a full Segment replacement, but for smaller stacks where Segment is mostly just piping events to Amplitude + one or two other tools, it eliminates the middle layer.

Data residency angle

This comes up repeatedly for EU-based companies. Segment is US-headquartered. Events processed through Segment's pipeline pass through US data centres (or EU if you're on the Business plan with Data Residency enabled, but that's an expensive add-on).

Self-hosting RudderStack or Snowplow in EU data centres solves this cleanly. All event data stays within your infrastructure, in the region you choose. For companies in scope for GDPR — particularly those handling personal data in event streams (user IDs, email properties, behavioural data) — this is a meaningful compliance consideration.

Replacing Segment Engage

Engage is Segment's audience and journey product: build cohorts, trigger campaigns, connect to email/push/ad platforms. This is harder to replace than Connections.

Options:

  • PostHog — open-source product analytics with cohorts and feature flags. Not a full Engage replacement but covers much of the audience-building use case.
  • Braze + RudderStack — use RudderStack for event routing, Braze for lifecycle marketing. Braze is not cheap, but it's cheaper than Segment Engage for many volume profiles.
  • Custom warehouse audiences — build cohorts in your data warehouse using dbt, export via reverse ETL (Hightouch, Census) to email/ad platforms. Takes more setup but gives you more control.

If Engage is your primary use case and you use the journeys and campaigns heavily, Segment is harder to replace. Score it carefully against the build-vs-buy framework before assuming you should migrate.

The migration playbook

Week 1: Audit

Map what you're actually using:

  • How many sources (web, mobile, server-side, cloud sources)?
  • How many active destinations?
  • Are you using Engage (audiences, journeys)? Which ones?
  • Any custom Functions or Protocols (schema validation)?
  • Who in the company depends on Segment data (marketing, product, data team)?

Week 2-3: Set up RudderStack/Jitsu alongside Segment

Run dual-write: instrument your new CDP, send events to it in parallel with Segment. Let both run for 2 weeks and compare event volumes, schemas, and destination output.

Week 4: Migrate destinations

Cut destinations over one by one. Start with low-stakes ones (webhooks, your own warehouse) before touching high-stakes ones (Salesforce, Intercom, your ad platforms).

Week 5: Validate and cut over Segment

Once all destinations are confirmed working, stop sending to Segment. Keep the Segment account in read-only for 30 days.

Week 6: Cancel Segment

What you give up

  • Segment's network of 300+ native integrations — RudderStack has ~200, Jitsu fewer. Check your specific destinations before migrating.
  • Protocols (schema enforcement) — RudderStack has Tracking Plans, less polished.
  • Segment Engage journeys — no direct equivalent in the open-source world.
  • First-class support — you own the stack.

What you gain

  • 60-80% cost reduction vs Segment at most volume profiles.
  • Event-based pricing instead of MTU — fairer for products with wide user bases but low per-user event volume.
  • Data sovereignty — events stay in your infrastructure.
  • No destination limits — Segment gates destinations by plan; self-hosted has no artificial limits.

Realistic numbers

Client — B2C mobile app, 180,000 MTU, Segment Connections + Engage:

  • Segment: $4,200/month
  • Replaced with: RudderStack Cloud (Growth plan) + PostHog for product analytics
  • RudderStack: ~$600/month (based on their event volume)
  • PostHog Cloud: ~$350/month (at their usage level)
  • Migration: 3 weeks engineering
  • Total new cost: $950/month
  • Saving: $3,250/month, $39,000/year

The one thing they lost: Segment's journey builder. They rebuilt the two journeys they actually used (welcome sequence, re-engagement flow) in their email tool directly. The third journey had never triggered for a single user. Nobody noticed it was gone.


For the general framework on when to replace vs keep SaaS tools, the build-vs-buy post is worth reading before you kick off any migration project.

If your Segment bill has grown faster than your user base and you want to understand your options, book a call.