Privacy
Your training stays yours.
Guppy is local-first by default. This explains what stays on your device and what leaves only when you use optional services.
Updated: August 22, 2026
Short version
Local-first training
Workout history, progression, routines, programs, timers, and workout media stay on your iPhone by default.
In-app analytics is opt-in
The direct PostHog SDK only starts after you enable the Analytics toggle in Settings, though RevenueCat may still send subscription lifecycle events server-side.
Attribution is permission-based
AppsFlyer receives its installation identifier and a signed-in app user ID when available. If you allow Apple's tracking prompt, it may also use advertising device identifiers across apps and websites.
Onboarding can be restored
Convex stores authenticated onboarding answers, completion state, optional measurements, acknowledgments, and import or share choices so interrupted setup can resume safely.
Feedback is optional
AppFeedbackKit is used only when you submit in-app feedback or answer a feedback prompt.
Accounts stay scoped
An account is required to use Guppy. Clerk is used for sign-in and profile management, while RevenueCat receives an account-linked app user ID plus email or display name when purchases are tied to that account.
Delete from the app
Settings lets you delete your Guppy account, local training data, shared programs, cloud imports, and linked processor data without contacting support.
What stays on your device
- Workout history, set logs, timers, progression levels, and workout media are stored locally on your device.
- Custom routines, local programs, and assessment-driven training preferences are kept in local storage unless you choose to share a program.
- Daily motivation reminders, analytics consent, and other app preferences are managed locally on your iPhone.
What can leave your device when you use optional services
- Clerk receives account identifiers plus profile details such as your name, avatar, and verified email address when you sign in or manage your account.
- RevenueCat receives product identifiers, receipts, entitlement state, an app user ID, and linked subscriber attributes such as email or display name when purchases are tied to an account.
- If you opt into Analytics, PostHog receives device identifiers, product interaction data, performance data, and a first-party app user identifier directly from the app. RevenueCat may also send subscription lifecycle events and attached subscriber attributes to PostHog through its server-side integration. Session replay is disabled.
- AppsFlyer receives install, session, campaign attribution data, its installation identifier, and a signed-in app user ID when available. Convex stores the AppsFlyer installation identifier while you are signed in so account deletion can reach the matching attribution data. If you allow Apple's App Tracking Transparency prompt, AppsFlyer may also use advertising device identifiers for attribution across apps and websites.
- If you use community programs, Convex stores your claimed username and any programs you choose to publish, including titles, descriptions, schedules, routine names, exercise templates, and save counts.
- After sign-in, Convex stores your onboarding question identifiers and typed answers, schema and copy versions, completion state, optional height and weight in normalized metric units, preferred measurement system, commitment acknowledgment, video-import choice and job reference, share-offer choice and redemption state, and migration status. We use this to restore setup, personalize supported features, audit consent wording, and avoid duplicate work.
- If you import a workout from a supported public TikTok, Instagram, or YouTube link, Convex, Apify, and Replicate process the source link, temporary downloaded video, available captions, creator and platform attribution, and generated workout draft. Full source videos are temporary and deleted from workflow storage after processing.
- If you choose a cloud body scan from the Scan tab, Convex and OpenAI process your prepared image and training context to produce a fitness report. Body scanning is optional and is not part of onboarding.
- If you send in-app feedback, AppFeedbackKit receives your answers, skipped questions, free-text responses you choose to send, app version, device model, OS version, locale, foreground time, launch/session counts, active App Store subscription identifiers when available, and a random app-specific device identifier used to deduplicate responses.
- If you email support, we receive the message and any attachments you send.
How we use your information
Guppy uses local data to generate workouts, preserve your progression path, and restore unfinished sessions. Clerk is used for account sign-in and profile management, RevenueCat is used for entitlements and configured offers, PostHog is used for opt-in product analytics from the app plus subscription lifecycle analytics sent by RevenueCat, AppsFlyer is used for install attribution and campaign measurement, and Convex is used for authenticated onboarding restoration, community programs, cloud body scans, secure video-import jobs, monthly import accounting, and proxying in-app feedback requests. AppFeedbackKit is used to collect optional feedback so we can improve the product.
Your choices
- Use the app with an account, active trial or subscription access, or limited free access after a trial or paid subscription ends.
- Turn Analytics on or off anytime in Settings.
- Allow or deny Apple's tracking permission for attribution in iOS Settings.
- Enable or disable daily motivation reminders from Settings.
- Dismiss feedback prompts or choose not to submit feedback.
- Skip optional height, weight, video-import, and friend-sharing steps during onboarding.
- Reset local history and progression from Settings, or delete the app to remove local data.
- Unshare community programs from the app. If you need help with a claimed username or shared content, email support.
- Permanently delete your account from Settings > Account. Guppy removes the current account's local training data and media, starts deletion of account-linked Convex data and community posts, and sends deletion requests to RevenueCat, PostHog, and AppsFlyer. Apple subscriptions continue until you cancel them through your Apple ID. If you used Sign in with Apple, remove Guppy afterward from iPhone Settings > your name > Sign in with Apple, or at account.apple.com.
Data retention and security
Local data is protected by your device security features. Account, onboarding, purchase, analytics, attribution, community, import, scan, and support data is sent over secure connections and retained only as long as needed to operate the service, restore state, reconcile usage, resolve support issues, or meet legal obligations. Full videos downloaded for import are temporary. Account deletion starts immediately but provider deletion can take additional time. After completion, Guppy keeps only a one-way account hash and deletion timestamps to prevent a deleted cloud identity from silently returning. AppFeedbackKit uses an anonymous app-specific identifier instead of your Clerk account; deletion resets that identifier locally, and earlier anonymous feedback cannot be matched to the Clerk account. Guppy does not show third-party ads in the app.
Kids and eligibility
Guppy is built for people physically capable of performing bodyweight exercise. We do not knowingly collect personal information from children under 13. Parents should supervise any child using a fitness app.
Need a direct answer?
For export help, deletion support, or shared community program questions, email us.
Email support@followusai.com