Skip to main content

What is walkerOS

walkerOS is an open-source event data collection platform you run as code. Capture events from anywhere, transform them with mapping, and route them to any destination, all with built-in consent management.

No fragile UI configs. No vendor lock-in. Just tracking you can version, test, and trust.

It's built for analytics engineers, data leads, and developers who own analytics on a custom-built app and want to replace a duct-taped GA4 and server-side tag manager stack with a pipeline they actually control.

Try it now

Send your first event in five minutes → Quickstart

Then: send it to GA4 with mapping →

Working with an AI assistant?

Build and simulate a flow locally with the walkerOS MCP, no account needed: With an AI assistant.

Why walkerOS?

  • Open-Source: MIT licensed, free forever, no restrictions
  • Self-hostable: Run it on your own infrastructure
  • Config-as-Code: Version control, PRs, deploy with confidence
  • Composable: Mix sources, destinations, and mappings freely
  • Developer-first: TypeScript and declarative tagging, with an optional hosted app and MCP/AI-assisted management

How it works

Every walkerOS setup follows one pattern:

  • Sources: Where events come from (browser DOM, dataLayer, HTTP endpoints, custom code)
  • Transformers: Middleware that validates, enriches, routes, or redacts events before and after the collector
  • Collector: The processing engine (consent, enrichment, routing)
  • Destinations: Where events go (GA4, your API, BigQuery, any service)
  • Stores: Shared key-value storage used by transformers and destinations (caching, file serving, session state)

A "flow" connects sources to destinations through a collector. You can have one flow or many, client-side, server-side, or both working together.

The centerpiece: mapping

Mapping transforms events between stages. It's how walkerOS adapts to any source or destination format.

One transformation language works everywhere. This is what makes walkerOS truly composable.

Learn more about mapping →


Core concepts

ConceptWhat It IsLearn More
FlowSources + collector + destinations configurationFlow configuration
Event modelHow events are structured (entity action format)Event model
MappingEvent transformation rulesMapping
ConsentPrivacy controls at destination and property levelConsent management
SourcesEvent capture from browser, server, or custom codeSources
TransformersMiddleware for validating, enriching, routing, and redacting eventsTransformers
DestinationsEvent delivery to analytics, APIs, warehousesDestinations
StoresShared key-value storage for caching, file serving, and session stateStores

Two ways to use walkerOS

Both modes use the same architecture. You choose at deploy time, after your first event, see operating modes.

Integrated mode

The collector lives inside your application code.

import { startFlow } from '@walkeros/collector';
import { sourceBrowser } from '@walkeros/web-source-browser';

const { elb } = await startFlow({
sources: { browser: { code: sourceBrowser } },
});

Best for: Building into your app, full TypeScript control, dynamic configuration.

Get started with integrated mode →


Bundled mode

The collector is a separate artifact you configure with JSON.

{
"version": 4,
"flows": {
  "default": {
    "config": { "platform": "web" },
    "sources": { "browser": { "package": "@walkeros/web-source-browser" } }
  }
}
}

Then: walkeros bundle flow.json → standalone file.

Best for: Config-as-code, Docker deployments, separate tracking scripts.

Get started with bundled mode →


Deploying to production?

Already using walker.js?

Need help choosing?

💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)