The short version: nothing leaves your device, ever, and we are not your fucking doctor.
If you grant the app camera permission, the video stream goes from your camera hardware directly to your browser's memory, where MediaPipe's pose-detection model — running entirely in your browser via WebAssembly + WebGL — extracts pose landmarks (the position of joints in 2D space) and counts repetitions. Frames are never uploaded, never stored, never seen by us. They live in your browser's RAM for a fraction of a second and are then discarded.
You can revoke camera permission at any time via your browser's site settings. The app still works for manually-counted movements without it.
Your browser's localStorage stores, on your device only:
None of this is sent anywhere. You can wipe it all in two ways: the Reset everything button in Settings, or your browser's "clear site data" / "clear cookies" option.
To run, your browser fetches:
cdn.jsdelivr.net. jsDelivr is an independent non-profit CDN, not affiliated with Google. They see a network-level request for the JS bundle from your IP. They don't see your camera frames, and they have no way to identify you across sites.We do not load anything from Google. No Google Fonts, no Google Analytics, no storage.googleapis.com, no fonts.gstatic.com. The Barlow Condensed and JetBrains Mono font files are vendored directly into the app, and the MediaPipe pose-detection model is hosted on our own CloudFront — both fetched as first-party requests from the same domain you're already on.
That's the whole network footprint. No analytics calls, no telemetry, no error reporting.
If you enable browser notifications, those are scheduled by your browser via setTimeout. We don't send push notifications from a server — there is no server.
The site sets no first-party cookies. Your browser may register a service-worker registration for offline support — that's purely a technical mechanism for caching the app shell, not for identification or tracking.
We collect nothing from anyone, so there's no special handling for users under 13 — there's no data to handle.
If we ever change how the app handles data (e.g., we decide to add a backend), we'll update this page and date it. Continued use of the app after a change indicates acceptance.
Questions about privacy? Email fuckingmove@8a9s.com.
Nothing in this app is medical advice. Nothing in this app is professional fitness instruction. The movement cues, default rep counts, hold durations, and pacing are general bodyweight-movement guidance — not personal training tailored to your specific health, mobility, age, injuries, conditions, medications, or fitness level. We have no idea who you are or what your body can or can't do.
Before starting any exercise program, talk to an actual qualified professional — a doctor, a physical therapist, a certified trainer — especially if you have any health condition, recent injury, pregnancy, or any reason to suspect a given movement might not be safe for you.
This is software. It may have bugs. Specifically:
To the maximum extent permitted by applicable law: we are not liable to you for any damages — direct, indirect, incidental, consequential, special, exemplary, or punitive — arising from or related to your use of this app. That includes physical injury, lost time, missed work, broken equipment, damaged furniture, and emotional distress.
If a court ever finds, against the foregoing, that we owe you something, our maximum aggregate liability to you is zero dollars and zero cents (US$0.00). You agreed to that when you started using the app.
We can update these terms at any time. The "Last updated" date at the top of this page reflects when. Continued use of the app after a change means you accept the new terms. If you don't, stop using the app.
These terms are governed by the laws of the State of New Jersey, United States, without regard to its conflict-of-law principles. Any dispute arising from these terms or your use of the app will be resolved in the state or federal courts located in New Jersey.
If any part of these terms is found unenforceable, the rest still applies.
Questions about the terms? Email fuckingmove@8a9s.com.