Frameline counts copies, and it counts what happens to the code after you copy it. That second part is only possible because the payload you copy contains Frameline URLs — a manifest link, and hosted media. When your editor, agent, or browser resolves one of those, we see a request. Nothing is hidden in the code, and nothing runs on your machine to report back.
What is recorded
| Event | When | What it carries |
|---|---|---|
| copy | You press Copy prompt or Copy code | Slug, which path, whether you own it, a random copy id |
| registry_fetch | Something resolves /r/{name}.json | Slug, copy id, User-Agent, hashed IP |
| asset_fetch | Hosted media loads from /a/… | Slug, file, copy id, User-Agent, hashed IP |
| order / subscription events | Checkout, renewal, refund, cancellation | Email, plan, amount |
The copy id is a random string minted per copy. Its only job is to link a copy to the fetch it later causes, so we can tell which materials get used rather than just clicked. It is not derived from your account, and signed-out copies stay anonymous.
IP addresses
Raw IP addresses are never stored. They are salted and hashed on arrival, and only the truncated hash is written, which supports abuse triage and rough unique counts without being reversible.
User agents
We classify the User-Agent into a tool — Cursor, Claude Code, Copilot, Windsurf, a shadcn CLI run, a plain browser — and keep the raw string so new tools can be recognized later. We do not fingerprint beyond this.
Opting out
Self-host the assets. Download the media, drop it under your own public/ directory, and replace the Frameline URLs in the copied source with local paths:
// before
<video poster="https://frameline.ai/a/screens/spaceman-moon/poster.png?c=…"
src="https://frameline.ai/a/screens/spaceman-moon/hero.mp4?c=…" />
// after — self-hosted, no requests to Frameline
<video poster="/screens/spaceman-moon/poster.png"
src="/screens/spaceman-moon/hero.mp4" />Deleting the manifest comment at the top of the copied file removes the other link. Neither change affects your license or how the component behaves.
What we never collect
- Your source code, project names, or file contents.
- Anything from your editor beyond the User-Agent it sends.
- Raw IP addresses.
- Third-party analytics — no data is sold or shared.
Questions or a deletion request: /contact. Licensing terms are separate and live at /docs/licensing.