Privacy Policy
Pitch Please is an ear-training app for iPhone, iPad, Android and the web. It is made by uskillbotics, which is operated by Zack Jordan, the developer and seller of the app (“we”, “us”). This policy covers the app in every version and this website.
The short version
- Your practice stays on your device. Your levels, history, settings and progress are stored where you play, and we never receive them.
- No sign-up, no ads, no tracking. We never ask for an email address, phone number, password or real name. There is no advertising, we do not sell your data, and we do not track you across other companies’ apps and websites.
- Anonymous usage counts, which you can turn off. The app may count which screens and levels get used, under a random ID that is not your name, your device or your board account. Switch it off in Settings → Data.
- The Daily Challenge board is optional. If you join it, we keep an anonymous account, the display name you choose and the ranked runs you play, so we can score them and show the board. You can rename or delete the account in Settings at any time.
- Crash reports. When something goes wrong, the app sends a diagnostic report so we can fix it. Reports are not tied to your board account, and we don’t keep your IP address with them.
1. What stays on your device
Everything you do while practising is saved on the device you practise on and is not sent to us: every answer you give and how long it took, the levels you play and the ones you make, your progress, streaks and tiers, your settings, the list of players you have blocked, and a copy of what you have bought. In the web version this is kept in your browser’s local storage.
It is not synced between devices, or between the app and the web version. Deleting the app, or clearing the website’s data in your browser, erases it.
Practice reminders are scheduled by your device itself. There is no notification server, and the app never asks for a push token.
Permissions. Pitch Please does not use your camera, contacts, photos or location, and it does not record or listen through your microphone.
2. The Daily Challenge board
The board is a daily leaderboard for the Daily Challenge, and it is optional: the rest of the app works the same without it. Nothing about you is sent to it until you press BEGIN RANKED RUN and save a display name, or report a name on the board. From then on, we collect:
| What | Why | Who can see it |
|---|---|---|
| An anonymous account ID, created by the app. No email, phone number, password or real name is attached to it. | To know which name and runs are yours, and to allow one ranked run a day. | Only us. |
| The display name you choose. | To show you on the board. | Everyone who looks at a board you are on. |
| Your ranked runs: the day, the level, every answer you gave and how long it took, the instrument you answered on, your platform (iOS, Android or web), the app’s release channel and challenge version, and the score and rank our server works out. | To check that the run is a real one, score it, and rank it. | Your rank, score, accuracy and typical answer time are shown beside your name on that day’s board. The rest only to us. |
| Reports you make: your account ID, the player you reported (by a random public handle, not their account ID), the day, and their name at that moment. | To review reported names. | Only us. The player you report is not told who reported them. |
| Network details: the IP address and user agent (the app’s name and version, or your browser’s) recorded with your sign-in session, and in our provider’s request logs. | To run the service, and to protect it from abuse, for example by limiting how many accounts can be made from one address. | Only us and our server provider. |
Looking at a board sends nothing about you, and blocking a player is saved only on your device and is never sent. If you report a name before you have a board account, the app makes an anonymous account with no name so the report can be counted once.
Fair play. Our server re-scores every ranked run from your answers, and checks their timing for signs that they were not given by a person (answers faster than anyone could give them, for example). A run that trips a check is kept off the board until we look at it ourselves. Nothing else follows from it.
Names. Display names are checked by an automatic filter before they are saved, and every reported name is reviewed by us within 24 hours. A name that breaks the rules is replaced, and an account may be removed. Once three different players have reported a name, it is hidden from everyone but its owner until we have reviewed it.
3. Crash and diagnostic reports
When the app crashes or hits an error, it sends a report to Sentry, our crash-reporting service. A report contains the error and where in the app it happened, your device model and operating system version, the app’s version and release channel, the screens you visited just before it, and a random identifier the reporting tool makes for each installation, so we can tell one crash on many devices from many crashes on one. For a sample of sessions it also records performance timings, such as how long a screen took to appear.
When an error happens, the report can include a short replay of the screen in the moments before it. Every replay is masked: text and images are hidden, so it shows the layout and not what was on it. In test versions of the app (TestFlight), we may also record a small share of masked replays of sessions without an error, to see how the app is used. The App Store version never does.
Reports are not linked to your board account or display name, and we have set the reporting up so that your IP address and the location it suggests are not kept with them. We use them only to find and fix problems.
4. Anonymous usage counts
To learn which parts of the app get used and which don’t, the app may send PostHog, our analytics service, a count of things you do in it: that it was installed, opened or put in the background; which screen was opened (by its kind, such as “a trainer”, never which of your levels); and, when a round ends, which curriculum level it was, how many questions were right, the score, and whether it passed a level or earned a tier. It also counts placements, and purchases started, completed or restored, by product (never a price or a receipt). Each event carries the app’s version and release channel.
These counts are sent under a random ID the app makes for this purpose. It is not a device identifier or an advertising identifier, and it is never your board account. Nothing you type is sent: a level you made yourself is counted only as “a custom level”, and no display name goes with any event. We ask PostHog not to build a profile of you and not to work out your location, and we have set it to discard your IP address.
Turn it off in Settings → Data → Share anonymous usage. Turning it off throws away anything not yet sent and forgets the random ID, so turning it back on starts afresh. The switch appears only in versions of the app that count usage.
5. App updates
When it opens, the app asks Expo’s update service whether a newer version of its code is available. That request contains your operating system, the app’s project and version identifiers, and a random token Expo uses to tell whether an installation has already asked; it contains no device identifier. As with any request over the internet, Expo’s servers see your IP address.
6. Purchases
Packs are bought through the App Store (or, on Android, Google Play). We never see your payment details, your Apple ID or your Google account. The app asks the store on your device which purchases you own; we run no purchase server, and nothing about your purchases is sent to us or to the board. Apple’s and Google’s own privacy policies cover what they collect when you buy something.
7. The web version and this website
The web version of Pitch Please and this website are hosted by Vercel, which keeps standard request logs, including IP addresses, for security and operation. This website sets no cookies, runs no scripts, and has no analytics. The web version keeps your progress in your browser’s local storage (see section 1), may count usage as section 4 describes, and has no purchases or reminders.
8. Who we share data with
We use a few service providers to run Pitch Please. They process data on our behalf, under contracts that limit what they may do with it:
- Supabase — the Daily Challenge board’s server, database and anonymous sign-in.
- Sentry (Functional Software, Inc.) — crash and diagnostic reports.
- PostHog (PostHog, Inc.) — anonymous usage counts.
- Expo (650 Industries, Inc.) — delivering app updates.
- Vercel — hosting the web version and this website.
Apple and Google distribute the app and handle purchases under their own terms and privacy policies.
We do not sell personal information, share it for advertising, or use it to track you. We would disclose information only if the law required it, or to protect the safety of a person or the integrity of the service.
Where it is processed. Our providers process data in the United States. If you are outside the US, your data is transferred there, relying where the law requires on safeguards such as the European Commission’s Standard Contractual Clauses.
9. How long we keep it
- On your device: until you delete it, or the app.
- Your board account, name and ranked runs: until you delete the account in the app or ask us to. Uninstalling the app does not delete it, so delete it in Settings first if you want it gone. We may delete accounts that have not played a ranked run for twelve months, and accounts that never saved a name.
- The IP address and user agent of your sign-in session: deleted with your account.
- Reports: until we have reviewed them and no longer need them as a record. If you delete your account, the reports you made are kept without your account ID; the reports about you are deleted.
- Backups and logs: deleted data can remain in our provider’s backups for up to 30 days, and request logs are kept for a limited time (up to 90 days), after which both are erased.
- Crash reports: up to 90 days.
- Usage counts: up to one year.
10. Your choices and rights
- Change your name or delete your board account in Settings → Daily Challenge board. Deletion is immediate and permanent: your account, your name and every ranked run are removed from every board. How to delete, and what to do if you no longer have the app.
- Stay off the board by not starting a ranked run. Nothing else in the app needs it.
- Turn off usage counts in Settings → Data → Share anonymous usage.
- Turn off reminders in Settings → Reminders, or in your device’s notification settings.
Depending on where you live (for example in the EU, the UK, or California), you have the right to ask for a copy of the personal data we hold about you, to have it corrected or deleted, to receive it in a portable form, to object to or restrict how we use it, and to complain to your data protection authority. We will not treat you differently for asking. Email us at the address below. Because board accounts are anonymous, we may need your display name and the days you played to find yours, and we will reply within 30 days.
For people in the EU and UK, the legal bases we rely on are: providing the board you chose to join (contract); keeping the app working through crash reports, understanding how it is used through anonymous usage counts, and preventing cheating and abuse and moderating names (our legitimate interests); and meeting legal obligations.
11. Children
Pitch Please is a general-audience app and is not directed at children under 13. The board never asks for contact details, and the only thing a player can show other players is a filtered display name. If you are a parent and believe your child has made a board account, email us and we will delete it.
12. Security
Everything the app sends travels over an encrypted connection. The board’s database cannot be written to by the app directly: every change goes through our server’s own functions, which check who is asking. No system is perfectly secure, but we take reasonable steps to protect what we hold, and we hold as little as we can.
13. Changes to this policy
If what the app collects changes, we will update this policy before the change reaches you, and change the date at the top. If a change is significant, we will also say so in the app.
14. Contact us
For anything about your privacy or this policy:
pixelwelders+pitchplease@gmail.com
Zack Jordan, operating as uskillbotics, is the data controller for Pitch Please.