Retour à la lecture

Confidentialité

Par défaut, aucune collecte côté serveur

Par défaut, ShemaProject ne crée pas de compte et n'envoie aucune donnée personnelle à un serveur. Le lecteur fonctionne entièrement dans votre navigateur. Aucun traceur publicitaire ni outil de mesure d'audience n'est utilisé : c'est pourquoi aucun bandeau de consentement aux cookies n'est nécessaire, et la lecture reste totalement anonyme — même si vous activez ensuite un compte (voir ci-dessous).

Données stockées sur votre appareil

Vos réglages et contenus personnels sont enregistrés dans le stockage local (localStorage et, pour la clé de déverrouillage persistée, IndexedDB) de votre navigateur. Sans compte, ils n'en sortent jamais. Avec un compte (facultatif), les données marquées (sync) sont chiffrées bout-en-bout sur votre appareil puis synchronisées sous forme de blobs opaques (voir « Compte & synchronisation ») :

  • Versets favoris (sync) (bymFavorites)
  • Signets et groupes de signets (sync) (bymBookmarkGroups / bymBookmarks)
  • Surlignages et notes personnelles (sync) (bymHighlights / bymNotes)
  • Version de lecture active et comparaison (bym:version / bym:compare-version)
  • Réglages de lecture (police, taille, thème, disposition) (sync opt-in) (reader-preferences)
  • Dernière position de lecture, reprise (sync) (reading-position)
  • Historique de navigation / recherches récentes (sync) (bym:nav-history)
  • Préférences de synchronisation (sync activée, opt-in réglages) (bym:account)
  • Horloges et file d'attente de synchronisation locales (bym:sync-meta / bym:sync-queue)
  • Clé de déverrouillage persistée « se souvenir de cet appareil » (30 jours, opt-in — spec 28) : handle crypto non-extractable, pas d'octets bruts sur disque (bym:device-keys (IndexedDB))

Compte & synchronisation (facultatif)

La création d'un compte est facultative. Le lecteur reste pleinement utilisable sans compte. Le compte ne sert qu'à synchroniser vos favoris, signets, notes, surlignages, position de lecture et — si vous l'activez explicitement — vos réglages de lecture entre vos appareils.

Chiffrement bout-en-bout. Toutes les données synchronisées sont chiffrées sur votre appareil (AES-GCM 256) avant de quitter celui-ci. Le serveur ne stocke que des blobs opaques (texte chiffré + nonce) : il n'a jamais accès à votre clé, ni au contenu en clair, ni à votre clé de récupération. Si vous ouvrez les requêtes réseau dans DevTools, vous ne verrez que du chiffré.

Déverrouillage par mot de passe (routine). Au quotidien, vous déverrouillez votre synchronisation avec votre mot de passe : une clé de chiffrement (DEK) est wrappée par une clé dérivée de votre mot de passe (et conservée sur le serveur dans une enveloppe opaque). Le serveur ne voit jamais votre mot de passe ni la DEK.

Clé de récupération (secours d'urgence). Une clé de récupération est générée localement à la création du compte, affichée une fois à l'écran et envoyée par e-mail à l'adresse du compte (elle transite donc fugacement par notre prestataire e-mail, mais n'est jamais persistée côté serveur). Elle sert à retrouver vos données si vous perdez votre mot de passe, et au déverrouillage routine des comptes sans mot de passe (lien magique). Si vous perdez cette clé, vos données synchronisées sont irrécupérables — nous ne pouvons pas les réinitialiser. Conservez-la en lieu sûr.

Se souvenir de cet appareil (30 jours). À l'ouverture de la modale, vous pouvez cocher « se souvenir de cet appareil » : la clé de déverrouillage (DEK) est alors persistée sur cet appareil dans IndexedDB sous la forme d'un handle crypto non-extractable (aucun octet brut sur disque), avec une expiration de 30 jours. Au rechargement, vos données se déverrouillent alors sans redemander votre mot de passe. Quiconque accède à cet appareil pendant cette fenêtre peut utiliser la sync ; c'est un compromis friction/sécurité assumé et opt-in. Se déconnecter ou supprimer le compte oublie cette clé.

Hébergement. Les blobs chiffrés sont stockés sur Neon Postgres (eu-west-2 — AWS Londres, Royaume-Uni). Le Royaume-Uni bénéficie d'une décision d'adéquation RGPD de l'Union européenne. Seul le texte chiffré transite et y est conservé ; aucun identifiant de navigation, aucune métrique, aucun comptage, aucun e-mail de relance.

Authentification auto-hébergée. La gestion du compte (identifiants, sessions, vérification e-mail) repose sur Better Auth, exécuté sur nos propres serveurs : les tables d'authentification vivent dans la même base Neon Postgres que vos blobs chiffrés. Aucun service d'authentification managé tiers ne traite vos identifiants.

E-mails transactionnels. Les messages du compte (vérification de l'adresse e-mail, réinitialisation du mot de passe, lien de connexion) sont envoyés via Resend. L'adresse e-mail, des liens signés à courte expiration (vérification, reset, magic-link) et la clé de récupération d'urgence (e-mailée à l'adresse du compte, jamais persistée). Aucune donnée de lecture, aucun favori, aucun blob chiffré ne transite par ce canal — seulement l'adresse e-mail et un lien signé à courte expiration.

Mot de passe oublié ≠ accès aux données. Réinitialiser votre mot de passe restaure l'accès à votre compte (connexion), pas à vos données : la clé de récupération reste le filet pour déchiffrer vos blobs. Après l'avoir déverrouillée via la clé de récupération, vous pouvez re-lier votre nouveau mot de passe pour retrouver le déverrouillage routine.

Lecture anonyme préservée. Le compte ne ferme jamais le lecteur : aucune authentification n'est exigée pour lire, et les pages de lecture ne passent pas par le middleware d'authentification.

Avatar. Une fois connecté, l'avatar affiché en haut à droite est généré à la demande par notre service d'avatars à partir de votre identifiant de compte interne (jamais depuis votre adresse e-mail). Cet identifiant, opaque et non personnel, transite vers ce service pour produire l'image ; il n'est pas stocké — l'avatar est déterministe (ne dépend que de cet identifiant et de l'harmonie de couleurs choisie), régénéré à chaque affichage et mis en cache côté CDN. Le choix de l'harmonie est une préférence cosmétique, synchronisée avec vos réglages si l'opt-in est actif.

Vos droits : export et suppression. Vous pouvez exporter vos données à tout moment, et supprimer votre compte à tout moment — ce qui purge immédiatement tous les blobs cloud. La suppression est définitive et immédiate ; les données locales (sur l'appareil) sont conservées.

Effacer ou exporter vos données

Vous gardez le contrôle total. Vous pouvez exporter et réimporter vos données (favoris, signets, notes) au format JSON depuis la page Favoris — ou, avec un compte, depuis « Vos données » dans les réglages de lecture.

Pour tout effacer sans compte, videz les données du site dans les réglages de votre navigateur. Avec un compte, « Supprimer mon compte » purge les données cloud ; « Exporter mes données » télécharge une sauvegarde JSON locale indépendante.