Privacy Policy
What we collect
- Account information — email address and (optionally) display name + handedness + height. Created via email/password signup or via Sign in with Apple / Google. For OAuth users, we receive your provider-issued user ID and email but never your password.
- Swing videos and analyses — videos you record or import, plus the pose-estimation data and AI-generated coaching reports we produce from them.
- Usage data — anonymous app interaction events (screens viewed, features used, latency) so we can improve the app.
- Crash and error reports — crash stack traces and surrounding context, attributed to your account ID so we can deduplicate by user during triage.
- Push-notification tokens — if you enable push notifications, we store the device token so we can send you reminders or analysis-complete pings.
- Purchase information — if you subscribe to Pro, we store the Apple-issued original transaction ID + subscription expiry so we can grant or revoke access. We never see your card details.
How we use your data
Uploaded videos are processed on our servers using pose-estimation AI to produce a coaching report, annotated video, and practice plan. Videos and reports are stored so you can review them later in the app. Usage metadata is used solely to improve the app and to triage bugs.
Website analytics
Pages on angularsports.com record a single anonymous page-view event so we can tell which channels send people to the site and which articles are worth writing. This is first-party only — the event goes to our own servers. There is no Google Analytics, no advertising pixel, no third-party tracker, and no cross-site tracking of any kind, which is why you are not seeing a cookie banner.
- What is recorded — the page path you landed on, the bare hostname of the site that referred you (for example
reddit.com— never the full referring URL), anyutm_campaign values present in the link you clicked, a broad device class derived from your browser’s user-agent (for example “ios”, “android” or “windows”, and whether the page opened inside an app’s built-in browser), whether you tapped one of our App Store links and where on the page that link sat, and a random per-visit identifier. - What is not recorded — your name, email address, or any identifier that could single you out. Website analytics are not joined to your Angular Baseball account, and they are not used to build a profile of you.
- Where it is stored on your device — your browser’s
localStorage(keyab_acq_v1, holding only the referral values above) and a per-sessionsessionStorageidentifier. Clearing your browser storage for this site removes both, and blocking scripts prevents the event entirely; nothing on the site depends on it.
Email signup on this website
Some articles offer a form to join our mailing list, or — if you are reading on Android, which the app does not support yet — to be told when an Android version ships. These forms are entirely optional and nothing on the site depends on them.
- What is recorded — only the email address you type, plus which of the two lists you asked for and the page slug you signed up from (for example
blog-ohtani-swing-breakdown), so we know which articles are worth writing. - Where it goes — straight to Loops, our email provider (see below). Your address is not joined to website analytics events, which stay anonymous, and signing up here does not create an Angular Baseball account.
- Leaving — every email we send carries a one-click unsubscribe, and you can ask us to delete the address outright via our support page.
- We do not sell or share these addresses with anyone, and we do not use them for advertising.
Third-party data processors
The following companies process limited data strictly to operate the service:
- Railway — application hosting (account data, jobs, analytics events).
- Cloudflare R2 — object storage for swing videos and rendered analyses.
- Anthropic (Claude) — generates the AI coaching narrative for each report. We send the structured swing data and rule-based report to the Anthropic API; we do not send the raw video or your email.
- Sentry — crash and error reporting (attributed to your user ID and email when you are signed in).
- Loops — email delivery for our mailing list and product updates (holds the email address you give us, and nothing else).
- Postmark — password-reset email delivery only.
- Apple — Sign in with Apple (we receive your provider-issued user ID + email) and StoreKit subscription management.
- Google — Sign in with Google (we receive your provider-issued user ID + email).
We do not sell your data, share it with advertisers, or use it for cross-app or cross-website tracking.
Retention
Your videos and reports are retained for as long as your account is active so you can review your history and track progress over time. You can request immediate deletion of any individual swing from the app, or delete your entire account in Account → Delete Account; account deletion cascades to every video, report, analytics event, push token, and subscription record we hold for you.
Children
This app is intended for coaches and players aged 13 and older. We do not knowingly collect data from children under 13. New email signups attest that they are at least 13.
Your rights
You may request access to, correction of, or deletion of your data at any time. The fastest path is the in-app Delete Account button. You can also reach us via our support page.
Contact
Questions about this policy: support page · Terms of Use