He watches the clock, not you.
No camera. No screen capture. No file contents.
The honour system is a feature, not a gap. Nothing about your body, your screen or your code is ever recorded, and there is no code path that could start.
The hook sends a tool name and a timestamp.
That is the entire payload: which tool ran, in which session, when. Not the prompt, not the arguments, not the file paths, not the diff.
Your reps live on your machine.
The desktop app keeps everything in a local SQLite file and works offline forever. If you never sign in, nothing leaves the machine at all.
If you do sign in, only daily totals sync.
Reps, sets and minutes converted — per day, in aggregate. Never a tool name, never a project path, never a timestamp precise enough to reconstruct your working day.
Email is the only personal data on this site.
One launch email and one reminder if your pre-season streak dies. No list rental, no drip sequence. Every send carries a link that deletes your row outright — not just unsubscribes it.
There is no cookie banner because there are no tracking cookies.
Two first-party cookies exist and both are functional: one remembers who referred you so the credit lands, one remembers your handle so your round moves your own position. No third-party analytics is in the path.
The data lives on a machine we rent, in a country we chose.
Self-hosted Postgres on a single VPS behind Cloudflare. Payments are handled by Stripe's hosted checkout, so no card details ever touch our box.
Deleting means deleting.
One request removes the waitlist row, every round attached to it, and the referral code. There is no soft-delete column and no thirty-day grace period.