Skip to main content
Autter Runtime tracks runtime errors and usage from your frontend and backend. It deliberately does not ship the full OpenTelemetry browser SDK to your users:
  • the browser gets a dependency-free, <5 KB error and usage tracker
  • your server keeps real OpenTelemetry
  • Autter Runtime’s OTLP ingester receives both and writes them to ClickHouse in a compact, per-repository data model
Fastest way to get set up — let a coding agent do it:
Then tell your agent: “use the skills to install Autter Runtime in this project.” See AI agent skills for details.

Quickstart

Go from zero to seeing data in ClickHouse in a few minutes.

Installation

Install the package for your stack — browser, Node, or Next.js.

Packages

A runnable demo lives at examples/express-app — browser tracker → relay → ingester, and the OpenTelemetry server tracker, against a Docker Compose ClickHouse.

Supported stacks

See Stack integrations for per-stack snippets, or Using Autter Runtime without npm if your service has no @autter/* package at all.

Keys: frontend vs. backend

Two credential types keep the frontend and backend cleanly separated:
When your app has a backend, prefer the relay: the browser posts to your own server, which forwards with the server key. No key ever reaches the browser, and ad-blockers can’t tell it apart from your own API traffic.

Design principles

  • Errors are 100%, everything else is sampled or aggregated. Raw error occurrences are always kept (14-day TTL); successful traces are expected to be sampled upstream (0.5–1%); usage is stored as 1-minute rollups (90 days).
  • Per-repository analysis. Every row is keyed by org_id + repository_id.
  • Privacy by construction. No cookies, no DOM, no request/response bodies, no emails, no full URLs with query strings.
  • OTLP-compatible at the ingestion layer, not inside a 3 KB browser script.
Autter Runtime is open source under the MIT license: Autter-dev/autter-runtime.