Frame · iOS & Android — last updated 5 October 2026
Privacy Policy
Your training history is yours. Your personal journal lives on your device — on iOS it also syncs through your own private iCloud, on Android it can sync privately through your Frame account when signed in — and Frame does not sell your personal data. Optional gym features use our server: if you join a gym in Frame, the things you deliberately share with your coach are stored on our server so your coach can see them, and both platforms automatically send us a minimal crash report if the app fails (see below). This page spells out exactly what that means. There is no advertising tracking. Crash reports are described below; we do not send private journal text for product analytics.
The short version
- Your personal journal — sessions, techniques, recall — lives on your device. On iOS it syncs across your own devices through your own private iCloud account; signed-in Android users can sync their journal through Frame’s private account-scoped service. Without an account, Android records stay local.
- On iOS, voice logging is transcribed and understood entirely on your device; audio and transcripts never leave your phone. Android also supports on-device voice logging where the device and speech service support it; manual entry is always available.
- Gym features are optional and also use a Frame server: joining a gym creates an account — email + password, or Sign in with Apple/Google — and shares specific things — class reviews, check-in answers, messages to your coach — with that gym. Your gym's schedule, academy rules and coach-set curriculum also live on that server so every enrolled member can see them. Details below.
- Both apps automatically send us a minimal crash report if something fails — see "Crash and diagnostic reports" below.
- We use no third-party analytics, advertising, or tracking SDKs — in either app or on this website.
- You can delete everything any time; a copy of anything we hold is one email away.
Where your logs live
Frame saves training locally on both platforms. On iOS, supported iCloud configurations can sync the journal through your private CloudKit database. On Android, signed-in users also use Frame’s account-scoped sync service: session records, study entries, recall events, game plans, injuries and profile records are sent to our server for backup and cross-device reconciliation. These records may include the private notes you enter. Personal use without a Frame account stays local. Frame account sync does not grant coaches access to your private journal. Neither platform’s local storage alone guarantees recovery after device loss; export your data and check your supported sync settings.
Gym features — what your coach sees
Joining an academy is optional. Academy sharing is separate from your private account sync: joining does not give coaches access to your personal journal. When you join a gym you create an account — either with an email address and password (the password is stored only as a secure hash; sign-in tokens are also hashed at rest) or by using Sign in with Apple or Sign in with Google (see below) — plus a display name for your gym's roster. From then on, these specific things are shared with that gym's coaches:
- Class logs you post to the gym — which class you attended, your rating, and any written review comment.
- Check-in answers — the periodic "how's training going" pulse. Your coach sees the room's numbers, not your name against an answer.
- Messages — what you write in your private coach thread and on the gym's boards and community rooms.
- Badges and report notes your coach writes for you.
- Injury areas, anonymised — and only if you opt in. Logging an injury shares nothing by default; a per-injury toggle lets you count the body area (just the area) into a gym-wide trend, e.g. "3 members logged knee issues this month", shown only when enough members share it that no one is identifiable. Severity and notes remain private journal records and follow the personal sync rules above; coaches do not receive them through this trend.
- Your device’s push notification token — on supported iOS and Android devices, so a coach message or badge can reach you when you allow notifications.
Separately, your gym's coaches publish a class schedule, academy rules and a coach-set curriculum (authored through Frame Studio) — these also live on Frame's server so every enrolled member of that gym can see them; they're gym content, not personal data collected from you. This gym data — yours and your gym's — is stored in Frame's database (hosted with Neon) and is visible only to you and your gym's coaches (or, for schedule/rules/curriculum and shared boards, your fellow enrolled members) — never to other gyms, and never to advertisers. Your private personal training journal follows the storage and sync rules described above — the gym only ever sees what's listed above. Leave a gym (or ask us) and we'll remove your gym data — email us at the address below.
Voice logging
The iOS app can log a session by talking. Two things happen and both stay on your phone. The audio is transcribed on your device using Apple's on-device speech recognition, so the recording itself never leaves your phone. The transcript is then turned into a structured session on your device too — using Apple Intelligence where your hardware supports it, and a built-in offline parser otherwise. Nothing is sent to Frame to do this, which is why voice logging works in a basement gym with no signal. iOS asks for microphone and speech-recognition permission only for this feature; you can decline and type instead. Android also offers voice logging and requests microphone permission when you choose it. It uses supported on-device speech recognition; availability depends on your phone and speech service. If unavailable or permission is denied, manual logging remains available. The resulting transcript is parsed into a draft on the device for you to review before saving.
Sign in with Apple & Sign in with Google
Sign in with Apple (iOS) and Sign in with Google (iOS and Android) are optional alternatives to an email-and-password account for the gym features described above — using one creates or opens your gym account the same way a password would, it isn't a separate, purely-local layer. We verify the token Apple or Google gives the app, then store a stable, one-way account identifier from them (not your password, since there isn't one) against your Frame account, plus your email address if Apple or Google shares one with us. If you choose Apple's Hide My Email, we only ever see a private relay address, never your real one; Frame never receives your Apple or Google password. We don't build an advertising or marketing profile from either, and neither identifier is used for anything beyond signing you in.
Payments
Personal Free remains available without payment. Optional Personal Plus subscriptions use Apple’s or Google’s native purchase flow when available; the store handles your card and payment details. To verify and reconcile access, we send signed transaction proof or a purchase token to Frame’s server and check it with the relevant store. We retain an encrypted purchase identity, product, expiry, provider state and billing period, with a hashed identity for deduplication. These records are separate from your journal and do not grant coaches access to it. We do not send purchase proofs to crash-reporting services. Inactive verification records are removed after 90 days beyond expiry; provider invoice, refund and legal records follow the provider’s and applicable accounting retention rules.
Academy subscriptions are billed through Stripe outside the consumer app. Current offers and availability are shown on Pricing; existing written agreements retain their agreed terms. We never receive full card details. Store subscriptions and Academy subscriptions are separate.
Crash and diagnostic reports
Frame (iOS and Android) uses Sentry, a crash-reporting service, to automatically send us a technical report — what code was running, and the sequence of steps that led up to it — when the app crashes or hits an unexpected error. This happens automatically, not only when you choose to send one. It's kept deliberately minimal: no screenshots of your screen, no view hierarchy, and none of your personal information is attached by default — we configure Sentry not to collect either. Sentry acts as our processor for this data alone, and never sees anything else Frame handles.
Security logging
If you use the gym features, we keep a security log of account activity — sign-ins, password resets, role changes, invites, and similar — recording what happened, when, and the IP address it came from. This exists to detect and investigate misuse (a stolen password, an account takeover attempt), not to track you day to day; it's never shown to coaches or other members, only used internally if something looks wrong. We keep it for a minimum of 365 days for that reason, even past a request to delete your account, then remove it.
Analytics and tracking
Frame has no advertising SDK or cross-app advertising tracking. Product usage measurement is optional and off by default. If you enable it, Frame sends a random installation identifier, platform, app version, source category and event day for fixed actions such as saving a log, completing recall or saving a weekly focus. The server hashes the installation identifier and retains counters for up to 90 days. We do not send technique names, notes, injuries, private messages or your Frame account identifier through this measurement flow. Turn it off in Usage measurement on iOS or Personal Plus on Android: collection stops and Frame requests deletion of the installation’s uploaded counters. Offline requests retry when the app reconnects. The website does not use advertising tags or third-party analytics.
Your copy, and deletion
Export your personal journal from the app. For Frame account data we hold, including account-scoped Android sync records, you can request a copy or deletion by emailing us. The in-app account-deletion flow removes server account records and clears this device’s journal; export first if you want to keep a copy. The web account-deletion page supports email/password accounts. Deleting the app removes local data but does not automatically cancel subscriptions or delete server/iCloud copies. Manage iCloud data through Apple settings and subscriptions through the relevant app store. Contact us for account data requests; we respond within one month.
Children
The Frame app is not directed at children under 13 and we do not knowingly collect personal information from them directly. This launch offer is for adult Personal use and adult-focused academies. Kids features are not included in the current public offer. It's used through a child's gym under the gym's and a parent's supervision: it sits behind a parent gate in the app, and the gym-side records it involves — badges a coach awards and weekly report notes — are written by the coach and visible to the coach and to the account holder. If you believe we hold information about a child that shouldn't be there, email us and we will delete it.
Changes to this policy
If we change how Frame handles data — for example, if we ever introduce an optional feature that sends data off your device — we will update this page and change the date at the top before that feature ships. Continued use after a change means you accept the updated policy.
Who we are
Frame is made and published by cybercyber ltd, a company registered in England and Wales — the data controller for the purposes of UK GDPR. For local-only use your journal stays on your device, with private iCloud sync on supported iOS configurations. Signed-in Android account sync sends the personal records described above to our server. For the optional gym features, we hold the account and gym data described above, use it only to run those features, and delete it on request.
Contact
Questions about your data? Email hello@cybercyber.ai and a human reads it.