SwingShadow

Privacy Policy

Effective August 10, 2026

SwingShadow ("the app") is a tennis swing analysis app by Matthew Lee ("we", "us"). This policy covers the Android version distributed through Google Play: what the app does with data, and the choices you have. Write to matthewlee0725@gmail.com with any questions.

The short version

Data processed on your device

The app asks the Android system for read-only access to each video you import. It does not copy, modify, move, or delete your video files; they stay where they are in your gallery or storage.

From the video, the app computes and stores the following in its private storage on your device:

This data stays on your device unless you share a clip (next section). Delete a video inside the app and the app deletes its analysis; uninstall the app or clear its data and Android removes all of it.

Optional sharing of swing clips

Correct a misdetected swing and the app offers a checkbox: "Upload a video clip of this swing to help improve detection." The app uploads nothing unless you tick that box, and the tick covers that one swing only.

Tick it, and the app uploads the following over an encrypted (HTTPS) connection:

A shared clip is ordinary video: it may show you, and it may show other people on court. Share only clips you are comfortable sharing and have the right to share.

What shared clips are used for

We use shared clips for one purpose: improving SwingShadow's swing detection. We review them and use them as training and evaluation data for the detection models. We do not use them for advertising or profiling, do not publish them, and do not sell or pass them to anyone for their own use.

Where shared clips are stored

The app uploads to our API at api.swingshadow.app. Cloudflare, Inc. (Workers and R2 storage) hosts the data and processes it only on our behalf. Cloudflare operates a global network, so your uploads may pass through data centers outside your country. No one can read a stored clip from the internet: the storage has no public read access, and the endpoints accept uploads only with an access token held by the app.

We keep standard server logs (request metadata, including the install identifier) for a limited period, for debugging and abuse prevention.

Retention and deletion

Uploads carry no identity, so we cannot match a clip to an email request. The in-app control is the way to delete your data, and it needs no proof of identity: only your installation holds its identifier.

App permissions

The app requests no access to your camera, microphone, location, or contacts, and reads no files beyond the videos you pick.

Children

SwingShadow is not directed at children under 13, and we do not knowingly collect personal information from children. The app collects nothing without a share action, stores shares without identity, and builds no profile of any user, child or adult.

Changes to this policy

If we change this policy, we will post the new version at this address with a new effective date. For changes that affect what the app shares or how long we keep it, we will update the app's consent text before the change applies to new uploads.