Privacy
This page explains exactly what this application stores, where it stores it, and who else can see it.
Last updated 27 September 2026
What we store
Without an account, everything stays in your browser: your assessment answers, your progress, your language and your cookie choice. Nothing is sent to a server, and clearing site data removes all of it.
With an account, the same data is stored in our database so it follows you between devices, together with your email address.
- Email address and, optionally, a display name.
- Assessment attempts, answers and the resulting level estimate.
- Lesson and exercise progress, including which answers used a hint.
- Daily activity counts, used for the streak and the daily allowance.
- Subscription status, if you subscribe.
What we never store
We do not store payment card details: those go directly to Stripe and we never receive them. We do not record your screen or your session. Analytics events carry content identifiers and booleans - never the text of an answer, and never anything you type.
Who processes it
Three third parties are involved, and only if the corresponding feature is used:
- Supabase - database and authentication. Stores your account and progress.
- Stripe - payments. Receives your payment details directly and tells us only your subscription status.
- PostHog - product analytics. Loaded only if you allow analytics; what it receives is described below.
Analytics
Analytics is optional and off until you choose. Until then PostHog is not loaded and nothing is sent; if you refuse, it is never loaded at all.
Screens you open and actions you take before choosing are kept only in this tab's memory. If you allow analytics, they are sent then, each with the time it happened. If you refuse, they are discarded and never sent.
With analytics allowed, PostHog receives:
- Which screens you open, and product events such as starting a lesson or checking an answer - identified by content ids and simple values such as correct or incorrect, never by anything you wrote.
- Page addresses and the site you came from, cut to the site and path: never the part after ? or #, which is where sign-in codes and payment references travel.
- The campaign tags of the link you arrived by, if it had any: utm_source, utm_medium, utm_campaign, utm_content and utm_term. No other campaign or advertising identifier (such as gclid or fbclid) is sent.
- Browser and its language, operating system, device type, screen size and time zone, which PostHog records with every event.
- An anonymous identifier kept in your browser and, once you sign in, your account's internal id. Never your email address or name.
- Your IP address, which any server sees when a request arrives. PostHog may use it to estimate an approximate location unless {OPERATOR} has turned IP collection off in its PostHog project.
Withdrawing analytics consent
Withdrawing consent - from Cookie settings in the footer, or in Settings - takes effect immediately, in the open tab too: PostHog stops, and its cookie and stored identifiers are deleted from this browser. Nothing that happens while analytics is off is sent later.
If you allow analytics again, PostHog starts over with a new anonymous identifier and, if you are signed in, links it to your account id again.
Advertising
The free plan may show ads. Ad scripts load only after you allow advertising cookies, and never during an assessment, a question or a result screen. Subscribers see no ads and the ad script is not loaded for them at all.
Your choices
You can change your cookie decision at any time from the footer. You can delete your account and all associated data by contacting {OPERATOR}; deleting the account removes the progress rows it owns. Without an account, clearing your browser's site data has the same effect.
This document refers to the operator of this deployment as {OPERATOR}. Replace it, together with a contact address, before publishing.