# Analytics

> Who read an artifact, when, on what device and from where, on its Analytics tab. The visitor address is never stored, only hashed.

An artifact nobody can measure is an artifact you cannot improve. Two signals are collected, both derived from the request rather than asserted by the page.

## Views, and why the page is not trusted

A small beacon reports the four things only the page knows: how long it was visible, whether anyone touched it, which path, and the referrer. Device class, operating system and browser are derived by the worker from headers it observed.

That split is a security property rather than a style. The beacon runs inside a page the platform did not write, so every field it could assert is a field it could forge.

The visitor's address is the sharpest edge in the exchange, and **it is never stored.** It goes into a hash and out of scope in the same expression. Nothing returns it, logs it or keeps it.

## Every artifact has an Analytics tab

It is the tab an artifact opens on: views over 30 days with a daily trend, readers, named readers, the peak day, and a ledger of every session — who, when, which version, and from which path, device, country and browser.

Faults thrown in a visitor's browser are recorded too, though no screen shows them yet.

Read [what is collected](https://pr-739-stg.superartifacts.app/docs/analytics.md).

## The rest of it

- [Deploy](https://pr-739-stg.superartifacts.app/features/deploy.md): One request turns a folder of files into a URL somebody can open on a phone. No build step, no bundler, no configuration.
- [Versions](https://pr-739-stg.superartifacts.app/features/versions.md): Publishing moves a pointer at an immutable version. Rolling back and rolling forward are the same operation.
- [Access](https://pr-739-stg.superartifacts.app/features/access.md): Artifacts are private by default. Sharing is an explicit grant, enforced by a signature the serving worker verifies.
- [Agents](https://pr-739-stg.superartifacts.app/features/agents.md): Install what the harness expects, one key from the dashboard, and the agent deploys on its own, including agents with no shell.
