Your customers' data,
your infrastructure.
Open-source Customer Data Platform. Self-hosted on AWS. Segment-compatible. Deploy in minutes.
$ npm i -g uniflow
$ uniflow init
$ uniflow deploy
✓ Stack deployed — ingest endpoint ready Built on
Features
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.
Architecture
Data flows through
your infrastructure
SDK
Start tracking in
three lines of code
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' },
}); 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"},
)) # 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 How it works
From zero to CDP
in three steps
Install
npm i -g uniflow One command to install the CLI globally.
Deploy
uniflow init && uniflow deploy Interactive setup generates config, then deploys the full stack to your AWS account.
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.