Juridik
Politique de confidentialité
Traitement des données personnelles | ForSwim
La présente politique décrit comment Arthur Noël (ForSwim) traite vos données personnelles lorsque vous utilisez https://www.forswim.app et l’application associée, conformément au Règlement (UE) 2016/679 (RGPD) et à la loi n° 78-17 du 6 janvier 1978 modifiée (« Informatique et Libertés »).
Cette politique est cohérente avec le fonctionnement réel du produit au 31 octobre 2026. Si une fonctionnalité évolue, la présente page sera mise à jour.
1. Responsable du traitement
- Éditeur / vendeur : Arthur Noël, Entrepreneur individuel, nom commercial A.Natation, éditeur de l’application ForSwim
- Contact : contact@forswim.app
- SIRET : 941 900 052 00015
- Adresse : 21 Rue du Cachon, 55000 Fains-Véel, France
- Code APE : 8551Z
- TVA : TVA non applicable, article 293 B du CGI (franchise en base)
Contact données personnelles / droits : contact@forswim.app.
2. Données collectées et finalités
Le tableau ci-dessous résume les traitements principaux :
2.1 Compte et authentification
- Données : e-mail, mot de passe (hashé par le prestataire d’auth), éventuels prénom / avatar, métadonnées de connexion.
- Connexion sociale : Google, ou Apple sur l’app iPhone. L’identité et l’e-mail passent par Supabase Auth si vous choisissez ce mode.
- Finalité : création et sécurisation du compte, accès au service.
- Base légale : exécution du contrat (art. 6.1.b RGPD).
- Durée : durée du compte ; suppression à la demande ou après inactivité prolongée (voir §5).
2.2 Profil sportif et plans d’entraînement
- Données : objectif, niveau, fréquence, durée de séance, longueur de bassin, matériel, allures, historique de séances, feedback de difficulté.
- Finalité : génération rule-based des plans / séances et adaptation progressive.
- Base légale : exécution du contrat.
- Important : ForSwim n’utilise pas d’IA générative pour créer les séances dans l’application ; le moteur est fondé sur des règles métier.
2.3 Données de santé (article 9 RGPD)
ForSwim traite certaines données concernant la santé uniquement avec votre consentement explicite (art. 9.2.a RGPD), recueilli via un écran dédié dans l’application (case non pré-cochée, distincte de l’acceptation des CGU).
- Données concernées : (i) fréquence cardiaque par séance (notamment synchronisée via Strava lorsque vous connectez votre compte et avez consenti) ; (ii) sur iPhone, séances de natation et fréquence cardiaque lues dans Apple Santé si vous connectez cette source (lecture seule, pas de poids ni de taille, rien n’est écrit dans Santé) ; (iii) historique de blessures / gênes déclarées (zone du corps + niveau de gravité en liste fermée) ; (iv) indicateur de douleur en feedback de séance (oui/non).
- Finalité : adaptation des séances (intensité / volume) et prévention du risque de blessure : aucun diagnostic médical, aucun traitement, aucun dispositif médical.
- Base légale : consentement explicite (art. 9.2.a), distinct du contrat / des CGU. Le refus n’empêche pas d’utiliser le service (sans adaptation santé).
- Caractère facultatif : vous pouvez refuser, retirer votre consentement à tout moment, ou choisir « Aucune blessure ».
- Minimisation : pas de champ texte libre pour un diagnostic ou un traitement ; listes fermées uniquement. Ces champs sont exclus des outils d’analytics tiers (PostHog, etc.).
- Destinataires : hébergement Supabase (sous-traitant) sous RLS ; pas de revente ; Strava uniquement si vous connectez votre compte.
- Durée de conservation : pendant la durée du compte ; suppression sous 30 jours sur demande (effacement / retrait du consentement) ; purge après 24 mois d’inactivité du compte.
- Droits : accès, rectification, effacement, portabilité, retrait du consentement : exerçables par e-mail à contact@forswim.app ; réponse sous 1 mois (art. 12 RGPD).
2.4 Abonnement et paiement
- Données côté ForSwim : identifiants Stripe (customer / subscription), statut d’accès Premium, dates d’essai / fin de période, codes de parrainage.
- Données de carte : sur le site, Stripe les traite. Sur iPhone, Apple (App Store) les traite. ForSwim ne stocke pas le numéro de carte ni le CVC.
- Finalité : facturation, gestion d’abonnement, lutte contre la fraude d’abonnement, obligations comptables.
- Bases légales : exécution du contrat ; obligation légale (conservation comptable) ; intérêt légitime (prévention fraude abonnement).
2.5 Strava (optionnel)
- Données : tokens OAuth, activités synchronisées (distance, durée, etc. selon ce que Strava expose).
- Fréquence cardiaque : stockée uniquement si vous avez donné le consentement santé (art. 9) ; sinon la FC n’est pas conservée côté ForSwim.
- Finalité : lier des activités à votre historique ForSwim.
- Base légale : exécution du contrat pour les données d’activité non sensibles ; consentement art. 9 pour la FC.
- Durée : jusqu’à déconnexion Strava ou suppression du compte.
2.6 Buddy Matching (profil public sans numéro affiché)
- Données affichées : prénom, ville / zone, rayon, niveau, objectif, types de sortie, disponibilités, bio, avatar.
- Condition d’apparition : profil publié avec ville, numéro enregistré et consentement de principe de partage (le numéro n’est pas affiché dans l’annuaire).
- Finalité : apparaître dans l’annuaire Buddy et permettre aux autres membres de proposer une mise en relation.
- Base légale : exécution du contrat / intérêt légitime pour l’annuaire ; le numéro de téléphone n’est jamais affiché sur ce profil public.
2.7 Mise en relation et numéro de téléphone
Lorsque vous utilisez la fonctionnalité de mise en relation (Buddy), ForSwim peut traiter un numéro de téléphone / WhatsApp aux conditions suivantes :
- Base légale : consentement (art. 6.1.a RGPD), distinct du consentement de compte et du consentement données de santé (art. 9).
- Finalité limitée : faciliter la prise de contact pour une séance commune après acceptation mutuelle d’une mise en relation.
- Visibilité conditionnelle : le numéro n’est jamais consultable librement sur l’annuaire ; il n’est révélé aux deux parties qu’après acceptation mutuelle et consentement explicite de partage de chaque partie pour cette mise en relation.
- Absence de réutilisation : le numéro n’est pas utilisé à des fins publicitaires, de prospection, ni revendable à des tiers ; l’éditeur ne le publie pas.
- Droit de retrait : vous pouvez masquer votre numéro, révoquer le partage pour une mise en relation, ou quitter une mise en relation à tout moment depuis votre profil / l’onglet Relations ; le retrait du consentement n’affecte pas la licéité du traitement antérieur.
- Vérification : e-mail vérifié requis pour les demandes ; un code (SMS Twilio si configuré, sinon e-mail) confirme le numéro (phone_verified).
- Signalements / blocages : comptes signalés, compteur de signalements, suspension automatique Buddy au-delà du seuil (3 signalements) ; blocs mutuels.
- Durée : pendant la durée du compte / de la mise en relation ; suppression avec le compte ou sur retrait.
2.8 Support, contact et e-mails transactionnels
- Données : messages envoyés via le formulaire de contact, e-mails de bienvenue, vérification, confirmation d’abonnement, reset mot de passe.
- Prestataire e-mail : Resend (sous-traitant).
- Base légale : exécution du contrat / intérêt légitime (support) / obligation légale le cas échéant.
2.9 Mesure d’audience (PostHog, Google Analytics), non essentiel
- Données : événements produit agrégés / pseudonymisés (niveau, objectif, fréquence, etc.), identifiant technique, pages vues.
- Exclusions techniques : e-mail, notes, contenu complet de séance, notes de blessure ne sont pas envoyés comme propriétés d’événement.
- Base légale : consentement (bannière cookies). La mesure d’audience reste inactive tant que ce choix n’est pas donné.
- PostHog : hébergement UE (eu.i.posthog.com) lorsque la clé est active.
- Google Analytics 4, site web uniquement (identifiant G-QYDZW6MYVK) : la balise n’est pas chargée avant le consentement, ni dans l’app iPhone.
- Publicité Google : stockage publicitaire, données publicitaires et personnalisation des annonces restent désactivés.
- Google Analytics peut transférer des données hors UE (clauses contractuelles types).
2.10 Événements de conversion internes (Supabase)
- Données : nom d’événement funnel (ex. signup_started, checkout_started), chemin, referrer, propriétés non sensibles, user_id si connecté.
- Finalité : mesurer le parcours d’inscription / paiement pour faire fonctionner et améliorer le service.
- Base légale : intérêt légitime (art. 6.1.f) pour la mesure première partie nécessaire à l’exploitation : distincte de PostHog.
- Ces événements peuvent être enregistrés même si les cookies non essentiels sont refusés, car ils ne reposent pas sur des traceurs publicitaires tiers.
2.11 Données techniques
- Logs de sécurité, préférences locales (consentement cookies, caches de plan avant connexion, code ?ref=, rappels de séance), session d’auth.
- Sur l’app iPhone : notifications locales planifiées sur l’appareil (rappels de séance, essai, badges), et, si tu acceptes, un jeton push APNs stocké pour t’alerter hors app (binômes, réponses support). Tu peux refuser ou révoquer dans Réglages iPhone. Pas de revente des jetons.
- Police : Geist auto-hébergée (pas de requête Google Fonts sur le site public).
- Vercel Speed Insights : métriques de performance du site (voir politique cookies).
2.12 Avis publics (landing)
- Données : prénom, note (1-5), texte de l’avis, e-mail facultatif (non publié).
- Finalité : afficher des avis réels sur le site après modération manuelle ; aucun avis n’est publié automatiquement.
- Base légale : intérêt légitime (art. 6.1.f) pour la preuve sociale, ou consentement du dépôt du formulaire.
- Durée : jusqu’à suppression de l’avis ou du compte / sur demande.
- Le texte de l’avis n’est pas envoyé aux outils de mesure d’audience.
2.13 Intelligence artificielle
Les séances dans l’application ne sont pas écrites par une IA générative libre. Elles viennent de règles d’entraînement, de catalogues et d’une validation. Le chat Premium dans l’application est un échange avec Arthur : les messages sont gardés pour le support (Supabase). Ils ne servent pas à faire répondre un modèle à la place d’Arthur.
- Assistance (préparation de réponses, agent sur le VPS) : le texte est d’abord envoyé à Alyren (alyren.veilio.fr). Alyren remplace les informations qui identifient une personne par un jumeau (identifiant de substitution). Ensuite seulement, ce texte masqué est envoyé à DeepSeek.
- Si Alyren ne répond pas, rien n’est envoyé à DeepSeek.
- C’est une pseudonymisation, pas une anonymisation. La correspondance entre le jumeau et la personne reste chez Alyren. DeepSeek ne reçoit pas le texte identifiant lorsque le masquage a réussi.
- DeepSeek est établi en Chine (hors EEE). Le transfert porte sur le texte déjà masqué. La durée de conservation chez DeepSeek et chez Alyren, et les contrats signés, restent à confirmer auprès de ces prestataires.
- Données de ce flux : le texte transmis à l’assistant. Pas le dossier de séances de l’app, pas le paiement, pas le chat Premium.
- Finalité : aider à préparer une réponse. Pas de décision automatique sur l’accès Premium, le prix, ou la publication d’une séance.
- Le proxy qui appelle Alyren puis DeepSeek tourne sur un VPS OVHcloud à Varsovie (Pologne, dans l’EEE). Des sauvegardes OVH sont activées sur ce VPS. Le détail (contenu, fréquence, durée) reste à confirmer. Le site et l’API de l’application restent chez Vercel. Les comptes restent chez Supabase. Alyren ne couvre pas ces traitements.
- Droits : accès, rectification, effacement, opposition et réclamation, comme à la section 6.
3. Destinataires / sous-traitants
- Supabase : auth, base de données, stockage avatars : DPA : supabase.com/legal/dpa.
- Stripe : paiement et portail client : DPA : stripe.com/legal/dpa.
- Vercel : hébergement front : DPA : vercel.com/legal/dpa.
- PostHog : analytics produit (si consentement cookies) : sans données de santé.
- Google Analytics : mesure d’audience du site web (si consentement cookies), sans données de santé et sans publicité. Pas dans l’app iPhone.
- Resend : envoi d’e-mails.
- OVHcloud : VPS à Varsovie (Pologne) pour le proxy d’assistance. Pas l’hébergement du site ni de la base des comptes.
- Alyren (alyren.veilio.fr) : pseudonymisation des textes envoyés au modèle d’assistance. La correspondance jumeau / personne reste chez Alyren. Durée de conservation et contrat : à confirmer.
- DeepSeek : modèle d’assistance. Il reçoit le texte déjà masqué. Établissement en Chine (hors EEE). Pas pour fabriquer les séances de l’app, pas pour le chat Premium.
- Google : OAuth (si choisi) et, dans l’app Android, Google Play (paiement de l’abonnement, notifications push via Firebase Cloud Messaging). Les polices du site public sont auto-hébergées.
- Strava : uniquement si connecté.
Des transferts hors UE peuvent avoir lieu : États-Unis (Vercel, Stripe, Google) et Chine (DeepSeek, après masquage Alyren). Des garanties appropriées sont recherchées auprès des prestataires (ex. clauses contractuelles types / DPA).
4. Transferts hors Union européenne
Lorsque des données sont traitées hors UE/EEE, ForSwim s’appuie sur les mécanismes prévus par le RGPD (décision d’adéquation, clauses contractuelles types, ou autre garantie appropriée). Pour toute question : contact@forswim.app.
5. Durées de conservation
- Compte, profil sportif, plans : durée d’utilisation du compte ; purge après 24 mois d’inactivité.
- Données de santé (FC, blessures) : durée du compte ; suppression sous 30 jours sur demande / retrait du consentement ; purge après 24 mois d’inactivité.
- Données de facturation / preuves de transaction : durée légale comptable (en pratique jusqu’à 10 ans).
- Strava : jusqu’à déconnexion ou suppression du compte.
- Consentement cookies : jusqu’à retrait ou effacement des données du navigateur.
- Buddy / numéro de téléphone : durée du compte ou jusqu’au retrait du consentement / masquage ; connexions et signalements purgés avec le compte.
- Logs de sécurité : durée limitée nécessaire à la sécurité.
6. Vos droits
Vous disposez des droits d’accès, de rectification, d’effacement, de limitation, d’opposition, de portabilité, et du droit de retirer votre consentement à tout moment (sans affecter la licéité du traitement antérieur). Vous pouvez introduire une réclamation auprès de la CNIL (www.cnil.fr).
Pour exercer vos droits (y compris données de santé) : contact@forswim.app : réponse sous 1 mois. Vous pouvez aussi supprimer votre compte depuis les paramètres de l’application. Un abonnement App Store n’est pas résilié par cette suppression : il se gère dans Réglages, Apple ID, Abonnements. Un abonnement Google Play non plus : il se gère dans le Play Store, Paiements et abonnements, Abonnements. Un abonnement Stripe encore actif est arrêté au moment de la suppression, sans remboursement de la période déjà payée.
7. Sécurité
Accès authentifié (JWT), écriture des droits d’abonnement côté serveur, paiements via Stripe, politiques d’accès en base (RLS) sur les données utilisateur. Aucune mesure n’est infaillible ; signalez tout incident à contact@forswim.app.
8. Mineurs
Le service est réservé aux personnes âgées de 18 ans et plus. Aucune inscription n’est autorisée pour les mineurs. Lors de la création de compte, vous confirmez avoir 18 ans révolus.ForSwim ne collecte pas volontairement de données de mineurs ; en cas de doute, le compte pourra être fermé.
9. Communications marketing
Les e-mails transactionnels (compte, paiement, sécurité) sont envoyés indépendamment d’un consentement marketing. Aucune campagne publicitaire e-mail / SMS marketing automatisée grand public n’est présentée comme active dans le produit au moment de cet audit, hors outils internes. Toute communication commerciale future respectera le consentement ou l’intérêt légitime applicable et un mécanisme de désinscription.
10. Modifications
Cette politique peut être mise à jour. La date en tête de page fait foi. En cas de changement substantiel, une information pourra être affichée dans l’application ou envoyée par e-mail.