Privacy
Short version: anonymous usage counts, no cookies, no recordings, never your project content. Every part of it can be turned off.
The website (cozyclay.org)
The site uses PostHog (US Cloud) for anonymous usage analytics and Cloudflare Web Analytics for page counts. There are no cookies and no session recording, and Do-Not-Track is respected. PostHog keeps a random pseudonymous identifier in your browser's localStorage so returning visits can be counted; it is never linked to an account or to anything you make, and clearing site data removes it. Country comes from ingest-time GeoIP only; no precise location is collected.
The in-browser playground on the home page runs the studio inside the page. It does not read or write your saved scenes, and nothing you build there leaves your browser unless you download it.
The npm package (npx cozyclay)
The official npm package measures anonymous first launches, sessions and an in-app usage funnel on
its local studio. It stores one random installation identifier in ~/.config/cozyclay/state.json
so returning use can be counted across ports and browser storage resets. Prompt text, asset names,
file names, project content, local paths and any user-entered text are never collected. Session
duration and action counts are bucketed. Source checkouts, forks, development servers, CI and tests
send nothing.
The package prints this disclosure once on first launch. Control it at any time:
cclay telemetry status
cclay telemetry off
cclay telemetry on
COZYCLAY_TELEMETRY=0 or DO_NOT_TRACK=1 disable collection for a launch. The
topbar toggle inside the studio changes the same setting and removes the installation identifier.
Events collected
| Event | Purpose |
|---|---|
| install:first_launch, app:session_started, app:session_ended | Counting installs and sessions; duration and action counts are bucketed |
| feature:used | One signal per feature per session |
| $pageview, scene:created, scene:loaded, craft:first_action, activation:completed | Funnel and drop-off analysis |
| project:saved, project:opened | Whether people keep their work (object counts and ages are bucketed; never names or paths) |
| motion:backend_state, motion:generate_blocked, motion:job_started, motion:job_succeeded, motion:job_failed | Motion generation reliability |
| export:blocking_frame_succeeded, export:video_succeeded | Export reliability |
| playground:opened, playground:first_action | Whether the home-page playground gets used |
| hosted:composer_viewed, hosted:login_started, hosted:ticket_created, hosted:result_opened, hosted:opened_in_studio | Hosted demo funnel |
Each event carries an origin kind (local or hosted), a coarse operating-system label and, for npm sessions, whether the install was npx or global. PostHog's free plan retains events for one year.
The hosted demo (Google sign-in)
The hosted motion demo asks you to sign in with Google so that the daily generation cap can be enforced per account. It receives your Google account's email address and basic profile only, stores a session cookie signed by our server, and keeps your prompt and the generated result for up to 30 days so the ticket link keeps working. Results are stored on Cloudflare R2 and deleted after that window. The demo does not post to your account or read anything else from it. Cloudflare Turnstile is used to block automated submissions.
Your rights and contact
Nothing collected is tied to a person, so there is nothing to look up by name; opting out and clearing site data is the complete remedy. For anything else, open an issue on GitHub or email doyunha16@gmail.com.