Privacy notice
What we keep, and why.
RiffKeys is in development. This notice covers the early-access list, RiffKeys accounts, progress sync between your devices, and the analytics on this website, in plain words. RiffKeys is run by Lion MGT LLC, trading as Lion Pro Dev (“we”), which is responsible for this data.
Early access
- Your email address, so we can write to you about early access.
- The song you want to learn and what you'll play on, if you choose to tell us. These shape what we teach first.
- When you signed up (a timestamp) and which page the form was on.
- A one-way hash of your IP address and your browser's user-agent string, only to stop automated abuse and rate-limit sign-ups. We never store your raw IP address.
Your RiffKeys account
You sign in with Apple or Google; there is no RiffKeys password. When you do, we receive and keep:
- An account id from Apple or Google that stays the same each time you sign in.
- Your email address and whether the provider has verified it. With Apple's “Hide My Email” this is a private relay address and we never see your real one.
- Your name, if the provider shares it (Apple only does so the first time).
- Sign-in sessions: when each started and expires, the browser or app version (user-agent), and a one-way hash of the IP address it came from.
- For Apple sign-in only, an encrypted Apple token, kept solely so we can disconnect RiffKeys from your Apple ID when you delete your account.
- An account history: when the account was created and when a sign-in method was linked to it, with a one-way hash of the IP address. It helps us spot an account being taken over.
Apple and Google sign-ins open the same account automatically only for addresses the provider runs itself (iCloud, Gmail, or your own Google Workspace domain); otherwise you link them yourself on the account page. We don't receive your contacts, photos or anything else from your Apple or Google account, and we don't keep Google tokens.
Profiles and progress sync
So your practice follows you between the app and this site, an account stores what the app syncs:
- Profiles: a nickname and an age band (adult, teen or kid aged 6 to 10) for each person who plays. Kids never sign in and we never ask a kid for an email; the account holder manages their profiles.
- Practice attempts: which piece and difficulty, which hands, when (including the calendar day on your device, for streaks), for how long, the practice mode and tempo, and the timing results (how many notes were on time, early, late, wrong or missed, and how far off on average).
- Progress: mastery level per piece and practice streaks, which we work out from your attempts. App settings such as your keyboard's latency offset stay on the device.
We don't record or upload audio or MIDI performances for sync. Deleting a profile in the app removes its attempts and progress from our servers at the next sync.
Website analytics
This website uses Google Analytics 4 to count visits and see which pages help. It records pages viewed, the referring site, approximate location (country or city, derived from your IP address by Google), device and browser type, and uses cookies to tell repeat visits apart. Advertising features, ad personalisation and advertising cookies are turned off.
- In the EEA, the UK and Switzerland, analytics stays off until you choose “Allow analytics” in the banner. Until then Google receives only cookieless signals that cannot identify you across visits (Google Analytics consent mode).
- Elsewhere, analytics is on by default.
- Your choice is remembered in your browser's local storage (not a cookie). Change it any time with “Cookie settings” at the bottom of every page.
- The admin area and the account page's contents are never sent to analytics.
Why we use it (legal bases)
- Your account, sign-in and progress sync: to provide the service you asked for (contract).
- Early-access emails: your request when you joined the list.
- Analytics in the EEA, UK and Switzerland: your consent, which you can withdraw at any time.
- Rate limiting, abuse prevention and security logs: our legitimate interest in keeping the service safe.
What we don't do
- We don't sell, rent or share your data with anyone for their own use.
- We don't add you to a marketing newsletter. We reply by hand.
- We don't use advertising trackers or show ads.
Who processes it for us
Vercel hosts the website and API; a managed Postgres provider stores the database; Apple and Google handle sign-in; Google provides analytics. They process data only to run the service for us. Some of them are in the United States; transfers rely on the EU-US Data Privacy Framework or standard contractual clauses.
How long we keep it
- Account, profiles and progress: until you delete your account.
- Sign-in sessions: 30 days on the web, 90 days in the app, or until you sign out.
- Early-access sign-ups: until RiffKeys launches and you've had the chance to try it, or until you ask.
- Rate-limit counters: one day. Analytics: Google's retention setting for the property.
- Database backups roll over within days; deleted data is not restored from them.
Deleting your account
On the account page (or in the app's settings), choose “Delete account”. It takes effect immediately: the account, every profile, all synced progress and all sessions are deleted, and we disconnect RiffKeys from your Apple ID. Your early-access sign-up is a separate record; email us to remove it too.
Your choices and rights
Email phil@lionprodev.com to see what we hold about you, get a copy, correct it, or have it deleted. We'll do it by hand and confirm when it's done, normally within a week. If you are in the EEA or UK you can also complain to your data protection authority.
Cookies and local storage
- rk_session: keeps you signed in on this site (essential, 30 days).
- rk_oauth_apple / rk_oauth_google: protect a sign-in while it is in progress (essential, 10 minutes).
- rk_admin: staff sign-in to the admin area only.
- Google Analytics cookies (
_ga,_ga_*): only as described above. - Local storage remembers your light or dark theme and your analytics choice.
Changes
When the app launches this notice will be replaced with a reviewed privacy policy. If anything changes before then, we'll update this page and the date above.