LiftCue Privacy Policy
Effective date: September 23, 2026
LiftCue ("the app") is an iOS app by Nick Onofrio. It analyzes your exercise videos with Google Gemini to give form feedback, lets you log workouts and runs, and lets you share your progress with friends. This policy explains what data the app handles, who can see it, and where it goes.
An account is optional — the app's core features work without one. If you don't sign in, nothing about you is stored on our servers; the app only sends crash and error reports to Sentry (see "Analytics and crash reports").
What we collect
Account and profile
When you create an account, we store with our backend provider (Supabase):
- Email address
- Display name
- Sign-in provider identifiers (if you sign in with Apple or Google)
- Username — the @handle you choose once. Your username and display name can't be changed after they're set.
- Profile photo (optional) — a photo you pick, resized to at most 512 pixels and saved as a JPEG. You can use one of the app's preset icons instead.
- When you accepted the community rules (asked the first time you use a social feature)
- When you accepted the Terms of Service, and which version — accepting also records that you confirmed you are 17 or older
Our backend provider also processes standard technical metadata as part of sign-in (such as sign-in timestamps and IP addresses); we don't use it for anything beyond operating the service.
Backups
While you are signed in, we back up the following so it survives deleting and reinstalling the app. Backups are linked to your account and readable only by you (unless you choose to share a workout or run — see below):
- Analysis history — the exercise, the date and time, how long the lift took, any variation you picked (including an optional note you typed), and the AI coaching result (the scores and written feedback Gemini returned). Your videos and thumbnails are not part of this backup.
- Workouts — the workout's name, its exercises and sets (weights, reps, hold times), and when it started and finished.
- Runs — the distance, your time, and when you ran.
- Workout templates — the template's name and its exercise names, set types and set counts.
Social features you choose to use
LiftCue's social features are friends-only, plus anyone you send a link to. If you use them, we store:
- Shared posts — when you choose to share an analysis, we upload its video and thumbnail to our storage (a private storage bucket, 50 MB limit per file), together with your caption, the score, the exercise name and the clip's length.
- Shared workouts and runs — sharing is off by default. A workout or run you choose to share becomes visible to your friends.
- Comments, replies and reactions (emoji) on posts and on comments.
- Friend compare cards — when you send a friend a comparison for an exercise, we store a snapshot of both people's stats for that exercise and your optional caption.
- Friend requests, friendships and blocks.
- Share and invite links — the links you create, and a record of who has opened one of your post links.
- Leaderboards don't store anything extra. They are counted from posts, comments and reactions that already exist.
Messages you send us
- Reports — when you report a post, comment, profile or compare card, we store what you reported and the reason you gave.
- Feedback — the message you write (up to 2,000 characters), the category you pick, and the app version.
Push notifications
If you allow notifications, we store a push token and a device identifier created by the app (a random ID, not your phone's hardware or advertising ID). We use them to notify you about reactions, comments and replies, friend requests, compare cards, and new posts from friends whose notification bell you turned on. We also store your notification preferences (per notification type, and per friend).
Notifications are delivered through Expo's push service and then Apple's. The notification text — for example a friend's username and the start of their comment — passes through both.
Who can see what
Here is who else using LiftCue can see your data:
- Only you: your email address, your backups (analysis history, templates, and any workouts and runs you haven't shared), your notification settings and push tokens, your blocks, the reports and feedback you send, and your list of links.
- Your friends: posts you share, workouts and runs you choose to share, and the comments and reactions you leave. A friend can also build a compare card from what you've shared with them.
- Everyone who can see a post: comments and reactions are visible to everyone who can see the post they're on — the poster's friends and anyone the poster sent a link to — even if those people aren't your friends.
- The sender and recipient of a compare card, and no one else.
- Anyone you send a share link to: a post link lets whoever opens it in the app (while signed in) see that one post — its video, caption, comments and reactions — until you delete the post or block them. An invite link lets whoever opens it add you as a friend, so only send it to people you want as friends. Links your friends make to your posts don't give anyone access to them. The web page a link opens shows none of your data.
- Everyone signed in to LiftCue (except people you've blocked or who've blocked you): your username, display name and profile photo, so friends can find you and your comments show who wrote them. If you rank in a leaderboard's top 10, it shows your username, display name, photo and the count it ranks by (for example, how many posts you've shared) — never your posts or videos.
- Anyone with the link to your profile photo: profile photos are kept in public storage, so anyone who has a photo's web address can load it.
Blocking someone hides your profile and content from each other and ends any friendship between you.
What stays on your device
- Your Gemini API key — stored only in the iOS keychain on your device. We never receive it or send it to our servers.
- Videos and thumbnails you haven't shared — stored only in local files on your device. We receive a video and its thumbnail only when you share it as a post.
- Your local history — analyses, workouts, runs, templates and badges, kept in a local database on your device and fully usable with no account at all.
Deleting the app deletes this on-device data, and videos you never shared can't be recovered afterwards. If you were signed in, signing back in on a new install restores your backups (analysis history, workouts, runs and templates) — without the videos.
Video processing
When you analyze a video, the app sends it directly to Google's Gemini API under your own API key — not to us. Google automatically deletes uploaded files after 48 hours. Google's handling of that data is governed by the Google API Terms and the Gemini API Additional Terms.
Sharing a video as a post is separate: that upload goes to our storage, as described under "Social features you choose to use".
Analytics and crash reports
The app contains no advertising and no third-party advertising or tracking SDKs. We do not sell your data, build advertising profiles, or track you across other apps and websites.
We do keep two records, used only to run and improve the app:
- Product analytics — when you are signed in, the app records about 18 kinds of in-app events in our own Supabase database. For example: the app was opened; an analysis finished (with the exercise, score and any variation, including a note you typed) or failed (with the type of error); an API key was added (never the key itself); a workout started or finished (with exercise and set counts, its duration, and whether you shared it); a run was logged (distance and duration); a template was saved or deleted; a friend request was sent; a compare card was opened or sent; a share link was created or opened; a leaderboard or the quota help screen was opened. The first time you sign in, the app also records one "analysis finished" event for each analysis already on your device. These events are linked to your account and used only to understand how the app is used and what to improve.
- Crash and error reports — we use Sentry to receive crash and error diagnostics: the error and its stack trace, your device model and iOS version, the app version, the recent in-app steps that led up to the error, and your account ID if you are signed in. Reports are scrubbed before they are sent: they never include your API key, your videos, or your coaching feedback.
Service providers
We use these providers to run parts of the app, and share data with them only for that purpose:
- Supabase — our database, file storage and sign-in, and the server functions that send notifications and delete accounts.
- Google Gemini — analyzes your videos under your own API key (see "Video processing").
- Sentry — crash and error reports.
- Expo — delivers push notifications.
- Apple — delivers push notifications, and runs Sign in with Apple if you use it.
- Google — runs Sign in with Google if you use it.
- Resend — sends the developer a private daily summary email with overall usage counts and the text of new feedback messages (without your name, email or account).
- GitHub — hosts this policy and the web pages that share links open, and runs the job that prepares the daily summary.
Retention and account deletion
We keep your account data until you delete it. You can delete individual posts, comments and history entries in the app at any time.
To delete your account, go to Settings → Manage account → Delete account. This permanently deletes your account and everything we store with it: your email and sign-in identifiers, profile, username, display name and profile photo; your backups; your posts, including their videos and thumbnails; your comments and reactions; your friendships and blocks; compare cards you sent or received; your links; your push tokens and notification settings; the reports and feedback you sent; and the analytics events linked to your account.
A few things work differently:
- Data on your device stays there until you delete the app — deleting your account does not erase the app's local data.
- Backups and crash reports: copies may remain for a limited time in our database backups, and crash reports stay in Sentry for its standard retention period.
You can also email us (address below) to request access to, correction of, or a copy of the account data we hold about you.
Children
LiftCue is not directed at children under 13, and we do not knowingly collect data from them.
Changes to this policy
If this policy changes, the updated version will be posted at this URL with a new effective date.
Contact
Questions? Email nicholas.s.onofrio@gmail.com.