Product/Event collection

Add the SDK and Signals starts collecting.

Every attribute, trigger and agent context starts with an event. Signals collects them for you, from web, mobile and server. You do not need an event stream before you begin.

14 days · no card · no sales call
Your app → Signalstrack
// your storefront, when a price is shown
trackSelfDescribingEvent({
  event: {
    schema: "iglu:com.acme/view_price/jsonschema/1-0-0",
    data: { sku: "TRL-2201", price: 92.0 }
  }
});
Illustrative. One call from the web SDK. Page views, clicks and form activity are tracked automatically; custom events like this one you define.
Signals → your app● in the stream
{
  "event": "view_price",
  "schema": "iglu:com.acme/view_price/jsonschema/1-0-0",
  "data": { "sku": "TRL-2201", "price": 92.0 },
  "user_id": "u_48213",
  "session_id": "9f3c1a…",
  "device": "mobile", "country": "GB",
  "collector_tstamp": "2026-09-14T09:41:07.212Z"
}
Validated against your schemaevery attribute that depends on it recomputes
35+ SDKs

web, iOS, Android, React Native, Flutter, server-side languages and many more.

1 schema

per event type. Checked on the way in, before anything computes on it.

0 streams

to build or run before your first attribute

The problem

Every real-time project starts with a pipeline nobody wants to build.

Feature stores assume good events already exist. A DIY build starts with Kafka, a tracker, a schema registry and a team to run them. So responding to live behaviour becomes a data-platform project, and the first use-case is quarters away.

How it works

Add the SDK. Events arrive validated. Attributes compute on them.

01 · Instrument

Add one SDK to your web, mobile or server app.

Page views, clicks and form activity are tracked automatically. Custom events are one tracking call with the fields you choose. Point your coding agent at the Snowplow MCP server and it creates your events, writes the tracking call and checks the first events arrive.

02 · Validate

Each event is checked against its schema as it arrives.

A schema is the shape you expect an event to have. Events that do not match are set aside, not silently dropped and not counted. Bad data never reaches an attribute.

03 · Available

The event is in the stream and in your warehouse.

Live attributes recompute the moment it lands. The same event is written to Snowflake, BigQuery or Databricks for history, so streaming and batch see one record.

Capabilities

Collection built in, so the project starts at the attribute.

01

SDKs for every surface

web · iOS · Android · React Native · Flutter · Node.js · Python · Java · Go · Ruby · .NET. One event model across all of them.

02

Schema-validated on the way in

You describe the shape of each event once. Anything that does not match is kept aside with the reason, so a broken release cannot poison an attribute.

03

Your own events, your own fields

Track what matters to your product, not a fixed menu. Add a field, version the schema, and old events keep their meaning. Design and instrument it from Claude Code or Cursor through the Snowplow MCP server.

04

Enriched in the stream

Device, geography, referrer and campaign fields are added to each event before it reaches an attribute. Nothing to join later.

05

One record, live and historical

The event that recomputes an attribute now is the same event your warehouse holds tomorrow. Production matches training.

06

Collected in your cloud

Events land in your AWS or GCP account, or ours. Consent and PII handling sit at the collection point, before anything is computed or served.

Collect. Define. Serve.

Connect the Snowplow MCP server and let your coding agent do the instrumenting. Then define one attribute and watch it change while you interact in real-time. 14 days, no card, no sales call.