Privacy
Privacy Policy
Last updated: October 21, 2026
Rep Today is a bodyweight micro-workout app whose core workout generator and history work on your device. It needs no account and no network to generate and run a workout. Its optional AI Coach uses a network service when you choose to use it. Rep Today does not sell your data or show ads. This page explains what the app and this website collect and process, why, and how you stay in control.
1. The short version
- The core workout generator and history work fully offline and need no account. Your workout history is stored on your device.
- The optional AI Coach is a network feature. When you use it, your prompt and necessary workout context go through Rep Today's service to OpenAI to generate a response.
- When iCloud is available for Rep Today, your profile, completed workout history, and in-force session policy sync automatically through Apple's CloudKit to your private iCloud database, which Rep Today cannot read; you can manage this through your device's iCloud settings.
- The app collects anonymous, opt-out usage measurement tied to a random per-install identifier - never your name, email, or an advertising ID.
- There are no ads, no third-party trackers, no advertising identifier, and no cross-app tracking. We do not sell your data.
- You can turn usage measurement off in Settings, and you can delete your account and data from within the app.
2. Your workout data lives on your device
Rep Today generates every workout on your phone, with no network call. Your profile and your workout history are stored locally on your device. The core workout experience does not send this information to Rep Today's service.
The AI Coach described in section 6 is separate and optional. It sends only the prompt and workout context needed for the Coach response when you choose to use it. Apart from private CloudKit synchronization when iCloud is available, optional Apple Health writes, and the optional AI Coach, the only information that leaves your device is the anonymous usage measurement described in section 7 (unless you turn that off).
3. Private iCloud sync when available
When iCloud is available for Rep Today, the app automatically syncs your profile, completed workout history, and in-force session policy through Apple's CloudKit to your private iCloud database so they can appear on your Apple devices. Your active or in-progress session remains device-local and is not synced. Rep Today cannot read your private CloudKit database.
If iCloud is unavailable or disabled for Rep Today in your device's iCloud settings, the app falls back to on-device storage and the core workout experience continues to work offline. You can manage Rep Today's iCloud access and stored app data through your device's iCloud settings. Apple's iCloud terms and privacy policy govern that service.
4. Sign in with Apple
Sign in with Apple is optional and separate from the private CloudKit sync described in section 3. The app does not require it to generate or run a workout.
When you use it, the app stores an Apple-provided user identifier in your device's Keychain. The app does not collect your name or email address through this flow, and it does not use this identifier for advertising or tracking. When you delete your account (section 9), this stored identifier is removed from the device.
5. Apple Health (optional)
If you grant permission, Rep Today writes completed-workout and energy samples to Apple Health on your device. Before saving, the app checks Health for a workout carrying Rep Today's session identifier so it does not add the same completed session twice. Rep Today does not request general Health read access or read your other Health data. These samples stay within Apple's HealthKit on your device and are governed by your Health privacy settings.
iOS asks for this permission separately, and the app functions normally if you decline.
6. AI Coach (optional network feature)
The AI Coach is optional. The core workout generator and workout history continue to work on your device if you never use it.
When you use the AI Coach, Rep Today sends your Coach prompt and the workout context necessary to answer it through Rep Today's service to OpenAI for response generation. Rep Today's service keeps the OpenAI API credential off your device and passes the response back to the app.
OpenAI storage and retention
Rep Today sends Coach requests with store: false. This means the response is not stored as OpenAI Responses API application state. It does not mean that no copy can be retained: under OpenAI's standard API data controls, prompts and responses may still appear in abuse-monitoring logs retained for up to 30 days.
OpenAI does not use API data to train its models by default unless the customer opts in.
Privacy-preserving safety identifier
For abuse detection, Rep Today sends OpenAI a stable, privacy-preserving Coach safety pseudonym. It is generated independently from the anonymous usage-measurement installation identifier and does not contain your name, email address, Apple ID, advertising identifier, or another direct identifier. If you successfully delete your account, Rep Today independently rotates the anonymous usage-measurement installation identifier, rotates the separate Coach safety pseudonym, and resets your versioned Coach data-sharing acknowledgement. This prevents a later account on the same installation from inheriting the deleted account's usage-measurement linkage or provider safety history and requires the later account to acknowledge Coach data sharing separately. Deleting the app also removes the installation identifier from local storage, subject to the backup note in section 7.
Coach verification and security metadata
Rep Today's Coach service checks Apple proofs that the request comes from the app and that the premium purchase is active. Its operator-only administration path is separate from app authentication. These proofs are not sent to OpenAI or retained by Rep Today.
Rep Today's Coach service is content-stateless: it does not store your message, training summary, workout history, or reply. It retains a public device-verification key, counters, version and expiry fields, and limited replay-prevention metadata to reject reused requests. The device-verification record expires after 30 days without accepted verification activity; challenges and other temporary replay records have shorter lifetimes. This security metadata is separate from anonymous usage measurement. OpenAI's content retention is described above.
Safety refusals
If OpenAI refuses a request for safety reasons, Rep Today shows a stable safety message written by Rep Today. The app does not expose OpenAI's raw refusal text.
7. Anonymous usage measurement
To understand how the app is used and improve it, Rep Today collects a small amount of anonymous product usage data. This is sent to Rep Today's own usage-data endpoint. It is designed not to identify you.
What is collected
- A random per-install identifier - a UUID generated on the device the first time the app runs and stored in the app's local settings. It is not your Apple ID, not the iOS advertising identifier (IDFA), not the identifier-for-vendor, and not an email address. It is not linked to your identity, and deleting the app removes it (subject to the note below).
- Event names and timestamps for a fixed, pre-defined set of product events - for example that the app was installed, that onboarding started or completed, that a session started, completed, or was abandoned, and monetization steps such as a paywall being shown or a subscription starting.
- Non-identifying properties attached to those events, such as a requested session length in minutes or a generation time in milliseconds. These do not describe who you are.
What is not collected here
This measurement carries no name, no email, no advertising identifier, no precise location, and no free-text you enter. It is not used to build an advertising profile and is not shared with advertising networks.
You can turn it off
Anonymous usage measurement is on by default and can be turned off at any time in the app under Profile → Settings → Privacy. This is also disclosed on the first onboarding screen. When it is off, the app stops sending these events. Turning it off takes effect on the next event, not on the next launch.
A note on the random identifier: it is stored in the app's local settings rather than a durable system store, so it is meant to be gone when you delete the app. Because iOS device backups and device-to-device transfer can include app settings, a restore from such a backup could carry the same identifier forward.
8. What we do not do
- We do not sell your personal data.
- We show no ads and include no advertising SDKs.
- We use no third-party analytics or tracking SDKs - the anonymous measurement above goes only to Rep Today's own endpoint. OpenAI processes optional AI Coach requests as described in section 6; it is not an analytics or tracking provider.
- We do not use the iOS advertising identifier (IDFA), and the app presents no App Tracking Transparency prompt because it does not track you across other companies' apps or websites.
- We do not run a server that holds your workout history; sync uses your own private iCloud.
9. Deleting your data
You are in control of your data:
- Delete your account and data in the app. Rep Today provides an in-app account-deletion flow that removes your profile and workout history, clears the Sign in with Apple identifier stored in the device Keychain, independently rotates the anonymous usage-measurement installation identifier and the separate Coach safety pseudonym, and resets the versioned Coach data-sharing acknowledgement.
- Coach verification deletion. Account deletion also clears any saved Coach verification key identifier on your device. When the Coach verification transport is available, the app makes a bounded, signed attempt to remove its server verification record. The core app does not wait for that network attempt. If your device is offline or the attempt fails, immediate server deletion is not guaranteed; the remaining record expires after 30 days without accepted verification activity. Short-lived replay-prevention metadata may remain briefly after a successful request. Rotating the Coach safety pseudonym does not erase content already retained by OpenAI under its own retention policy.
- Delete the app. Removing the app from your device removes its local storage, including the random per-install identifier described in section 7 (subject to the backup note there).
- iCloud data lives in your own private iCloud account; you can also manage or remove app data through your device's iCloud settings.
- Turn off usage measurement at any time in Settings to stop sending anonymous events.
10. This website
This section covers this website (reptoday.app), which is separate from the app. The pre-launch waitlist on it is described in section 11.
Each time a landing page loads, and each time a waitlist sign-up goes through, the page sends Rep Today's own usage-data endpoint one anonymous count that says only which Rep Today link brought you, if any. It carries no email address and no identifier.
To remember which Rep Today link brought you while you look around the site, the page keeps that link's name in the session storage of that browser tab, which lasts only as long as the tab. This site sets no cookie of its own.
This website is static. Our hosting provider (Cloudflare) adds its own page-view analytics to the pages it serves. That, and any other processing by the hosting or email provider, is governed by that provider's own privacy terms.
11. The waitlist
This section covers the pre-launch waitlist on this website. It is separate from the app, which never asks for your email.
What is collected
- The email address you enter.
- Your answer to the question "Which sounds most like you?".
- Whether you asked for a beta invitation.
- Which Rep Today link brought you here, if any.
- The date you signed up.
- When you confirm your address, Kit also records an approximate location worked out from your internet connection (city, region, country and the map coordinates of that area). It is deleted with your sign-up.
Why
- To email you when Rep Today launches.
- To invite you to the beta, only if you asked.
- To count, without your address, which links and which routines bring people.
- To confirm your address.
How long it is kept
Until 30 days after the launch email goes out, or until you ask to be removed, whichever comes first.
How to be removed
Use the unsubscribe link in any waitlist email, or send a message to [email protected]. Marking a waitlist email as spam is treated as a request to be removed, too.
Your sign-up and answers are then deleted within 7 days.
Who sees your address
Only the founder, when sending a waitlist email, and Kit, the service that stores it for Rep Today. It is never sold or shared.
Sometimes Kit asks for a reCAPTCHA check before it accepts a sign-up, to tell a person from a program. Kit runs that check with Google's reCAPTCHA, under Kit's and Google's own privacy terms.
12. Children's privacy
Rep Today is a general-audience fitness app and is not directed at children.
13. Your privacy rights
Depending on where you live, you may have rights over personal data, such as the right to access or delete it. Rep Today keeps your workout history on your device and in your own iCloud, provides controls for anonymous usage measurement, and provides the deletion controls described in section 9. Optional AI Coach processing is described separately in section 6.
14. Changes to this policy
If our data practices change, we will update this page and revise the "Last updated" date above. Because Rep Today is pre-launch, this policy will be reviewed and finalized before the app is distributed on the App Store.
15. Contact
Questions about privacy or this policy? Contact us at [email protected].