Event Tracking & CDP
RudderStack, Snowplow, Jitsu — collecting product events and routing them to warehouses and tools.
Customer Data Platforms (CDPs) and event-collection layers sit between your app and your downstream tools — tracking user behavior, normalizing it, and fanning it out to warehouses, Analytics, Reverse ETL destinations, and ad platforms. For "users on a website, what page did they visit," the simpler answer is the privacy-first analytics tools in Analytics.
Open-source CDPs
- ★ RudderStack — the open-source Segment alternative. Drop-in compatible with Segment's
analytics.jsSDKs; routes events to 200+ destinations. ELv2 + paid Cloud free tier. The default if you want "Segment but warehouse-first and self-host-able." - ★ Snowplow OSS — granular, schema-validated event tracking; stricter than RudderStack about event quality. Apache 2.0; ops-heavy but the data quality is unmatched. Powers many engineering-led data teams.
- Jitsu — open-source event collection; lighter than RudderStack; MIT; great for small teams.
- PostHog — covers tracking + product analytics in one; see Analytics. Often replaces a "CDP + analytics" combo.
Proprietary / hosted
- Segment (Twilio) — the original; paid; small free Developer plan (1k MTUs).
- Customer.io Data Pipelines, Heap Connect, Amplitude Data, mParticle — proprietary CDPs; mostly enterprise.
- Hightouch Events — Hightouch added event tracking + warehouse-first CDP in 2024.
Lightweight server-side / privacy-first
- Aptabase — open-source product analytics for desktop / mobile / web; AGPLv3; small free tier. Great for OSS apps that want telemetry without a third party.
- Counterscale — Cloudflare-Workers-native web analytics (Cloudflare Analytics Engine + Workers); MIT.
- Litlyx — lightweight cookieless analytics; OSS; smaller community.
- Tinybird Web Analytics Starter Kit — ClickHouse-on-Tinybird template for self-built analytics.
Email / CRM-specific event collection
- Dittofeed — open-source customer engagement / messaging; AGPLv3; replaces Customer.io / Iterable for self-host.
- Knock — see Notifications; not a CDP but a downstream destination.
- Inngest event stream — see Workflow Engines; often used as the durable event bus behind tracking.
Patterns to adopt
- Tracking plan first. Define event names, properties, types in a schema (Snowplow / Avo / Iteratively); reject malformed events at ingest, not in the warehouse.
- Warehouse is the source of truth. Send raw events to S3 / warehouse first, fan out to vendors second. Hightouch / RudderStack / Snowplow do this natively.
- Server-side tracking where possible. Browser SDKs are blocked or degraded by extensions and ITP; a server-side collect endpoint is more reliable.
- Identity stitching.
anonymousId→userIdmapping at signup; resolve in the warehouse, not at ingest. - Don't send PII to ad platforms. Hash emails (SHA256 + salt) for custom audiences; filter at the destination layer.
Licensing watch-outs
- RudderStack is ELv2 — fine to self-host, can't compete as SaaS.
- Snowplow OSS is Apache 2.0 (the OSS edition); newer pipeline features ship under paid Snowplow BDP.
- Jitsu is MIT — fully permissive.
- Aptabase / Dittofeed are AGPLv3 — review if you embed in a commercial product.
Pick this if…
- Default OSS CDP, drop-in Segment replacement: RudderStack.
- Highest data quality, schema validation: Snowplow OSS.
- Lightweight, MIT: Jitsu.
- You just want product analytics in one tool: PostHog (see Analytics).
- Desktop / mobile telemetry without a vendor: Aptabase.
- All-Cloudflare: Counterscale.
- Replace Customer.io with self-host: Dittofeed.