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
| Data | Why | Legal basis | Kept |
|---|---|---|---|
| Practice progress in your browser | So you can continue where you left off, without an account | Service 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 warning | Create and secure your account, sign you in, give paid access; delete accounts no longer used | Contract; 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 them | Adapt the Service to you; prove what you accepted | Contract; legitimate interest (proof of acceptance) | With the account |
| Saved progress: answers, scores and mock results | Keep your progress on every device | Contract | With 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 in | Send only the emails you asked for | Consent | Until 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 in | Fix questions | Legitimate 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 it | Give and prove your access, handle refunds, keep the accounts | Contract; 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 site | Legitimate interest (audience measurement; you can object at any time) | 25 months |
| Abuse protection: a scrambled (hashed) form of your network address, account ID or email | Limit repeated sign-ups, reports and requests | Legitimate interest (security) | 2 days |
| Service emails: sign-up confirmation, password reset, purchase receipt, important messages about your paid access | Run your account and your access | Contract | Sending records are kept by our email providers under their own policies |
| Technical logs at our providers (Vercel, Supabase, Resend), including IP address, browser and time | Run and secure the Service | Legitimate 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:
| Name | What it is for | Type | Kept |
|---|---|---|---|
| tmf_v2 | Your practice progress | Essential, local storage | Until you clear it |
| tcfb1_seen | Remembers you have seen the practice welcome | Essential, local storage | Until you clear it |
| sb-…-auth-token | Keeps you signed in, if you have an account | Essential, local storage | Until you sign out |
| sb-…-auth-token-code-verifier | One-time security code that protects sign-in (PKCE) | Essential, local storage | Only during sign-in |
| tmf_pending_consent | Holds your acceptance of the terms for a moment during sign-up | Essential, local storage | Removed once saved to your account |
| tmf_claim | When you pay without an account: a random code that lets this browser sign you in when you come back from the payment page | Essential, local storage | Removed once you are signed in; ignored after 24 hours |
| tmf_consent | Remembers your choice on visit counting | Essential, local storage | 6 months, then we ask again |
| tmf_lang | Remembers whether you chose English or French for the offer and the legal pages | Essential, local storage | Until you clear it or choose again |
| tmf_aid | Random ID to count visits without knowing who you are; not linked to your account | Audience measurement, local storage | Renewed every 13 months |
| tmf_hero | Which of two home page paintings you see, so we can tell which one helps more visitors start a free test; not linked to your account | Audience measurement, local storage | Renewed every 13 months; never set if you refuse visit counting |
| tmf_sid, tmf_utm | Groups one visit and remembers which link brought you | Audience measurement, session storage | Until 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.
Confidentialité
Politique de confidentialité
Dernière mise à jour : 1er novembre 2026. Également disponible en anglais ; en cas de différence entre les deux versions, la version française prévaut.
Responsable du traitement
Bruce Salamon EI (entrepreneur individuel, micro-entreprise) – Test my French
Adresse : 8 bis rue Abel, 75012 Paris, France
Téléphone : 07 44 42 22 22
E-mail : support@testmyfrench.com
Données collectées, finalités et durées de conservation
| Données | Finalité | Base légale | Durée |
|---|---|---|---|
| Progression dans votre navigateur | Reprendre là où vous vous êtes arrêté, sans compte | Service demandé (contrat) | Jusqu’à ce que vous l’effaciez |
| Compte : e-mail, mode de connexion et mot de passe (conservé par Supabase Auth sous forme hachée uniquement). Avec la connexion Google, également le nom, la photo de profil et l’identifiant Google transmis par Google. Si vous achetez sans compte, nous en ouvrons un avec l’e-mail saisi sur la page de paiement Stripe, sans mot de passe (connexion par lien envoyé par e-mail ou par Google). La date de votre dernière visite connectée et d’un éventuel avertissement d’inactivité | Créer et sécuriser votre compte, vous connecter, donner l’accès payant ; supprimer les comptes inutilisés | Contrat ; intérêt légitime (ne pas conserver de comptes inutilisés) | Jusqu’à la suppression du compte. Après 2 ans sans activité (connexion, visite en étant connecté ou progression enregistrée), nous envoyons un e-mail d’avertissement et supprimons le compte 30 jours plus tard, sauf si vous vous reconnectez. Un compte dont l’accès payant est en cours n’est jamais supprimé ainsi |
| Profil : votre objectif (naturalisation, carte de résident ou carte pluriannuelle), langue de l’interface, version des conditions et date d’acceptation | Adapter le Service ; prouver ce que vous avez accepté | Contrat ; intérêt légitime (preuve de l’acceptation) | Avec le compte |
| Progression enregistrée : réponses, scores et résultats d’examens blancs | Retrouver votre progression sur tous vos appareils | Contrat | Avec le compte |
| Actualités par e-mail : e-mail, sujets choisis, objectif et niveau s’ils sont connus, page d’inscription, texte exact du consentement et sa date, date de confirmation, et votre compte si vous étiez connecté | Envoyer uniquement les e-mails demandés | Consentement | Jusqu’à la désinscription (suppression immédiate). Inscriptions non confirmées supprimées après 30 jours. Supprimées après 3 ans sans confirmation ni renouvellement de votre inscription |
| Signalements d’erreur : numéro de la question, votre message, et l’identifiant de votre compte si vous étiez connecté | Corriger les questions | Intérêt légitime (exactitude des contenus) | Supprimés 12 mois après leur envoi ; un signalement encore ouvert est conservé jusqu’à son traitement |
| Accès payants : formule, dates de début et de fin, montant, statut, références de paiement Stripe, mode d’attribution et note de l’administrateur qui l’a accordé | Donner et prouver votre accès, gérer les remboursements, tenir la comptabilité | Contrat ; obligation légale (comptabilité) | 10 ans (comptabilité). Si vous supprimez votre compte, l’enregistrement est conservé sans lien avec celui-ci |
| Événements d’usage (voir ci-dessous) | Mesurer l’audience et améliorer le site | Intérêt légitime (mesure d’audience ; vous pouvez vous y opposer à tout moment) | 25 mois |
| Protection contre les abus : forme brouillée (hachée) de votre adresse réseau, identifiant de compte ou e-mail | Limiter les inscriptions, signalements et requêtes répétés | Intérêt légitime (sécurité) | 2 jours |
| E-mails de service : confirmation d’inscription, réinitialisation du mot de passe, reçu d’achat, messages importants sur votre accès payant | Faire fonctionner votre compte et votre accès | Contrat | Traces d’envoi conservées par nos prestataires d’e-mail selon leurs propres politiques |
| Journaux techniques chez nos prestataires (Vercel, Supabase, Resend), dont adresse IP, navigateur et heure | Faire fonctionner et sécuriser le Service | Intérêt légitime (sécurité) | Conservés par eux selon leurs propres politiques |
Événements d'usage. Pages vues et les actions suivantes : test gratuit, entraînement, examen blanc et entraînement civique commencés ou terminés ; page d'offre vue ; clic sur l'offre ; paiement commencé ; paiement réussi ; retour sur le site après paiement ; inscription aux actualités ou confirmation ; compte créé ; connexion ; erreur signalée ; question d'exemple répondue ; carte de score partagée ; utilisation de l'outil d'orientation (parcours et niveau uniquement). Chaque événement comporte un identifiant de visiteur aléatoire, un identifiant de visite, l'adresse de la page, le site de provenance, les paramètres de campagne (UTM), votre pays, votre type d'appareil et la version de la page d'accueil vue. Ces événements ne sont jamais liés à votre compte et votre adresse IP n'y est pas enregistrée.
Nous ne vendons pas vos données et ne les partageons pas à des fins publicitaires.
Merci de ne pas nous envoyer d'informations sensibles. Nous n'avons pas besoin, et ne demandons pas, d'informations sur votre situation administrative, votre demande de nationalité, votre santé, votre religion ou vos documents officiels. Merci de ne pas les inclure dans les signalements d'erreur ni dans vos e-mails ; si vous les envoyez malgré tout, nous les supprimons lors du traitement de votre message.
Cookies et stockage sur votre appareil
Nous n'utilisons aucun cookie publicitaire ni outil de mesure tiers. Ce que nous enregistrons sur votre appareil :
| Nom | Utilité | Type | Durée |
|---|---|---|---|
| tmf_v2 | Votre progression | Essentiel, stockage local | Jusqu’à ce que vous l’effaciez |
| tcfb1_seen | Mémorise que vous avez vu l’accueil de l’entraînement | Essentiel, stockage local | Jusqu’à ce que vous l’effaciez |
| sb-…-auth-token | Vous garde connecté, si vous avez un compte | Essentiel, stockage local | Jusqu’à la déconnexion |
| sb-…-auth-token-code-verifier | Code de sécurité à usage unique qui protège la connexion (PKCE) | Essentiel, stockage local | Uniquement pendant la connexion |
| tmf_pending_consent | Garde un instant votre acceptation des conditions pendant l’inscription | Essentiel, stockage local | Supprimé dès qu’il est enregistré sur votre compte |
| tmf_claim | Si vous payez sans compte : un code aléatoire qui permet à ce navigateur de vous connecter à votre retour de la page de paiement | Essentiel, stockage local | Supprimé dès que vous êtes connecté ; ignoré après 24 heures |
| tmf_consent | Mémorise votre choix sur la mesure d’audience | Essentiel, stockage local | 6 mois, puis nous redemandons |
| tmf_lang | Mémorise si vous avez choisi l’anglais ou le français pour l’offre et les pages juridiques | Essentiel, stockage local | Jusqu’à ce que vous l’effaciez ou changiez de langue |
| tmf_aid | Identifiant aléatoire pour compter les visites sans savoir qui vous êtes ; non lié à votre compte | Mesure d’audience, stockage local | Renouvelé tous les 13 mois |
| tmf_hero | Laquelle des deux illustrations de la page d’accueil vous voyez, pour savoir laquelle aide le plus de visiteurs à commencer un test gratuit ; non lié à votre compte | Mesure d’audience, stockage local | Renouvelé tous les 13 mois ; jamais enregistré si vous refusez la mesure d’audience |
| tmf_sid, tmf_utm | Regroupe une visite et mémorise le lien qui vous a amené | Mesure d’audience, stockage de session | Jusqu’à la fermeture de l’onglet |
La mesure d'audience respecte les conditions de la CNIL pour l'exemption de consentement : statistiques anonymes uniquement, utilisées seulement pour améliorer ce site, jamais croisées avec votre compte ni partagées. Vous pouvez la refuser à tout moment via « Cookie settings » en bas de chaque page ; nous cessons alors de compter vos visites et supprimons l'identifiant aléatoire. Vercel Web Analytics, qui compte les pages vues sans cookie, s'arrête aussi.
Google. Le script de connexion Google ne se charge que si vous cliquez sur « Continue with Google » ; Google peut alors lire ses propres cookies, selon sa politique de confidentialité. Stripe. Lors d'un achat, le paiement a lieu sur la page de Stripe, qui utilise ses propres cookies pour la sécurité et la prévention de la fraude.
Destinataires des données
- Vercel Inc. (États-Unis) : hébergement et comptage des pages vues sans cookie. Certifié au titre du cadre de protection des données UE–États-Unis (Data Privacy Framework).
- Supabase : base de données et connexion, données hébergées dans l'UE. Le support et certains traitements peuvent avoir lieu aux États-Unis (Supabase, Inc.) et à Singapour (Supabase Pte. Ltd.), encadrés par les clauses contractuelles types de la Commission européenne.
- Resend (États-Unis) : envoi des e-mails. Certifié au titre du Data Privacy Framework UE–États-Unis.
- Google (Google Ireland Limited ; Google LLC, États-Unis) : uniquement si vous choisissez « Continue with Google ». Google LLC est certifié au titre du Data Privacy Framework UE–États-Unis.
- Stripe (Stripe Payments Europe, Ltd., Irlande ; Stripe, Inc., États-Unis), prestataire de paiement : nous lui transmettons votre adresse e-mail et l'identifiant de votre compte (si vous payez sans compte, vous saisissez votre e-mail sur la page de Stripe, qui nous le renvoie pour ouvrir votre compte), la version des conditions acceptée et la date de votre demande d'accès immédiat, pour encaisser le paiement et émettre votre facture. Stripe collecte et traite directement les données de carte, auxquelles nous n'avons jamais accès. Stripe agit en tant que responsable de traitement indépendant pour la prévention de la fraude et ses propres obligations légales, selon sa politique de confidentialité et ses propres garanties de transfert. Les factures et justificatifs de paiement sont conservés 10 ans, conformément aux obligations comptables françaises.
Au sein de Test my French, seul l'administrateur (Bruce Salamon) peut consulter les comptes et les accès payants, avec une connexion à double facteur.
Sécurité
Les données sont chiffrées en transit (HTTPS) et au repos chez nos prestataires. Chaque compte ne peut lire que ses propres données (sécurité au niveau des lignes de la base). Les mots de passe sont gérés par Supabase Auth et ne sont jamais conservés par nous sous forme lisible. Les données de paiement sont traitées uniquement par le prestataire de paiement.
Vos droits
- Accéder à vos données, les rectifier, les faire effacer ou les recevoir dans un format portable.
- Vous opposer aux traitements fondés sur l'intérêt légitime (par exemple la mesure d'audience) et demander la limitation d'un traitement.
- Retirer votre consentement à tout moment (par exemple en vous désinscrivant), sans effet sur ce qui a été fait auparavant.
- Définir des directives relatives au sort de vos données après votre décès (article 85 de la loi Informatique et Libertés).
- Introduire une réclamation auprès de la CNIL : cnil.fr/fr/plaintes.
Depuis la page de votre compte, vous pouvez télécharger vos données et supprimer votre compte ; la suppression nécessite une connexion récente et une confirmation. Chaque e-mail d'actualités comporte un lien de désinscription en un clic. Pour toute autre demande, écrivez à support@testmyfrench.com. Nous répondons dans un délai d'un mois.
Seul votre e-mail (avec un mot de passe, ou Google) est nécessaire pour avoir un compte ; sans lui, nous ne pouvons pas en créer. Tout le reste est facultatif, et l'entraînement gratuit fonctionne sans compte. Aucune décision vous concernant n'est prise sur le seul fondement d'un traitement automatisé ; les scores sont seulement indicatifs.
Mineurs
Le Service s'adresse aux personnes âgées de 15 ans et plus. Avant 15 ans, les e-mails marketing nécessitent le consentement d'un parent.
Modifications
Nous mettrons cette page à jour si les données collectées ou leurs durées de conservation changent, et informerons par e-mail les titulaires d'un compte des changements importants.