Product/Event collection

Add the SDK and Signals starts collecting.

Signals collects behavioral events from your web, mobile and server apps and checks each against its schema. There is no event stream to build first.

The real engine · no card · no sales call
The problem

Real-time projects stall on the event pipeline.

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 behavior becomes a data-platform project, and the first use case waits on it.

How it works

Events arrive validated and attributes compute on them.

We host it, or it runs in your own AWS or GCP account. Signals collects events with its own SDKs, updates what it knows within a second of each event, and answers a read in 6ms at the median and 10ms at p95, in-region.

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

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 with the reason, so attributes compute only on events that pass.

03 · Available

The event is in the stream and in your warehouse.

Live attributes update in <1s from the event arriving. The same event is written to Snowflake, BigQuery or Databricks for history, so streaming and batch see one record.

Web, mobile and server appsone SDK for each of web, iOS, Android, React Native, Flutter, Node.js, Python, Java, Go, Ruby and .NET
Snowflake, BigQuery or Databricksreceives each validated event for history, or run streaming only
A Snowplow pipeline you run todayis read by Signals as it is, with no second tracker to add
Works with
  • Snowflake
  • BigQuery
  • Databricks
  • AWS
  • Google Cloud
Capabilities

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

01

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

02

Define the events and fields your product needs. 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.

03

Device, geography, referrer and campaign fields are added to each event before it reaches an attribute, so you do not join them in later.

04

Consent is recorded with each event at the collection point, before anything is computed or served. In your own cloud, collection, validation and enrichment run inside your account.

Event collection

Frequently asked questions.

We already collect events with another tool. Do we have to replace it?

No. Signals computes on events collected by the Snowplow SDKs, so you add one beside the tracker you run now, and that tool keeps working as it does. If you already run Snowplow, Signals reads the pipeline you have.

Do we need Kafka or an event stream of our own?

No. Collection is built into Signals. The SDK sends events to a collector that validates and enriches them, and attributes compute on the result, so there is no stream to build or run before your first attribute.

What happens to events that fail validation?

Each one is set aside with the reason it failed, such as a price sent as a string where the schema expects a number. Events that fail do not reach an attribute, so a broken release does not change what your app reads from Signals.

Can we keep using our warehouse?

Yes. Signals writes each validated event to Snowflake, BigQuery or Databricks with the same event_id the live attributes computed on, so analysis and model training read the records production used. Streaming-only deployments are supported if you do not want a warehouse.

Start collecting, then define one attribute.

Connect the Snowplow MCP server and let your coding agent do the instrumenting. Then define one attribute and watch it update as you use your own product. The free tier runs on the real engine: no card, no sales call.