Your customers' data,
your infrastructure.

Open-source Customer Data Platform. Self-hosted on AWS.
Segment-compatible. Deploy in minutes.

terminal
$ npm i -g uniflow
$ uniflow init
$ uniflow deploy
✓ Stack deployed — ingest endpoint ready

Built on

Everything you need from a CDP.
Nothing you don't.

Event Collection

Segment-compatible track, identify, page, and group API. Drop-in replacement.

Identity Resolution

Link anonymous visitors to known users automatically with a persistent identity graph.

Unified Profiles

Merged traits and full event history. A single customer view in DynamoDB.

Audience Segmentation

Rule-based segments evaluated hourly via Athena over your S3 data lake.

Destinations

Webhook and S3 export built-in. Extensible connector SDK for custom integrations.

Self-Hosted

Deploy to your AWS account with one CLI command. Your data never leaves your infra.

Data flows through
your infrastructure

SDK
API Gateway
Lambda
Kinesis
DynamoDB Profiles + Events
S3 Raw events lake
Destinations Webhooks, S3, Custom

Start tracking in
three lines of code

app.ts
import { UnifowClient } from '@uniflow/js';

const client = new UnifowClient({
  writeKey: 'your_write_key',
  host:     'https://ingest.your-domain.com',
});

// Track an event
client.track({
  event: 'Button Clicked',
  userId: 'user_123',
  properties: { plan: 'pro' },
});

// Identify a user
client.identify({
  userId: 'user_123',
  traits: { name: 'Jane Doe', email: 'jane@acme.com' },
});
app.py
from uniflow import UnifowClient, TrackOptions, IdentifyOptions

client = UnifowClient(
    write_key="your_write_key",
    host="https://ingest.your-domain.com",
)

# Track an event
client.track(TrackOptions(
    event="Button Clicked",
    user_id="user_123",
    properties={"plan": "pro"},
))

# Identify a user
client.identify(IdentifyOptions(
    user_id="user_123",
    traits={"name": "Jane Doe", "email": "jane@acme.com"},
))
terminal
# Install globally
$ npm i -g uniflow

# Interactive setup — generates uniflow.config.yaml
$ uniflow init
? AWS region: us-east-1
? Admin email: admin@acme.com
? Retention days: 90
✓ Config saved to uniflow.config.yaml

# Deploy to your AWS account
$ uniflow deploy
✓ Stack deployed — endpoints ready

# Check status
$ uniflow status
Stack: UnifowStack | Status: CREATE_COMPLETE

From zero to CDP
in three steps

1

Install

npm i -g uniflow

One command to install the CLI globally.

2

Deploy

uniflow init && uniflow deploy

Interactive setup generates config, then deploys the full stack to your AWS account.

3

Track

client.track({ event: "Signup" })

Start sending events from your app using the JavaScript or Python SDK.

Start collecting customer data
in minutes.

Open-source, self-hosted, Segment-compatible. No vendor lock-in.