Mentions légales
Dernière mise à jour : 6 octobre 2026
1. L'éditeur du site
Le site SpeedQL (speedql.app) est édité par une personne physique agissant à titre non professionnel. Conformément à l'article 6, III, 2 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique (LCEN), l'éditeur a choisi de ne pas rendre publiques ses coordonnées personnelles : ses éléments d'identification ont été communiqués à l'hébergeur.
Contact : contact.1618bits@gmail.com
Directeur de la publication : l'éditeur du site, joignable à la même adresse.
2. Hébergement
Le site est hébergé par Cloudflare, Inc. (service Cloudflare Pages), 101 Townsend Street, San Francisco, CA 94107, États-Unis — www.cloudflare.com.
3. Accès au site
SpeedQL est gratuit et accessible sans inscription. L'éditeur s'efforce d'assurer son accès en continu, mais ne peut garantir l'absence d'interruption, notamment pour maintenance ou en cas de panne.
4. Propriété intellectuelle
Sauf mention contraire, les textes, exercices, illustrations en pixel art et le logo de SpeedQL sont la propriété de l'éditeur. Toute reproduction ou réutilisation, totale ou partielle, sans autorisation écrite préalable est interdite.
SpeedQL utilise les composants libres suivants, chacun sous sa propre licence :
- sql.js — licence MIT, © 2017 sql.js authors ;
- SQLite — domaine public ;
- Press Start 2P (police) — SIL Open Font License 1.1, © 2012 The Press Start 2P Project Authors ;
- Space Mono (police) — SIL Open Font License 1.1, © 2016 The Space Mono Project Authors.
Le texte complet de ces licences est inclus dans le code source de la page SpeedQL.
5. Marques
Windows et Windows XP sont des marques de Microsoft Corporation. SpeedQL est un projet indépendant, sans lien avec Microsoft : son interface s'inspire du style de Windows XP à titre d'hommage.
6. Données personnelles et cookies
- SpeedQL ne demande aucune inscription.
- Pour faire fonctionner le jeu, le site utilise le stockage local de votre navigateur (localStorage, clé « speedql.v2 ») pour garder votre record, vos meilleures parties, votre progression dans l’apprentissage (niveaux débloqués, exercices réussis, résultat du test de niveau), les questions déjà posées (pour varier les suivantes), vos réglages d’affichage (dont le thème) et votre langue. Il garde aussi vos points faibles (pour chaque notion : réussites et erreurs), les dernières notions choisies dans les exercices personnalisés, une date qui sert à n’afficher qu’une seule fois le rappel « ajouter aux favoris » (clé « speedql.act ») et, votre choix de participer ou non au classement mondial et, si vous publiez un score, un identifiant aléatoire, le pseudo et le pays choisis (voir plus bas). Pour les joueurs qui l’ont connu, l’historique de l’ancien exercice du jour (série de jours, exercices réussis) y reste jusqu’à son effacement. Ces données restent sur votre appareil, ne sont jamais envoyées (hors classement mondial et mode classe, décrits plus bas) et ne servent ni à vous identifier ni à la publicité. Vous pouvez les effacer à tout moment via le menu Réglages › « Effacer toutes mes données », ou en vidant les données du site dans votre navigateur. Votre choix concernant les cookies est gardé de la même façon (clé « speedql.consent ») : 6 mois pour l'accord ou le refus des cookies, puis il est redemandé, et 13 mois pour une opposition.
- Mesure d’audience (PostHog). Le site utilise l’outil PostHog, édité par PostHog Inc., avec son hébergement européen (Francfort, Allemagne), pour comprendre comment le jeu est utilisé et l’améliorer. Ces données ne servent ni à la publicité ni à être revendues, et aucun visiteur n’est identifié (pas de compte, pas de nom ni d’e-mail ; adresses IP anonymisées). Elle fonctionne à deux niveaux :
- Sans votre accord : mesure anonyme, sans cookie. Aucun identifiant n’est enregistré dans votre navigateur : seul un indicateur technique sans identifiant (« __ph_opt_in_out_… », dans le stockage local) mémorise que la mesure doit rester anonyme. PostHog compte les pages vues, les parties, les questions affichées, les réponses justes ou fausses (avec le type d’erreur et le message d’erreur SQLite), les réglages, le type d’appareil et de navigateur et une localisation approximative déduite de l’adresse IP. Un identifiant anonyme, recalculé chaque jour, permet seulement de regrouper les événements d’une même journée. Il n’y a ni enregistrement de session ni carte de chaleur. Cette mesure, limitée aux statistiques de fréquentation du site, ne nécessite pas de consentement ; vous pouvez vous y opposer avec le bouton « M’opposer à toute mesure » du bandeau, accessible par le lien « Gérer les cookies » en bas de chaque page : plus aucun événement n’est alors envoyé.
- Avec votre accord (bouton « Accepter ») : suivi complet. PostHog dépose en plus un identifiant aléatoire dans un cookie et dans le stockage local (noms commençant par « ph_ »), valable 1 an au plus, pour relier vos visites entre elles (progression, fidélité), et peut enregistrer vos sessions de jeu (clics, défilement, affichage de la page) et produire des cartes de chaleur. Dans ces enregistrements, les requêtes SQL que vous tapez sont visibles ; tous les autres champs de saisie sont masqués. Base légale : votre consentement, que vous pouvez retirer à tout moment avec le lien « Gérer les cookies » : les cookies PostHog sont alors supprimés et la mesure redevient anonyme.
- Les requêtes SQL que vous écrivez s'exécutent dans votre navigateur, grâce à un moteur SQLite intégré à la page. Leur texte n’est pas envoyé dans les statistiques : seuls leur longueur, le résultat (juste, faux ou erreur) et, en cas d’erreur, le message de SQLite (qui peut citer un mot de la requête) sont mesurés. Avec votre accord seulement, elles peuvent apparaître dans les enregistrements de session.
- Le pays proposé par défaut dans le formulaire du classement mondial est déduit, sur votre appareil, du fuseau horaire et de la langue de votre navigateur. Il n'est envoyé que si vous le validez en publiant votre score.
En tant qu'hébergeur, Cloudflare traite des données techniques de connexion (par exemple l'adresse IP, la date et la page demandée) pour distribuer le site et le protéger contre les abus. Ces traitements, leurs finalités et leurs durées de conservation sont décrits dans la politique de confidentialité de Cloudflare. L'éditeur n'a pas accès à ces journaux à des fins d'identification. Le seul outil de mesure d'audience est PostHog, décrit ci-dessus. Pour toute question relative à vos données, ou pour exercer vos droits (accès, rectification, effacement, opposition), vous pouvez écrire à contact.1618bits@gmail.com. Vous pouvez aussi adresser une réclamation à la CNIL.
Mode classe
Quand un enseignant crée une partie en mode classe, les données de la partie sont traitées par un serveur Cloudflare (Workers et Durable Objects) afin d’afficher le classement en direct : code de la partie, réglages, pseudo choisi par chaque élève, score, nombre de bonnes réponses, d’erreurs et de questions passées. Aucun compte et aucune adresse e-mail ne sont transmis. Quand une requête est juste sur l’appareil de l’élève, son texte est envoyé au serveur pour être vérifié et chronométré (c’est le serveur qui attribue les points) ; il n’est ni enregistré ni journalisé. Pour limiter les abus, le serveur compte les créations de parties et les lectures de codes depuis une même connexion à l’aide d’une empreinte tronquée de l’adresse IP (jamais l’adresse elle-même), conservée au plus une heure. L’ordre des questions est tiré au hasard pour chaque élève, les pseudos grossiers sont refusés et l’enseignant peut accepter chaque arrivant. Le navigateur de l’enseignant garde la clé de sa partie pendant 8 heures pour qu’il puisse la reprendre (stockage local de son appareil). Ces données sont effacées automatiquement deux heures après la fin de la partie, ou trois heures après sa création si elle n’est jamais lancée. Ce traitement est nécessaire pour fournir le jeu demandé par l’enseignant et les élèves. Nous recommandons aux élèves de choisir un prénom ou un surnom plutôt que leur nom complet ; l’enseignant peut retirer un pseudo inapproprié de la partie.
Classement mondial du mode chrono
Le mode chrono comporte un classement mondial : le top 10 des meilleures parties, pour le clavier et pour les tuiles. Chaque partie chrono y participe automatiquement, sans inscription ; vous pouvez vous en retirer à tout moment dans le menu Réglages › Classement mondial (vos parties restent alors entièrement sur votre appareil). Il utilise le même serveur Cloudflare (Workers et Durable Objects) que le mode classe. Voici ce qui est traité :
- Au lancement d’une partie chrono : le navigateur demande au serveur un numéro de partie aléatoire et une graine aléatoire, qui sert à tirer les questions. Pour limiter les abus, le serveur compte les parties lancées depuis une même connexion à l’aide d’une empreinte tronquée de l’adresse IP (jamais l’adresse elle-même), conservée environ une heure puis effacée automatiquement.
- À la fin de la partie : le navigateur envoie le journal de la partie (l’heure de chaque essai, le texte des requêtes SQL tapées et les questions passées) ainsi que la liste des questions déjà posées lors de vos parties précédentes (des numéros, gardés dans votre navigateur pour varier les questions), afin que le serveur rejoue la partie et vérifie le score. Les requêtes ne servent qu’à cette vérification : elles ne sont ni enregistrées, ni journalisées, ni utilisées dans les statistiques. Le serveur ne garde que le résultat vérifié (score, niveau, durée, clavier ou tuiles), deux heures au plus.
- Si votre score entre dans le top 10 mondial, et seulement dans ce cas, le jeu vous propose, une seule fois, de choisir un pseudo et un pays ; sinon rien n’est proposé. La première publication demande votre action (bouton « Entrer au classement ») ; ensuite, chaque score qui entre dans le top 10 est publié automatiquement avec le même pseudo et le même pays, que vous pouvez modifier à tout moment dans Réglages › Profil du classement. Si votre score devient le n° 1 mondial, vous pouvez en outre laisser un message de 140 caractères au plus (sans lien ni adresse) : il est affiché à tous les joueurs, à la fin de leurs parties chrono, avec votre drapeau, votre pseudo et le nombre de jours écoulés depuis sa rédaction. Il disparaît quand votre record est battu ou quand vous retirez votre score, et l’éditeur peut le retirer s’il est inapproprié. Sont alors conservés : le pseudo (2 à 16 caractères ; nous recommandons un prénom ou un surnom plutôt que votre nom complet), le pays que vous choisissez (facultatif, jamais déduit de l’adresse IP), le score, la durée, le mode de saisie, la date et l’empreinte d’un identifiant aléatoire créé sur votre appareil, qui permet de retrouver et de retirer votre score. Le classement affiche le rang, le drapeau du pays, le pseudo et le score.
- Durée de conservation : seuls les 10 meilleurs scores de chaque mode sont conservés. Un score qui sort du top 10 est effacé aussitôt ; un score du top 10 reste tant qu’il n’est pas dépassé, ou jusqu’à ce que vous le retiriez.
- Vos droits : vous pouvez retirer votre score à tout moment avec le bouton « Retirer mon score du classement » de l’écran du classement (sur l’appareil qui a servi à publier) ou avec « Effacer toutes mes données » du menu Réglages. Vous pouvez aussi écrire à l’adresse de contact ci-dessus en indiquant votre pseudo. Vous pouvez vous opposer à l’envoi de vos parties en vous retirant du classement (Réglages › Classement mondial). L’éditeur peut retirer un pseudo inapproprié.
Base légale : l’envoi des parties chrono pour vérification repose sur l’intérêt légitime de l’éditeur à tenir un classement fiable, auquel vous pouvez vous opposer à tout moment comme indiqué ci-dessus ; la publication du pseudo et du pays repose sur votre consentement, donné en validant le formulaire (ou en enregistrant votre profil dans Réglages) et que vous retirez à tout moment : « Retirer mon score du classement » efface aussi le pseudo et le pays enregistrés sur votre appareil. Aucun compte ni adresse e-mail n’est demandé. Le score est vérifié par rejeu de la partie, mais cela ne prouve pas qu’elle a été jouée par un humain.
7. Responsabilité
Les exercices sont proposés à titre pédagogique. L'éditeur veille à leur exactitude, mais ne saurait être tenu responsable d'une erreur, d'une omission ou de l'usage fait des informations du site.
8. Droit applicable
Les présentes mentions légales sont régies par le droit français.
Licences des composants (polices Press Start 2P et Space Mono, moteur sql.js) : texte complet des licences.