Privacy policy
Draft. This page says what ppppiano does with your data today, in plain words. A lawyer has not reviewed it. It will change before launch.
ppppiano records how you practise, so it can grade you and choose what comes next. It does not sell that record, show ads, or track you around the web.
Who are we?
ppppiano is run by [legal name], in [country]. Reach us at admin@ppppiano.com.
What if I do not sign in?
Your practice stays in your browser. Nothing you play is sent to us.
- Your history, your settings and the pieces you import are kept in the browser's storage on your device.
- Clearing the browser's data erases them. We cannot get them back.
- Our host still sees the ordinary request your browser makes to load the app. See who else is involved.
- Error and speed reports are sent, signed in or not. They hold nothing you played. See how we watch for errors.
What do you keep if I sign in?
An account copies your practice to our database, so it survives a cleared browser and follows you between devices. We keep:
| What | In detail |
|---|---|
| Your email address | It is how you sign in. With Google sign-in, Google also sends us your name and profile picture. The app uses only the email. |
| Your runs | One record per run: the drill or piece, the time, the level, the tempo, the score, whether you finished, the conditions (which hand, which bars, your keyboard's size), and the app's version. |
| Your answers | One record per graded answer: what was asked and what you played. For each note, the key, how early or late it was in milliseconds, how hard you struck it, and how long you held it. Also whether it came from MIDI, the computer keyboard or the mouse, and your latency setting. |
| Your progress | The level you reached in each drill, and which walkthroughs you have seen. |
| Some settings | Theme, tempo per drill, voice speed, the music display, the ladder's settings, the metronome's subdivision, and your daily practice plan. |
| Your pieces | Up to five MIDI or MusicXML files you import, with the title, composer, grade and tempo you gave them. |
Signing in on a browser that already holds practice uploads that practice to your account.
The Stats screen sends your time zone with its request, to count your days. It is not stored.
What do you not collect?
- No sound. The app never uses the microphone.
- No advertising and no tracking cookies. No analytics of what you do in the app. We do watch for errors and measure how fast the app loads: see below.
- No scripts from other companies. The fonts and the piano samples come from our own address.
- No card or bank details. Stripe takes those when you buy Pro, on its own page. We keep only Stripe's ids for your customer and subscription, how often you pay, and the date Pro runs to.
- No password. You sign in with Google or with a code sent to your email.
Do you watch for errors and speed?
Yes. The app reports to Sentry, a monitoring service, so we learn when it breaks or loads slowly. Signed in or not. Three things are sent:
| What | When | In detail |
|---|---|---|
| An error report | When the app hits an error it did not expect | The error's message, where in the code it happened, the app's version, the page's address, and your browser's name and version. |
| A speed sample | About one visit in five | How long the app took to load: each file and each request, with its address and how long it took. How long the page took to answer a click or a key, but not what was clicked or pressed. Your browser's name and version. What the browser says about the device: how many processor cores, roughly how much memory, and the kind of connection. |
| A visit count | Every visit | That the app was opened, its version, and whether that visit hit an error. It carries no id of yours. |
None of them holds your email, your account, what you played, or your pieces.
- Anything in an error message that looks like an email, an account id or a sign-in token is removed before it is sent.
- A web address is sent cut short: nothing after a question mark or a hash, and no ids. The address of a drill, a piece or a piano sample is shortened so it does not say which one.
- No list of your clicks, no console text, no time zone, no language setting.
- Sentry's server sees your IP address when a report arrives, as any server does. It is told not to keep it.
What about my own pieces?
A file you import is private to your account.
- Signed out, it never leaves your device.
- Signed in, up to five are stored with your account, in storage only your account can read. The rest stay on the device.
- We do not show your files to other players, and we do not add them to the library.
What is kept on my device? Are there cookies?
The app uses your browser's storage. It sets no cookies.
- Your practice history and settings.
- The pieces you imported.
- Your sign-in session, while you are signed in.
- A copy of the app, the library and the piano samples, so it opens with no connection.
Signing out removes your account's practice and pieces from that browser. They stay with your account.
What do you use it for?
- To grade your runs and show your statistics.
- To choose the next step on the ladder.
- To bring your practice and your pieces to your other devices.
- To see how the drills and the ladder hold up in real practice, and fix them.
- To find errors and slow loads, and fix them.
We do not sell your data. We do not share it, except with the companies below, who hold it for us.
Who else is involved?
| Company | What it does for us |
|---|---|
| Netlify | Hosts the app. It sees the requests your browser makes to load it, your IP address among them, as any web host does. |
| Supabase | Holds accounts, the practice database and your stored pieces. It sends the sign-in code emails. |
| Stripe and Link | Take payment for Pro. Stripe is the seller of record through Link: it takes your card, works out and pays the tax, sends receipts and invoices, and answers payment questions. It has your email, your billing address and your payment details. |
| Sentry | Receives the error reports, the speed samples and the visit counts, on servers in the United States. See how we watch for errors. |
| Only if you choose Google sign-in. Google tells us who you are. |
Spoken prompts use the voices built into your browser. Some browsers make those voices on their maker's servers.
[Where the Supabase project's servers are, by country or region.]
How long do you keep it?
Until you ask us to delete it. We do not delete practice records on a schedule.
What are my choices?
- Practise without an account. Nothing you play leaves your device.
- Erase a device. Signed out, Settings, General, Reset all stats erases the history in that browser.
- Remove a piece. Removing one of your pieces deletes our stored copy too.
- Delete your account. Signed in, Settings, General, Delete account. We delete your practice history, your progress, your uploaded pieces and the account itself from our servers, at once and for good. The browser you delete it from is cleared too. Another browser you had signed in is signed out within the hour; a copy it had already saved can stay in that browser until you clear its site data. Or write to admin@ppppiano.com and we will do it.
- Get a copy. There is no export yet. Write to us and we will send you what we hold.
What about children?
ppppiano is for players aged 13 and over. If you believe a younger child has an account, write to us and we will delete it.
How will I know when this changes?
When this page changes, the "last updated" date at the top changes with it. A change that matters is also listed in the changelog.