MindXP Privacy Policy
Effective 25 September 2026
The short version. MindXP does not track you, does not show advertising, and does not sell your data or hand it to anyone for their own purposes. It collects what it needs to give you an account, keep your training in sync across your devices, and — if you choose to play Compete — run matches against other people and place you on a leaderboard. Other players see your display name, rating and results; they see nothing else about you. You can delete all of it from inside the app, permanently, without asking anyone.
Pending legal review. This policy is written to describe the system accurately, but it has not been reviewed by a lawyer. It should be before MindXP is offered commercially at scale.
Who is responsible
MindXP is developed and operated by Matthew Watson. Questions about this policy, or about your data, go to coincatcher14@gmail.com.
What MindXP collects
| Data | Why it exists | Where it comes from |
|---|---|---|
| Email address | Identifies your account, lets you sign in again and lets you recover a lost password. | You, when you sign up; or Apple or Google if you use them to sign in. If you use Sign in with Apple and choose Hide My Email, we receive only Apple’s relay address and never your real one. |
| Display name (other players can see this) | Used to greet you, to label your own progress, and — if you play Compete — to identify you to the people you are playing against and on the leaderboards. Choose it accordingly: it is the one thing about you that other players see. Compete is optional; if you never open it, your display name is shown only to you. | You, if you choose to set one. |
| Account identifier | An internal ID that ties your training records to your account and enforces the database rule that only you can read them. | Generated when your account is created. |
| Training records | Which exercises you attempted, whether you got them right, how long you took, and the skill ratings, streaks, personal records and saved mistakes derived from that. This is what makes your progress yours and what lets a second device pick up where the first left off. | Created as you train. |
| Settings | Your preferences: sound, haptics, theme, weekly goal, language course, reading interests. | You, in Settings. |
| Compete records (only if you play Compete) | Your player profile — display name, rating, league, wins and losses — and the matches you play: which questions you were served, what you answered, whether it was right, and how long you took. Scoring and timing are worked out on the server rather than taken from your device, which is what stops a modified app from claiming a win. Your rating, league and XP total appear on leaderboards that other players can see, next to your display name. | Created as you play. Nothing here exists until you open Compete for the first time. |
| Blocks and reports | If you block a player, we store which account you blocked so the matchmaker can keep you apart — in both directions. If you report a player, we store who reported whom, the reason, and the name or picture complained about, so it can be reviewed. | You, from a player’s profile on a leaderboard. |
| Subscription status | Whether there is an active subscription or trial, so the app knows what to unlock. When you subscribe, the app sends the receipt or purchase token from Apple or Google to our server, which checks it with that store and records the result against your account (a subscription bought on the web is reported to our server by Stripe instead, and recorded the same way, with Stripe’s customer identifier so you can manage it): which product and plan, whether it is in trial, active, expired or cancelled, when it renews, and the store’s own identifier for the subscription. We store this rather than trusting the device because it is what lets a subscription bought on one platform unlock the app on the other, and what stops a modified app from granting itself access. | Apple, through StoreKit; Google, through Google Play Billing; or Stripe, for a subscription bought on the web. We never receive your card number or payment details — those stay with Apple, Google or Stripe and are never sent to us. |
What MindXP does not collect
- No advertising identifier. The app never reads the IDFA and shows no ads.
- No analytics or attribution SDK. There is no third-party analytics, crash-attribution or marketing SDK in the app. MindXP records which step of the first run you reached in the device’s own log, to help diagnose problems; that stays on your device and is never transmitted.
- No tracking. Your data is never linked with data from other companies’ apps or websites for advertising or measurement. MindXP does not ask for App Tracking Transparency permission because it has nothing to ask for.
- No location, contacts, photos, microphone, camera or health data. The app requests none of these permissions.
- No sale or sharing of personal information, as those terms are used in the California Consumer Privacy Act. There is no such disclosure to opt out of.
This website
getmindxp.com is also MindXP itself: the web app is the same app as on iPhone and Android, and it collects and sends exactly what they do, to the same services, as described above. Like the phone apps keep your data on the phone, the web app keeps your sign-in session and a copy of your training data in your browser’s own storage, so that you stay signed in and can train offline. Erasing this site’s data in your browser removes that copy; your account and synced history are unaffected.
The site runs no analytics and no advertising, and MindXP sets no cookies of its own. The sign-in screen loads Google’s sign-in script, and Apple’s for Sign in with Apple; like any content a page loads, those receive your IP address and browser details, and Google’s may set a cookie to remember that you dismissed its prompt. If you subscribe on the web, the payment form is Stripe’s: its script loads when the form opens, the card fields are Stripe’s own secure frames so your card details go straight to Stripe, and Stripe may set cookies on this site to help prevent fraud. Our host records ordinary server request logs, as any web server does.
How your data is stored and protected
Training data and account details are stored with Supabase, our hosting provider, on servers in the United States. Every table is protected by row-level security keyed to your account identifier, which means the database itself refuses to return one person’s rows to another — this is enforced by the server, not by the app.
All traffic between the app and the server uses HTTPS. On iPhone and iPad your session credentials are held in the iOS Keychain. On Android they are held in the app’s private storage, which other apps cannot read, and they are excluded from Android Auto Backup and from device-to-device transfer so a sign-in cannot be restored onto another phone.
MindXP also works offline. Exercises are generated on your device, and your training is written locally first and synced when a connection is available.
Who else receives data
MindXP uses a deliberately small number of processors, and none of them receives your data for their own purposes:
- Supabase — hosts the database, authentication and server functions.
- Apple — if you choose Sign in with Apple, to authenticate you; and to process subscription payments, which Apple handles entirely. When you subscribe on iOS, our server asks Apple’s App Store Server API to confirm the transaction is genuine and current.
- Google — if you choose Sign in with Google, to authenticate you; and to process subscription payments on Android, which Google handles entirely. When you subscribe on Android, our server asks the Google Play Developer API to confirm the purchase token is genuine and current, and Google notifies our server when the subscription renews, lapses or is cancelled.
- Stripe — if you subscribe on the web, to take payment. You enter your card into Stripe’s secure fields in the payment form, and we never receive the card number. Stripe tells our server when the subscription starts, renews, fails to renew or is cancelled, and we keep Stripe’s customer and subscription identifiers against your account so you can manage it from Profile.
- Other players — not a processor, but worth stating plainly: in Compete, the people you are matched with, and anyone looking at a leaderboard, see your display name, your rating and league, and your results in matches you played.
- Fish Audio — used to pronounce language-course words aloud. Only the word or phrase being taught is sent, which is curriculum content chosen by the app, not anything about you. Your identity, your email and your training history are never sent. Most audio is already bundled with the app and never leaves the device at all.
We disclose data otherwise only where legally required, and never for advertising.
How long data is kept
Your account, training data and Compete records are kept for as long as your account exists. When you delete your account, the data is deleted immediately as described below — not archived, not retained on a delay, and not held in a “deleted” state.
There is one exception, and it is deliberate. If somebody reported your profile, that report is kept after your account is deleted, with the identifier that pointed at you removed — so what remains records that a report was made and why, but no longer says it was about you. A report that could be erased by deleting the account it was about would not be much of a safety mechanism. Reports you filed about other people are deleted with your account.
Your choices and rights
Deleting your account and all your data
In the app: Profile → Account → Privacy & Account → Delete Account. You will be asked to type DELETE to confirm. This permanently removes your account, profile, ratings, workout history, personal records, mistake bank, Compete player profile, match results, leaderboard standing and recorded subscription status from our servers. It cannot be undone, and it does not require you to email anyone.
Deleting your account does not cancel an App Store or Google Play subscription, because that subscription belongs to your Apple Account or Google Account rather than to us. Cancel it in the App Store or in Google Play, or you will continue to be billed. A subscription bought on the web is different: we bill it through Stripe, and it is cancelled as part of the deletion, so you will not be charged again.
Erasing local data only
Profile → Settings → Erase all training data clears the training data held on that device while leaving your account intact.
Access, correction and portability
You can view and correct your profile in the app. For a copy of your data in a portable format, or for any request under the GDPR, the UK GDPR or the CCPA — including access, correction, deletion or objection — write to coincatcher14@gmail.com and we will respond within 30 days. We will not discriminate against you for exercising any of these rights.
If you are in the European Economic Area or the United Kingdom, our legal bases are performance of a contract (running the account, syncing your training and providing the subscription) and legitimate interests (keeping the service secure and working). You have the right to lodge a complaint with your local supervisory authority.
Children
MindXP is rated 4+ and contains nothing unsuitable for children, but it is not directed at children under 13, and we do not knowingly collect personal information from them. If you believe a child under 13 has created an account, write to coincatcher14@gmail.com and we will delete it.
Changes to this policy
If this policy changes in a way that affects what is collected or who receives it, the effective date above changes and the updated policy is published here before the change takes effect in a released version of the app.