The RudderStack alternative: managed collection, destinations in code, your own warehouse.
Change the data plane URL in your RudderStack SDKs and every event lands in your own warehouse, on your own domain, with collection run for you. Destinations and transformations become code you own, beside the company database and apps that use them.
- One setting changes in RudderStack
- Your history comes over
- Collected on your own domain
- First version in two weeks, at a fixed price
SegmentStream collects the events your RudderStack SDKs already send into a warehouse you own, by changing one setting, the data plane URL. Collection is run for you, destinations become code in your repository, and the same workspace holds the company database and the apps that use the data. Stay on RudderStack if its destinations catalogue is what you rely on; move if you want collection run for you, next to everything else.
Stay on RudderStack if
- You rely on RudderStack's catalogue of ready-made destinations.
- Your team is happy running the data plane itself.
Move to SegmentStream if
- You run a data plane yourself and would rather not.
- You want destinations and transformations in code your team reviews.
- You want your events beside the company database, apps and agent that use them.
We move you, if you want
Our engineers install the endpoint, serve it from your domain, bring your history over and rebuild your reports, then change the setting with you when the numbers match. It starts with a fixed-scope pilot.
Request a pilot →Last reviewed October 2026 · Sources: Loading the RudderStack JavaScript SDK, RudderStack warehouse destinations
Change the data plane URL. Nothing else.
Your tracking calls stay as they are. Only the address changes: your workspace's endpoint on collect.segmentstream.com, or the same path served from your own domain. RudderStack stops receiving the events your workspace now collects.
rudderanalytics.load('WRITE_KEY', 'https://yourcompany.dataplane.rudderstack.com');rudderanalytics.load( 'WRITE_KEY', 'https://collect.segmentstream.com/v1/e/WORKSPACE_ID/rudderstack', { configUrl: 'https://collect.segmentstream.com/v1/e/WORKSPACE_ID/rudderstack' },);Or drop the RudderStack SDK for a tracker of your own.
Your agent declares a stream in your repository and writes a small tracker for your site, sending the events your reports need. Nothing from RudderStack loads on your pages. Your track, page and identify calls become calls to the new tracker, and destinations stay code in your repository.
- Page views from the browser; requests and form submissions from your own server, with the IP address and user agent.
- A first-party cookie set by your own server on your domain, so it keeps its full lifetime.
- Bots and AI agents classified, sessions built and leads attributed, as models in your repository.
- This website is measured this way, with a tracker our own agent wrote.
from segmentstream.events import Stream, auth, protocolstreams = ( Stream( key="web", auth=(auth.WriteKey(), auth.Origin(("https://www.yourcompany.com",))), protocol=protocol.Json(batch=True), ),)const endpoint = 'https://collect.segmentstream.com/v1/e/WORKSPACE_ID/web';export function track(type: string, payload: Record<string, unknown> = {}) { navigator.sendBeacon(endpoint, JSON.stringify({ batch: [{ event_id: crypto.randomUUID(), event_time: new Date().toISOString(), event_type: type, schema_version: 1, payload: { url: location.href, referrer: document.referrer, ...payload }, }], }));}track('page_view');An event stream as its events/ folder declares it: the origins it accepts, batching, and the endpoint your tracker sends to.

Swipe the screen sideways to see all of it.
What comes over, and what stays
What you bring from RudderStack, and what you keep in the tools you like.
- Every new event, from the day the setting changes
- Your history, from the warehouse RudderStack already loads, read in place
- Anonymous and user ids, so each person's history joins up
- Event names and properties as your developers sent them
- The reports your team relies on, rebuilt and compared
- Device-mode destinations: load those tags directly or through your tag manager
RudderStack alternative: what it does
Your developers keep every rudderanalytics call they wrote. There is no data plane to run: events land in your own warehouse on your own domain, and the same workspace holds the company database, apps and agent that use them.
- Change the data plane URL in rudderanalytics.load, or the same setting in your mobile and server SDKs and events start arriving in your own warehouse. No new tags, no new tracking plan.
- Raw events keep the shape the tracker sends, and one normalised events table brings every tracker into the same model.
- Collection runs on your own domain, so more of your traffic is measured.
- The destinations you relied on are rebuilt in code, and every delivery is counted.
- Your history comes over from the warehouse RudderStack already loads, read in place.
- Sessions, channels and attribution join your events to ad cost and the CRM.
- The company agent answers questions from your events, within the roles of whoever asks.
What it covers
One setting, nothing re-instrumented
Point the RudderStack tracker you already run at your workspace by changing the data plane URL. The tracking calls your developers wrote keep working.
Every event in your own warehouse →
Every event lands in your own warehouse, in the region you choose, in the shape the tracker sends it, beside one normalised events table for every tracker you run.
Collected on your own domain
Collection is served from a path on your own domain, so ad blockers and browser tracking prevention cut less of it, and your first-party cookies keep their full lifetime.
Destinations in code →
The tools you sent events to get them from your workspace: conversions to ad platforms, traits to your CRM, rows to a sheet. Each destination is code in your repository, with every delivery counted.
Sessions, channels and attribution →
Sessions, channels, conversions and attribution built on your events and joined to ad cost and the CRM, which no single analytics tool sees.
Ask the company agent →
Your team asks about traffic, funnels and customers in plain language. The company agent answers from your warehouse, with the permissions of whoever asks.
Every RudderStack concept, and where it lives in your workspace
For your engineers: every RudderStack concept and where it lives once you have moved.
| In RudderStack | In your workspace | What to know |
|---|---|---|
| Tracking calls in your code | Unchanged: the tracker sends to your workspace | Only the data plane URL changes |
| Data plane | The managed collector, on your own domain | Nothing to host, scale or upgrade |
| Event stream sources | One RudderStack endpoint in events/ | Web, mobile and server SDKs set the same data plane URL |
| Tracking plans | Versioned event schemas in events/ | Checked on every event; invalid events are kept and flagged |
| Destinations and transformations | Destinations and models in your repository | Reviewed as pull requests, each send counted |
| Warehouse destinations | Your warehouse, from the start | No sync schedule |
| Profiles | Contacts in your company database | On the same records as sales and support |
| Raw events | bronze.events_rudderstack in your own warehouse | In the shape the tracker sends, in your region |
| One model for every tracker | silver/events | Event names, ids, pages and revenue in one schema |
| Access to the data | Roles for people, apps and agents | The same roles everywhere, with no extra seats |
What you keep elsewhere, and what SegmentStream does not do
- Once the tracker points to your workspace, RudderStack no longer receives its events. Plan the switch for when your reports match.
- Device-mode destinations that load third-party scripts through the SDK. Load those tags directly or through your tag manager.
How a move off RudderStack works
Each step is a pull request in your repository or a check in the console. Our engineers can do all of it with you.
- 01
Add the RudderStack endpoint
One template adds the RudderStack endpoint, the model that normalises its events and a guide to your repository. Your agent installs it and you review the pull request.
- 02
Bring your history
Your history comes over from the warehouse RudderStack already loads, read in place, so your reports start with every month you already have.
- 03
Rebuild the reports and compare
The reports your team relies on are rebuilt on your history and compared with RudderStack, month by month, until every number matches or the difference is explained.
- 04
Serve collection from your domain
A path on your own domain is routed to the collector through your CDN or web server, so cookies keep their full lifetime and fewer events are blocked.
- 05
Change the data plane URL
the data plane URL changes in rudderanalytics.load, or the same setting in your mobile and server SDKs, a test event is sent with the real tracker, and real traffic is checked arriving in your warehouse.
- 06
Switch your team
Your team opens the rebuilt reports and asks the company agent instead. Nothing is switched off before the numbers match.
We move your analytics off RudderStack, end to end, if you want us to.
Our engineers install the RudderStack endpoint, serve it from your domain, bring your history over, rebuild the reports your team relies on and compare them with RudderStack, then change the setting with you. Or do it with your own agent and our help on call. It starts with a fixed-scope pilot.
Nothing switches until the numbers match.
Both systems run side by side. Every number your teams rely on is compared, and every difference is explained before anything is turned off.
| Metric · Sept | RudderStack | Workspace | Status |
|---|---|---|---|
| Events | 38,410,226 | 38,409,914 | explained |
| Identified users | 96,330 | 96,330 | match |
| Signed Up | 4,218 | 4,218 | match |
| Revenue | £612,480 | £612,480 | match |
- A self-hosted RudderStack data plane
- RudderStack Cloud event streams
- Transformations outside your repository
Your history comes over first and the reports your team relies on are rebuilt and compared with RudderStack. Then one setting changes, collection moves to your own domain, and every new event lands in your warehouse. We do the whole move for you if you want: see the offer below.
Enterprise, with our engineers
Our engineers install the RudderStack endpoint, serve it from your domain, bring your history over, rebuild the reports your team relies on and compare them with RudderStack, then change the setting with you.
Self-serve, with your own agent
Tell your agent you run RudderStack. It installs the endpoint and its model, prepares the first-party path for your domain and shows you the one setting to change, and segmentstream deploy puts it live.
curl -fsSL https://cloud.segmentstream.com/install.sh | shRelated solutions
Questions
Is SegmentStream Cloud a RudderStack alternative?
Yes, for collecting and owning your data. SegmentStream collects the events your RudderStack SDKs already send into a warehouse you own, by changing one setting, the data plane URL. Collection is run for you, destinations become code in your repository, and the same workspace holds the company database and the apps that use the data. Stay on RudderStack if its destinations catalogue is what you rely on; move if you want collection run for you, next to everything else.
Do we have to re-instrument our product or website?
No. You change the data plane URL in rudderanalytics.load, or the same setting in your mobile and server SDKs, and the tracking calls already in your website, app and servers keep working. No new tags and no new tracking plan. Re-instrumenting only comes in if you choose a tracker of your own instead.
Can we drop the RudderStack SDK altogether?
Yes. Your agent declares a stream in your repository and writes a tracker of your own: page views from the browser, requests and form submissions from your own server, and a first-party cookie on your domain. Your track, page and identify calls become calls to the new tracker, and destinations stay code in your repository. You can change the setting first and replace the SDK later, or do both at once.
What happens to RudderStack?
Once the tracker sends to your workspace, RudderStack stops receiving those events. That is the move, so the reports your team uses are rebuilt and compared on your history first, and the setting changes when they match.
Can we keep our history?
Yes. RudderStack already loads your events into a warehouse, and those tables are read into your workspace once. From the day the data plane URL changes, every event is collected directly.
We already have our events in a warehouse. Why move?
RudderStack moves events into a warehouse; SegmentStream adds what sits around them: the company database, apps with sign-in and roles, workflows and an agent, on the same records. Collection is run for you, with no data plane to operate.
Will SegmentStream do the migration for us?
Yes. Our forward-deployed engineers do the whole move if you want it: the endpoint, the first-party path, the history, the reports and the comparison, starting with a fixed-scope pilot. Request it on this page and your note goes to our founder, not a sales queue.
What does it cost to run?
Usage: events received, warehouse storage and queries, and the compute your pipelines and apps use. No seats and no charge per tracked user.
Who owns the data?
You do. The events sit in your workspace's warehouse in the region you choose, and the code lives in a private git repository you can clone, keep on GitHub and take with you. SegmentStream runs it.
Rather have it moved for you? Request a pilot.
Our engineers install the RudderStack endpoint, serve it from your domain, bring your history over, rebuild the reports your team relies on and compare them with RudderStack, then change the setting with you.
- One solution, on your data, in your own workspace
- First version live in two weeks
- Parity proven before anything is switched off
- Fixed scope and price, credited to your contract if you continue
Not ready for a pilot? Send the form anyway with your question. An engineer will reply, not a sales rep.
How the pilot worksBuild your company’s own software. Let agents run it.
$ segmentstream workspace create acme --region eu --subdomain acme
▸ Created workspace acme · database, warehouse and a private git repository
$ segmentstream workspace WORKSPACE-ID clone acme && cd acme
▸ your coding agent builds what your team asked for and runs the checks
$ git add -A && git commit -m "First version"
$ segmentstream deploy
▸ app, company agent, API and MCP tools live for your invited members
Our engineers build the first version on your data in two weeks, at a fixed price.
Or build it yourself with your coding agent:
curl -fsSL https://cloud.segmentstream.com/install.sh | sh