Test my French

Privacy

Privacy policy

Last updated 1 November 2026. Also available in French (switch above); if the two versions ever differ, the French one applies.

Who is responsible

Controller: Bruce Salamon EI (entrepreneur individuel, micro-entreprise) – Test my French
Address: 8 bis rue Abel, 75012 Paris, France
Phone: 07 44 42 22 22 (+33 7 44 42 22 22)
Email: support@testmyfrench.com

What we collect, why, and for how long

DataWhyLegal basisKept
Practice progress in your browserSo you can continue where you left off, without an accountService you asked for (contract)Until you clear it
Account: email, sign-in method and password (kept by Supabase Auth in scrambled, hashed form only). With Google sign-in, also the name, profile picture and Google ID that Google provides. If you buy without an account, we open one with the email you typed on Stripe’s payment page, with no password (you sign in with an emailed link or Google). The date of your last signed-in visit and of any inactivity warningCreate and secure your account, sign you in, give paid access; delete accounts no longer usedContract; legitimate interest (not keeping unused accounts)Until you delete your account. After 2 years without activity (signing in, a signed-in visit or saved progress) we send one warning email and delete the account 30 days later unless you sign in. Accounts with paid access still running are never deleted this way
Profile: your goal (naturalisation, resident card or multi-year card), interface language, terms version and date you accepted themAdapt the Service to you; prove what you acceptedContract; legitimate interest (proof of acceptance)With the account
Saved progress: answers, scores and mock resultsKeep your progress on every deviceContractWith the account
Email updates: email, topics chosen, goal and level if known, the page you signed up from, the exact consent wording and its date, confirmation date, and your account if you were signed inSend only the emails you asked forConsentUntil you unsubscribe (then deleted at once). Unconfirmed sign-ups deleted after 30 days. After 3 years without confirming or renewing your sign-up, deleted
Mistake reports: question number, your message, and your account ID if you were signed inFix questionsLegitimate interest (accurate content)Deleted 12 months after they are sent; a report still open is kept until handled
Paid access records: plan, start and end dates, amount, status, Stripe payment references, how access was given and the note of the admin who granted itGive and prove your access, handle refunds, keep the accountsContract; legal obligation (accounting)10 years for accounting. If you delete your account, the record is kept without the link to it
Usage events (see below)Count visits and improve the siteLegitimate interest (audience measurement; you can object at any time)25 months
Abuse protection: a scrambled (hashed) form of your network address, account ID or emailLimit repeated sign-ups, reports and requestsLegitimate interest (security)2 days
Service emails: sign-up confirmation, password reset, purchase receipt, important messages about your paid accessRun your account and your accessContractSending records are kept by our email providers under their own policies
Technical logs at our providers (Vercel, Supabase, Resend), including IP address, browser and timeRun and secure the ServiceLegitimate interest (security)Kept by them under their own policies

Usage events. Page views and these actions: free test, practice, mock exam and civic practice started or finished; paywall seen; upgrade clicked; checkout started; payment succeeded; back on the site after paying; email updates signed up for or confirmed; account created; signed in; mistake reported; sample question answered; score card shared; test finder used (route and level only). Each event carries a random visitor ID, a visit ID, the page path, the site you came from, campaign (UTM) tags, your country, your device type and the home page version you saw. Events are never linked to your account, and we do not store your IP address in them.

We do not sell your data or share it for advertising.

Please do not send us sensitive information. We do not need, and do not ask for, details of your immigration status, your nationality application, your health, your religion or any official document. Please leave them out of mistake reports and emails; if you send them anyway, we delete them when we handle your message.

Cookies and storage on your device

We use no advertising cookies and no third-party analytics. What we store on your device:

NameWhat it is forTypeKept
tmf_v2Your practice progressEssential, local storageUntil you clear it
tcfb1_seenRemembers you have seen the practice welcomeEssential, local storageUntil you clear it
sb-…-auth-tokenKeeps you signed in, if you have an accountEssential, local storageUntil you sign out
sb-…-auth-token-code-verifierOne-time security code that protects sign-in (PKCE)Essential, local storageOnly during sign-in
tmf_pending_consentHolds your acceptance of the terms for a moment during sign-upEssential, local storageRemoved once saved to your account
tmf_claimWhen you pay without an account: a random code that lets this browser sign you in when you come back from the payment pageEssential, local storageRemoved once you are signed in; ignored after 24 hours
tmf_consentRemembers your choice on visit countingEssential, local storage6 months, then we ask again
tmf_langRemembers whether you chose English or French for the offer and the legal pagesEssential, local storageUntil you clear it or choose again
tmf_aidRandom ID to count visits without knowing who you are; not linked to your accountAudience measurement, local storageRenewed every 13 months
tmf_heroWhich of two home page paintings you see, so we can tell which one helps more visitors start a free test; not linked to your accountAudience measurement, local storageRenewed every 13 months; never set if you refuse visit counting
tmf_sid, tmf_utmGroups one visit and remembers which link brought youAudience measurement, session storageUntil you close the tab

Visit counting follows the CNIL conditions for audience measurement without consent: anonymous statistics only, used only to improve this site, never combined with your account or shared. You can refuse it at any time with “Cookie settings” at the bottom of every page; we then stop counting your visits and delete the random ID. Vercel Web Analytics, which counts page views without cookies, also stops.

Google. The Google sign-in script loads only if you click “Continue with Google”; Google may then read its own cookies, under Google's privacy policy. Stripe. When you buy, payment takes place on Stripe's page, which uses its own cookies for security and fraud prevention.

Who receives your data

  • Vercel Inc. (USA): hosting and cookie-free page-view counts. Certified under the EU–US Data Privacy Framework.
  • Supabase: database and sign-in, data stored in the EU. Support and some processing may take place in the USA (Supabase, Inc.) and Singapore (Supabase Pte. Ltd.), under the European Commission's standard contractual clauses.
  • Resend (USA): sending emails. Certified under the EU–US Data Privacy Framework.
  • Google (Google Ireland Limited; Google LLC, USA): only if you choose “Continue with Google”. Google LLC is certified under the EU–US Data Privacy Framework.
  • Stripe (Stripe Payments Europe, Ltd., Ireland; Stripe, Inc., USA), our payment processor: we send it your email address and your account ID (if you pay without an account, you type your email on Stripe’s page and Stripe sends it back to us so we can open your account), the terms version you accepted and when you asked for immediate access, so it can take the payment and issue your invoice. Stripe collects and processes your card details directly; we never see them. Stripe acts as an independent controller for fraud prevention and its own legal obligations, under its own privacy policy and transfer safeguards. Invoices and payment records are kept 10 years, as French accounting law requires.

Inside Test my French, only the administrator (Bruce Salamon) can see account and payment records, with two-factor sign-in.

Security

Data is encrypted in transit (HTTPS) and at rest at our providers. Each account can only read its own data (database row-level security). Passwords are handled by Supabase Auth and never stored by us in readable form. Payment details are handled only by the payment provider.

Your rights

  • Access your data, correct it, have it erased, or receive it in a portable format.
  • Object to uses based on legitimate interest (for example visit counting), and ask us to restrict a use.
  • Withdraw your consent at any time (for example by unsubscribing); this does not affect what was done before.
  • Give instructions on what happens to your data after your death (French law).
  • Complain to the CNIL: cnil.fr/fr/plaintes.

From your account page you can download your data and delete your account; deleting needs a recent sign-in and a confirmation. Every update email has a one-click unsubscribe. For anything else, email support@testmyfrench.com. We reply within one month.

Only your email (and a password, or Google) is required to have an account; without it we cannot create one. Everything else is optional, and the free practice works without an account. We make no decisions about you based solely on automated processing; scores are indicative only.

Children

The Service is for people aged 15 and over. Under 15, marketing emails need a parent's consent.

Changes

We will update this page when what we collect or how long we keep it changes, and tell account holders by email about important changes.