# Analytics

> Whether anyone read an artifact, on what, and whether it threw an error while they did. 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.

## Errors reach you, not just the visitor

When an artifact throws in somebody's browser, the fault is relayed back and you are told. Before that existed, an artifact that broke on a phone reported nothing to anybody, which is indistinguishable from an artifact nobody opened.

## The report is not built

**There is no per-artifact analytics page yet.** The pipeline is live and the gallery shows a view count and who is reading right now, but the screen that breaks those numbers down (over time, by device, by path) has not been built.

It is named here because a missing report and an empty report look identical from the outside, and the second one would have you concluding nobody read your artifact.

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

## The rest of it

- [Deploy](https://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://superartifacts.app/features/versions.md): Publishing moves a pointer at an immutable version. Rolling back and rolling forward are the same operation.
- [Access](https://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://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.
