Skip to main content

What is walkerOS

walkerOS is event data collection 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.

Why walkerOS?

  • Open-Source: MIT licensed, free forever, no restrictions
  • Self-Hosted: Your infrastructure, your data, full ownership
  • Config-as-Code: Version control, PRs, deploy with confidence
  • Composable: Mix sources, destinations, and mappings freely
  • Developer-First: TypeScript, no GUI, declarative tagging

How it works

Every walkerOS setup follows one pattern:

  • Sources: Where events come from (browser DOM, dataLayer, HTTP endpoints, custom code)
  • Collector: The processing engine (consent, enrichment, routing)
  • Destinations: Where events go (GA4, your API, BigQuery, any service)

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 →


Two ways to use walkerOS

Both modes use the same architecture. Choose based on how you want to configure and deploy.

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": 1,
"flows": {
"default": {
"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 →


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
DestinationsEvent delivery to analytics, APIs, warehousesDestinations

Just want to try it?

Deploying to production?

Already using walker.js?

Need help choosing?

💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.