Privacy Policy
Last updated August 7, 2026
SwingFix is a golf swing analysis app for iPhone. This policy explains exactly what the app collects, why it collects it, how long it is kept, who else touches it, and how to make us delete it.
The short version
- There is no account. No email address, no name, no password. The app identifies you to our servers with a random anonymous id.
- The camera runs only while you are filming a swing. The app records video only; it does not use the microphone and does not ask for it.
- Swing videos live on your device. A video is uploaded to our analysis engine to measure that one swing, and it is not kept there afterwards.
- Cloud sync is on by default. Your swing videos and their measurements are stored in private storage keyed to your anonymous id, and are served back only over short-lived signed links.
- Voice coaching runs entirely on your phone. Nothing you say, and no swing data, is sent to any third-party AI or language-model service.
- Subscriptions are billed by Apple. We never see your card, and we never receive your Apple Account details.
- We use no analytics, no crash-reporting SDK and no advertising SDK. There is no third party watching you use the app.
- Opening a lesson video hands you to YouTube, which sees your IP address under its own privacy policy.
- We do not sell or share your personal information, we do not use it for cross-context behavioural advertising, and we never use what the camera records for marketing or data mining.
Who we are
SwingFix (“SwingFix”, “we”, “us”) is operated by Riyaan Rahman, of 2007 9th St, Lubbock, TX 79401, USA. For the purposes of the EU and UK General Data Protection Regulation, we are the controller of the personal data described here.
Questions, requests and complaints go to hi@lemora.ai.
What we collect
Swing videos
When you record a swing, SwingFix captures video through your device’s camera. No audio is recorded — the recorder is configured for video only, and the app never asks for microphone permission. Capture happens only while a recording is running; the app does not watch in the background.
Recordings are written to storage on your device. To measure a swing, the app uploads that recording to the SwingFix analysis engine, which returns the checkpoint positions and metric values.
The engine writes the upload to a temporary file, measures it, and deletes that file when the request finishes. Your video is never written to a database or a storage bucket on the analysis engine, and no copy of it survives the request. The engine is our own container, running on Google Cloud Run under our account — the video is not handed to a third-party analysis service.
How the measuring works
Inside that container, a pose-estimation model (Google’s MediaPipe, running locally in the container rather than as a hosted service) locates body and club landmarks in each frame. Those landmarks become the seven checkpoints and the angles we report. The model runs on infrastructure we control, and it is not a service that receives your data on someone else’s behalf.
Pose estimation finds where a body is in a frame. It is not face recognition, and it does not identify who the body belongs to. We do not run facial recognition, and we do not use any facial or depth-mapping API.
Swing measurements
For each analysed swing we produce measurements: the seven checkpoints, the angle and distance values for each metric, the camera view used, the club you selected if you selected one, and the timestamp. These live on your device alongside the video, and are used to build your trends.
Voice coaching
Spoken feedback is produced by your device’s built-in Apple speech synthesizer. The script it reads is generated on your device from your own swing measurements, by a rules engine that ships inside the app.
No audio, no video and no swing data is sent to any third-party AI or language-model service, and no third party uses your data to train models. There is no chat model, no hosted speech service, and no transcription service behind this feature. Nothing about voice coaching leaves your phone.
An anonymous identifier
So that your swings can be synced and your entitlements checked, the app signs in anonymously and is issued a random identifier. It is not derived from your name, your email address, your phone number or your device’s advertising identifier, and we cannot use it to work out who you are. Under GDPR it is still personal data, because it singles out one user, so we treat it as such throughout this policy.
Cloud sync
Cloud sync is on by default, and there is no toggle for it. Every swing you analyse is copied, with its thumbnail and its measurements, to private object storage scoped to your anonymous id. Nothing in that storage is public, and one anonymous id cannot reach another’s files. Files are read back only through short-lived signed URLs generated for your session, which expire on their own. Deleting a swing in the app deletes the synced copy with it.
Subscription status
SwingFix Pro is sold through Apple’s in-app purchase system. Apple handles the payment; we receive only a receipt and the resulting entitlement status — whether a subscription is active, which product it is, when it renews or lapses. We never receive your card number, billing address, or Apple Account credentials.
Referrals
SwingFix has a referral programme (“give a month, get a month”). If you send or accept an invite, we store the relationship between the two anonymous ids and whether the reward has been granted, so the free months can be applied and the same invite cannot be redeemed twice. Invite links contain a short random code, not anything about you.
Coaching library videos, and YouTube
Drills in the coaching library link out to videos hosted on YouTube. A lesson card shows the video’s thumbnail, which the app loads directly from YouTube’s servers, and tapping the card opens the video on YouTube.
That means YouTube (Google) receives your device’s IP address whenever a lesson card is displayed, along with the usual request information a web server sees, and it can set or read its own cookies and identifiers once you open a video. This happens under Google’s privacy policy, not ours, and it is outside our control. We do not send YouTube your anonymous id, your swings, or your measurements — only the request for a thumbnail or a video reaches them.
If you would rather Google not see this, do not open the coaching library.
Analytics and crash reporting: none
SwingFix ships with no analytics SDK and no crash-reporting SDK. There is no Sentry, no Firebase or Crashlytics, no PostHog, no Amplitude, no Mixpanel, and nothing equivalent. We do not collect product-interaction events, session recordings, funnels, or automatic crash reports, and no third party receives telemetry about how you use the app.
The practical consequence is that when something breaks, we do not find out unless you tell us. If you hit a problem, please email hi@lemora.ai and describe it — that is genuinely our only signal.
If we ever add diagnostics, we will name the provider here and update the App Store privacy label before it ships.
What we do not collect
- No name, email address, phone number or postal address.
- No password, because there is no account to log into.
- No location. SwingFix does not request or use precise or coarse location.
- No contacts, photo library scanning, health records or biometric identification. Pose estimation measures the body positions in the frames you record; it does not identify a person.
- No advertising identifier, no third-party ad networks, and no tracking of you across other companies’ apps or websites.
- No analytics, product-usage telemetry, or automatic crash reports.
Why we use it, and our legal basis
Where the EU or UK GDPR applies, we rely on the following bases. Where it does not, the purposes still describe accurately what the data is used for.
- To analyse a swing you asked us to analyse — video and the anonymous id. Basis: performance of a contract (Article 6(1)(b)).
- To sync your swings between your devices and restore them — videos, measurements, anonymous id. This is part of the service rather than an optional extra: it is on by default. Basis: performance of a contract (Article 6(1)(b)).
- To check whether you have an active subscription and to apply free-tier limits — receipt and entitlement data. Basis: performance of a contract.
- To run the referral programme — the link between two anonymous ids. Basis: performance of a contract.
- To show you a drill video you asked to see — the request your device makes to YouTube, which carries your IP address. Basis: performance of a contract.
- To prevent abuse of the free tier and of referral rewards — counters attached to the anonymous id. Basis: our legitimate interest in a service that is not being gamed (Article 6(1)(f)).
- To comply with law — tax and accounting records relating to subscriptions. Basis: legal obligation (Article 6(1)(c)).
We do not use your swing videos to train general-purpose machine learning models. If that ever changes, it will be an opt-in choice presented in the app, and this policy will say so before it happens.
Limits we hold ourselves to
These are commitments, not aspirations. Apple’s App Review Guidelines require several of them, and we would hold to them regardless.
- Nothing the camera records is used for marketing, advertising, or use-based data mining — not by us, and not by anyone we work with. Your swing footage exists to be measured and shown back to you.
- We do not try to work out who you are. We will not attempt to re-identify an anonymous user, reconstruct a profile from the data we hold, or help anyone else do either.
- Data collected for one purpose is not quietly repurposed. If we ever want to use something for a new purpose, we will ask first.
- No third-party advertising SDKs, and no tracking. We do not use Apple’s App Tracking Transparency prompt because we have nothing to ask you for — we do not track you across other companies’ apps or websites.
- No third-party AI service sees your data. The pose model runs in our own container; the coaching script and the speech run on your phone. If we ever route anything through an outside model, this policy will say so, by name, before it ships.
- We do not gate the app behind system permissions you do not need. Analysis needs the camera. Nothing requires the microphone, notifications, location, or tracking.
A note on health and fitness data
SwingFix measures where your body and the club are in a video. It does not connect to HealthKit, the Clinical Health Records API, or Motion & Fitness, it does not read anything from the Health app, and it writes nothing back. We do not collect heart rate, workouts, weight, or any other health metric from your device.
Swing measurements are golf coaching data, not medical data. Even so, we treat them with the care the health context calls for: they are never used for advertising, marketing, or use-based data mining, and they are never shared with anyone for those purposes.
How this maps to Apple’s App Privacy label
Apple asks every developer to declare data collection in three tiers on the App Store product page. SwingFix declares:
- Data Used to Track You: none. We do not link your data with third-party data for advertising, and we do not share it with data brokers.
- Data Linked to You: Identifiers (the anonymous user id), User Content (swing videos, which are synced to our storage by default), and Purchases (subscription status). These are linked to that anonymous id rather than to a real-world identity.
- Data Not Linked to You: none. We declare no Diagnostics, because we collect none — there is no analytics or crash-reporting SDK in the app.
The declaration on the App Store listing and the description above are kept in step with each other.
Who else touches the data
We do not sell your data and we do not hand it to advertisers. We use a small number of service providers, each of which acts on our instructions under a written contract that requires them to protect the data at least as well as this policy does, and forbids them from using it for their own purposes.
- Apple. Distributes the app and processes every payment, refund and cancellation. Apple’s handling of your Apple Account is governed by Apple’s own privacy policy, not this one.
- Google Cloud (Cloud Run). Hosts the analysis engine — our own container, running our own code. A swing video passes through it while it is being measured and is deleted when the request finishes. Google provides the compute; it is not given your data to use.
- RevenueCat. Manages our in-app subscriptions. It receives the App Store receipt for a purchase and a random app-user identifier, and returns whether the subscription is active. It does not receive your swing videos, your measurements, or your Apple Account details.
- Supabase. Provides the anonymous sign-in, the Postgres database and the private storage buckets that hold synced swings, their thumbnails, and referral records. Access is enforced per user by row-level security, so one anonymous id cannot read another’s rows or files.
- YouTube (Google). Hosts the coaching library videos and their thumbnails. It receives your IP address when a lesson card renders or you open a video, under Google’s own privacy policy. It receives nothing else from us.
That is the complete list. There is no analytics vendor, no crash-reporting vendor, no advertising network, no data broker, and no third-party AI or language-model service.
We may also disclose data if we are legally required to, or where it is necessary to establish, exercise or defend legal claims. If SwingFix is ever sold or merged, data may transfer to the acquirer, who would remain bound by this policy until you are given notice of a replacement.
How long we keep it
- Swing videos and measurements on your device: until you delete the swing, or until you delete the app.
- Video sent for analysis: the length of one request. The engine writes it to a temporary file, measures it, and deletes that file when the request finishes. Nothing is written to a database or a bucket on the engine.
- Synced videos, thumbnails and measurements: until you delete them in the app, or until you delete your data.
- Voice coaching: nothing to retain. The script is built and spoken on your device and is never sent anywhere.
- Anonymous id, entitlements and referral records: for as long as the id is in use, and for up to 12 months after it goes dormant, so that a reinstall can restore your subscription.
- Analytics and crash reports: none exist, so there is nothing to keep or delete.
- Transaction records held for tax and accounting: as long as the law requires, typically six to seven years. These come from Apple and do not contain your swing data.
Where your data is processed
Both of our own systems run in the United States. The Supabase project — the anonymous sign-in, the database and the storage buckets — is in us-west-1 (US West). The Cloud Run analysis engine is in us-central1 (US Central).
We are established in the United States, so data you send us is processed in the United States. Where personal data leaves the European Economic Area or the United Kingdom, we rely on the European Commission’s Standard Contractual Clauses, together with the UK International Data Transfer Addendum where the UK GDPR applies, or on an adequacy decision covering the destination. Our contracts with Google Cloud and Supabase incorporate those clauses. A copy of the relevant safeguards is available on request from hi@lemora.ai.
Opening a coaching video sends a request to YouTube, which operates globally and handles that request under Google’s own privacy policy and transfer mechanisms.
Your rights
If the EU or UK GDPR applies to you, you have the right to:
- ask what we hold about you and get a copy of it;
- have inaccurate data corrected;
- have your data deleted;
- restrict or object to processing that relies on our legitimate interests;
- receive your data in a portable, machine-readable form;
- delete everything we hold yourself, at any time, from Settings → Danger zone → “Delete account & all data” in the app; and
- complain to your data protection authority — in the UK, the Information Commissioner’s Office.
Because SwingFix has no account, we cannot look you up by name or email. To exercise a right over server-side data, email hi@lemora.ai from the device in question and include the anonymous user id shown in Settings → Info → User ID, which you can tap to copy. That id is what lets us find the right records; without it we may be unable to act on a request, and we will tell you so rather than guess. We answer within one month, and will say if we need longer.
California privacy notice
This section is for California residents and follows the California Consumer Privacy Act as amended by the CPRA. SwingFix is run by one person and may not meet the revenue or data-volume thresholds that make the CCPA binding; we set out these rights and honour them anyway, rather than argue about whether we have to.
Categories collected in the last 12 months. Identifiers (the anonymous user id, and the IP address your device presents to YouTube when a lesson card renders); commercial information (subscription and referral status); and electronic or visual information (swing videos, plus the measurements derived from them). We collect no internet-activity category, because there is no analytics or crash-reporting SDK in the app. Sources: you, directly through the app; your device; and Apple, for purchase confirmation.
Business purposes. Providing swing analysis, syncing and restoring your swings, checking entitlements and free-tier limits, operating the referral programme, showing coaching videos you ask to see, preventing abuse, and complying with law. Each category is disclosed only to the service providers described under “Who else touches the data”, for those purposes.
Sale and sharing. We do not sell personal information, and we do not share it for cross-context behavioural advertising. We have not done so in the preceding 12 months, and this includes information about anyone we know to be under 16.
Sensitive personal information. We do not collect sensitive personal information as the CPRA defines it, and therefore do not use or disclose it for purposes that would trigger a right to limit.
Retention. We keep each category only for the periods set out under “How long we keep it”.
Your rights. You may request to know, to access, to correct, and to delete, and you may not be discriminated against for exercising them. Requests go to hi@lemora.ai and follow the same identity process described above, since the anonymous id is the only handle we have on your records. You may use an authorised agent, in which case we will ask for proof of authorisation.
Children
Golf is played by juniors, and SwingFix is designed so that a young player can use it without handing over anything about themselves: no account, no name, no email address, no location. Even so, SwingFix is not directed to children under 13 and it is not published in the App Store Kids Category.
We do not knowingly collect personal information from a child under 13 (or under 16 in the EEA and UK, where that is the age of digital consent in your country) beyond the anonymous identifier and the swing recordings the child chooses to make on their own device. We do not ask for a birth date, we do not build profiles, we serve no advertising, and we use no analytics or advertising SDKs of any kind.
One thing parents should know: the coaching library shows YouTube thumbnails and opens drill videos on YouTube. That hands the request to Google, which sees the device’s IP address and applies its own policies and identifiers — including whatever it does for viewers it believes to be children. If you would rather a young player not touch Google’s services, keep them out of the coaching library; every other part of the app works without it.
If you are a parent or guardian and believe a child has provided us with data you want removed, email hi@lemora.ai with the anonymous user id from that device and we will delete the associated records.
Security
Data is encrypted in transit with TLS and at rest by our storage providers. Synced files sit in private buckets that are not publicly listable and are reachable only through signed links that expire. Access to production systems is limited to the people who need it. No system is perfect, and we do not claim otherwise; if a breach affects your data and the law requires us to tell you, we will.
Deleting your data
On your device: delete individual swings in the app, or delete the app. Deleting the app removes the local swing library, the recordings, and the measurements stored on the device. iOS may keep the app’s data in an iCloud or iTunes backup you have made; that backup is under your control, not ours.
On our servers: deleting the app does not by itself remove the synced copies. Delete them from inside the app, at Settings → Danger zone → “Delete account & all data”. That removes the synced videos, their thumbnails, the measurements, the referral records and the anonymous identifier itself. It happens immediately, not within 30 days, and it cannot be undone. Records we must keep for tax or accounting are retained as described above.
If you have already deleted the app and can no longer reach that control, email hi@lemora.ai with the anonymous user id from that device and we will do it for you. Without the id we may be unable to find your records, and we will tell you so rather than guess.
Deleting the identifier ends any entitlement tied to it, so cancel an active subscription first.
Cancelling a subscription is separate and is handled by Apple, in Settings → your name → Subscriptions on your iPhone.
Changes to this policy
We update this policy when the app changes. The “last updated” date at the top always reflects the current version. If a change materially affects what we collect or why, we will say so in the app before it takes effect.
Contact
Privacy: hi@lemora.ai
Everything else: hi@lemora.ai, or the support page.
Postal: Riyaan Rahman, 2007 9th St, Lubbock, TX 79401, USA.
Status of this document
This policy is a draft written to match Apple’s App Review Guidelines, Apple’s App Privacy disclosure categories, the GDPR and UK GDPR, and the CCPA as amended by the CPRA, and to describe the SwingFix app’s actual behaviour as built. It has not been reviewed by a lawyer. Have counsel review it before the app is submitted.