Your choice is saved in your browser.
Trust & Safety
How this site is configured. If you spot something we've missed, tell us — we'd rather know.
All traffic encrypted via TLS. HTTP auto-redirected to HTTPS.
Active on NetlifyContent Security Policy headers are configured to restrict which scripts the browser will run.
ConfiguredWeb3Forms honeypot on the contact form, plus provider-side submission rate limiting.
ActiveContact messages routed via Web3Forms. Our Gmail never exposed in code.
Via Web3FormsAll waitlist signups and messages routed through Web3Forms encrypted API. Your email address is delivered directly to our team inbox — never stored in a public list.
Via Web3FormsYour theme and vibe choice saved only in your own browser. Never sent to our servers.
Browser-onlyThe Android app verifies with Google that your copy is genuine, unmodified and installed from Google Play — protecting you from tampered builds passed around outside the store.
Active in the appThe app uses Google's Firebase — the standard Google service used across Android apps — to report crashes and show which features are used. No names, emails, camera images or drill results. No advertising, no advertising ID.
Google FirebaseReport Bug packages a screenshot and debug logs on your phone. You choose what is attached, review it in your own email app, and nothing leaves until you press Send.
Only when you chooseLaserLock uses Google Play Integrity, Google's own verification service, to confirm the app on your phone is a genuine, unmodified copy obtained from Google Play. Repackaged builds circulated outside the store are a common route for malware, and this check is there to keep that off your device as much as it is to protect our work.
In practice: you need an internet connection the first time you open the app, and then periodically after that (currently every 2 days). Whenever you open the app with a connection, verification renews by itself in a few seconds — if you normally use the app while online, this happens silently and you will never see a reconnect prompt. Once it is done, the app works fully offline for the rest of that window, so you can train at a range, in a shed or anywhere with no signal. Heading somewhere with patchy or no signal? Open the app before you leave, while you still have internet; once the check completes you can close it and train offline on arrival. If the window runs out while you are offline, the app will ask you to reconnect once before continuing, and a quiet reminder appears before that happens. On free and beta versions, the only usage figure the check sends is the number of training hours used, so your allowance stays accurate. Paid subscriptions include unlimited training hours, so the check sends no usage figure at all. The check never sends drill results, scores or session details.
The check involves no account and no personal information. What travels is Google's verification result and a one-way coded identifier for the device — never your name, email, location, training data, or anything from your camera. Camera frames are processed on your phone and discarded; in everyday use they are never uploaded. The only exception is a screenshot you choose to attach to a bug report and send yourself. Everything Google handles is covered by Google's own privacy terms, and our side is set out in the Privacy Policy.
During the closed beta a 10-hour training allowance applies until it is used or the app is released, whichever comes first. It counts only live drill time (not menus, settings, pauses, reviewing results or rest between sets), and unused hours don’t carry over to the released app. Remaining time is shown inside the app. See the Beta page for detail.