Skip to main content
Tell is a unified analytics platform for product events, structured logs, and business signals. Track what users do, what your app does, and what your business does — then query them together. That’s the point. Most analytics tools show you what happened. Tell shows you why, because your product metrics, application logs, and external business data live in the same place. When signups drop, you don’t switch between Mixpanel, Datadog, and a spreadsheet — you see the broken API call, the user journey, and the Shopify revenue impact in one query.

What you can do

Track user behavior. Page views, signups, purchases, feature usage, funnels, retention — the things product and growth teams need. If you’ve used Mixpanel or PostHog, this is familiar. SDKs for JavaScript, Go, Swift, Flutter, Rust, and C++. Ingest structured logs. Errors, warnings, debug info — with severity levels, service tags, and metadata. Not a sidecar. A full logging framework that shares the same SDK as your analytics, so you can correlate what users were doing when something broke. Connect business signals. Pull metrics from GitHub, Shopify, and other services on a schedule. Track repository stars, store revenue, customer counts — anything that lives outside your app but matters to your business. Query everything. SQL queries against ClickHouse. Dashboards with markdown and public sharing. CLI with live tail and instant queries. AI tools that answer questions about your data.

How it works

You add a Tell SDK to your app. It sends product events and logs to a Tell server. Connectors pull in external data on a schedule. Everything flows through a pipeline that can route, filter, redact PII, and transform data before it lands in storage. One SDK. One server. One binary.
curl -sSfL https://tell.rs | bash
tell                          # start the server
// Product analytics — what users do
tell.track('purchase', { plan: 'pro', amount: 49.99 });

// Structured logs — what your app does
tell.log('warn', 'Payment retry failed', {
  service: 'billing',
  error: 'GATEWAY_TIMEOUT',
  attempt: 3,
  user_id: 'user-123'
});
Both calls go through the same SDK to the same server. Stored separately, queryable together.

Why Tell

  • Stupid fast. 64M events/sec on batched TCP. Rust pipeline with sub-millisecond latency.
  • One binary. No containers. No Docker Compose. Runs on a VPS or your enterprise cluster.
  • Self-hosted. Your data never leaves your servers. No cloud dependency. Tell Cloud is also available if you prefer managed.
  • Connect everything. Product events, structured logs, business data. Query them together.

Who it’s for

Tell fits anywhere you have data in multiple places that should be in one.
  • Product and growth teams — funnels, retention, DAU/WAU/MAU, and dashboards you own. The analytics you’d get from Mixpanel or PostHog, self-hosted and correlated with your logs.
  • Engineering teams — debug production issues with the full picture: user events, application errors, and session context in one query.
  • Ecommerce and DTC — unify checkout funnels, Shopify orders, campaign metrics, and backend logs. Answer “what changed?” when revenue drops.
  • Industrial and OT — collect and forward logs from air-gapped networks. One Rust binary, deterministic performance, no cloud required.
  • Small teams — stop paying for four tools that don’t talk to each other.

What’s next

  • Concepts — the three data protocols and how they work
  • Quickstart — send your first event in under 5 minutes
  • What to Track — choosing between events, logs, and snapshots