IMMORTAL
privacy

Privacy Policy

last updated 10 Oct 2026 · early access

The short version

We store your account details, the videos you upload, and what we derive from them, so the app can do its job. We do not sell your data and we do not use it for advertising. If you are 18 or over, the skeleton of a take you did not pay for also trains our own dance-motion model; you can turn that off. You can delete your uploads, and your account, whenever you like.

What we store

Account

We store your provider id from Google, TikTok or Instagram (the identifier they give us for you), plus your name, email address and avatar image URL as supplied by that provider. Instagram supplies a username and an account type instead of an email address.

Your uploads and what we derive

  • the video proxy · a downscaled copy of the footage you uploaded (we don't keep the raw original after processing);
  • the derived skeleton (a .jsonl file of joint positions per frame) and the movement metrics computed from it;
  • the rendered clips and their thumbnails;
  • your ratings and notes on clips, which tune which kinds of moments the picker chooses for you;
  • for a take that trains our model, a training copy of its skeleton, with no account, name or id in it, which goes when the take does or when you turn training off;
  • your age answer: whether you said you are 18 or over, asked once, at your first take.

TikTok and Instagram tokens

  • if you link TikTok, we store the access and refresh tokens encrypted at rest. They are used for exactly one thing: pushing a clip you chose to your own TikTok drafts. Hitting unlink in the app deletes them.
  • if you link Instagram, we store your Instagram user id, username and account type, and one long-lived access token (Meta's 60-day kind) encrypted at rest, renewed while the link stays active. It is used for exactly one thing: publishing a clip or reel you confirmed to your own Instagram account and reading back whether it went live. Hitting unlink in the app deletes it.

Where it lives

The app and its database run on Railway; video, clips and skeletons are stored in Cloudflare R2 object storage. Media is private: the app serves your files only to your signed-in account, never from a public bucket URL.

Retention · you control it

  • Deleting an upload deletes everything derived from it: proxy, skeleton, clips, thumbnails, plots, ratings, the reels cut from it and its entry on any board, and the training copies made from it; a model already trained keeps what it learned. A dance you published from it comes down.
  • We may delete inactive uploads to reclaim storage; keep your own copy of anything you want to keep.
  • Free takes train our model, by default, for adults. If you are 18 or over and did not pay for a take, its skeleton, the joint positions we already compute, trains our own dance-motion model from the moment it is made: the skeleton only, never your face, the footage or its sound. Never as content, never to identify you, never sold. We do this in our legitimate interest in a better model, and you have the right to object: turn it off any time on your account page, and your takes leave every future training set and the training copies we already made are deleted. A model already trained keeps what it learned until the next training run. Paid takes never train unless you turn on keep my movement. We ask your age once, at your first take; under 18, or if you never say, nothing trains by default.
  • The keep my movement switch is the opt-in, and it is off by default. On: we keep the skeleton of every take you make, paid ones included, and the working copy of the footage, for as long as you keep the take, to train the same model. Never as content, never to identify you, never sold. Adults only, 18 or over. Switch it off any time on your account page; a model already trained keeps what it learned until the next training run.
  • If IMMORTAL is acquired or merges, movement data you consented to keep may pass to the new owner under these same promises. So may the training copies made from free takes, under the same right to object.

Challenges · what you publish yourself

A challenge is a page you make on purpose, from one of your own clips, with its own publish press; nothing becomes a challenge on its own, and only your own uploads can. The page is public and search engines may index it. It shows that clip, the skeleton of that window (joint positions, never your face), the name you gave the dance and the handle you chose to show. Its skeleton trains our model, with every attempt at it; keep my movement is a separate switch, and keeping your movement publishes nothing.

Unpublish takes the page and its published skeleton down. The link stays reserved for you, so a caption that pointed at it works again if you publish again. When someone answers your challenge from its link, their upload records which dance it answered.

How public that answer is depends on which way in they took, and the two are different on purpose. A take made from the home with the challenge attached stays theirs and as private as any other upload. Taken with the press on the challenge's own page it is an attempt, and an attempt is public: your clip, its skeleton and its score stay on the board while the challenge does; the recording trains our model; delete your account and your entries go with it. That sentence is on the page beside the press, so nobody meets it here first.

Cookies

One cookie: a signed session cookie that remembers you're signed in. No advertising cookies, no third-party analytics trackers.

Third parties

  • Google, TikTok and Instagram (Meta) · sign-in. They tell us who you are; we don't see your password.
  • TikTok · posting clips to your drafts, if you linked it.
  • Instagram (Meta) · publishing the Reels you confirm, if you linked it.
  • Railway and Cloudflare · hosting and storage.
  • Stripe · payments. Stripe takes your card; we keep the record of what you bought.

We don't sell or rent your data to anyone, and we don't share it beyond what's needed to run the service, what the law requires, the one business-transfer case named under Retention above, or what you publish yourself as a challenge.

Deleting your account and data

Delete individual uploads from the app at any time. To delete your whole account and everything attached to it, email hello@immortal.boutique from the address on your account and we'll remove it. You can also unlink TikTok or Instagram independently, which deletes the stored tokens.

Deleting your takes, or your data from the account page, leaves the account itself and the records we have to keep: what you bought and the payment record Stripe sends us, your Aurum history, and each consent answer you gave, which is how we show we were allowed to hold what you agreed to. Deleting the whole account removes the rest.

Children

Immortal Kinematics is not for children under 13. We don't knowingly collect data from under-13s; if you believe a child has an account, email us and we'll delete it.

The keep my movement opt-in is for adults, 18 or over. We never show it as accepted for an account that has not confirmed that, and an account that has not confirmed it cannot turn it on.

Free takes train our model by default only for an account that said it is 18 or over. We ask once, at the first take; an account that says it is under 18, or never answers, is not trained by default, and we remember an under-18 answer so it is never asked again.

Changes and contact

We'll update this page as the product grows, and the "last updated" date at the top will change with it. Privacy questions or data requests: hello@immortal.boutique.