Politique de confidentialité
En vigueur le 6 octobre 2026
Synthèse
Stacks est un carnet personnel de musculation et de nutrition. Les données enregistrées dans l'application y sont stockées afin que celle-ci puisse les réafficher. Elles ne sont jamais vendues, jamais exploitées à des fins publicitaires et jamais transmises à des tiers à des fins marketing. Stacks collecte également des statistiques d'usage pseudonymes, hébergées dans l'Union européenne, afin de mesurer quelles fonctionnalités sont utilisées ; elles sont rattachées à un identifiant aléatoire propre à l'installation et non au compte, ne contiennent aucune donnée de santé et peuvent être désactivées dans l'application. Les scans photo font appel à un prestataire d'IA externe : la photo d'un ticket, d'un repas ou d'un équipement de musculation est transmise à l'API Gemini de Google, et uniquement après acceptation de l'écran qui le décrit. Un abonnement optionnel est facturé par Apple via l'App Store ; les données de paiement ne parviennent jamais à Stacks.
Responsable du traitement
Stacks est édité par Aurélien Durier, particulier établi en France, agissant en qualité de responsable du traitement. Toute demande relative aux données personnelles peut être adressée à l'adresse figurant en bas de cette page.
Données collectées
La création d'un compte et l'utilisation de Stacks impliquent le stockage des données suivantes :
- -Compte : adresse e-mail, mot de passe haché, date de création du compte.
- -Profil : sexe, année de naissance, taille, poids, niveau d'activité, objectif (sèche, maintien, prise de masse).
- -Nutrition : repas enregistrés, aliments, recettes, objectifs du jour.
- -Entraînements : exercices, séries, répétitions, charges, modèles de séance, sessions.
- -Autres activités : le type (course, marche, randonnée, vélo, natation, mobilité, sport collectif ou autre), la date, une durée et une distance facultatives, et le nom saisi pour une activité « Autre ».
- -Composition corporelle : pesées enregistrées au fil du temps.
- -Technique : jetons de session, qui maintiennent la connexion au compte, et journaux d'accès serveur standards (adresse IP, horodatage, route demandée) conservés par l'hébergeur à des fins de sécurité et de prévention des abus.
- -Analytics d'usage pseudonymes, dans l'application : quelles fonctionnalités et quels écrans sont utilisés, enregistrés sous forme de compteurs et d'indicateurs (par exemple « une série a été enregistrée », « le bilan hebdomadaire a été ouvert »), ainsi que les moments où l'application est installée, mise à jour, ouverte et mise en arrière-plan. Chaque événement porte les caractéristiques de l'appareil (fabricant, modèle, taille d'écran, OS, langue, fuseau horaire), la version de l'application, le canal de distribution (App Store, TestFlight ou version interne) et le pays, que le prestataire d'analytics déduit de l'adresse IP avant de l'écarter. Les écrans sont enregistrés sous leur gabarit de route (« /recipes/[id] »), jamais avec l'identifiant d'un repas, d'une recette ou d'une séance. Ces événements sont reliés à un identifiant aléatoire généré sur l'appareil à l'installation, jamais rattaché au compte Stacks et remplacé à la déconnexion. Ils ne contiennent jamais de repas, d'aliments, d'exercices ni de valeurs de poids. Une fois par installation, dans les premiers jours qui la suivent, l'application demande au service AdServices d'Apple si l'installation fait suite à une annonce Apple Search Ads, et enregistre la réponse sous la forme d'un seul événement : soit que ce n'est pas le cas, soit les identifiants numériques de la campagne, du groupe d'annonces, du mot-clé et de l'annonce, ainsi que le fait que l'annonce a été touchée ou seulement vue et qu'il s'agit d'un premier téléchargement ou d'un nouveau téléchargement. Apple fournit cette réponse sans l'identifiant publicitaire (IDFA) et sans demander l'autorisation de suivi. Rien n'est demandé lorsque l'analytics est désactivé.
- -Mesure d'audience, sur ce site web : les pages consultées et la durée de la visite, l'adresse de chaque page, sans sa chaîne de requête, la page d'origine, les paramètres de campagne et les identifiants de clic publicitaire portés par un lien entrant (utm_*, gclid, fbclid et similaires), ainsi que le navigateur, le système d'exploitation, le type d'appareil et la taille de l'écran. Aucun cookie ni entrée de stockage local n'est conservé, et les valeurs saisies dans un formulaire ne sont jamais enregistrées. L'adresse IP parvient au prestataire de mesure, qui s'en sert pour calculer un identifiant régénéré chaque jour, de sorte qu'un visiteur qui revient est compté comme un nouveau visiteur. Deux événements nommés indiquent que le badge App Store a été cliqué et que le formulaire de liste d'attente a été validé, chacun n'ajoutant aucune information propre au-delà de la langue de la page.
- -Fonctionnalités IA : la date d'acceptation de l'écran relatif aux scans photo, enregistrement unique commun à l'ensemble des scans photo, et une entrée horodatée par scan effectué, servant à appliquer un plafond d'usage. Les articles détectés par un scan de ticket ou un scan photo de repas sont également conservés, afin qu'un scan interrompu avant l'enregistrement de ses articles puisse être repris ; ils sont supprimés une fois ces articles enregistrés, et au bout de sept jours en tout état de cause. La photo, elle, n'est pas conservée, pas plus que la note qui peut accompagner la photo d'un repas.
- -Emails de rappel : leur activation et la date à laquelle le consentement a été donné, afin de les envoyer et de dater ce consentement ; la date est effacée en cas de désactivation.
- -Abonnement : l'état de l'abonnement en cours (produit, période, échéance, état du renouvellement) et les événements d'abonnement associés. Les données de paiement (numéros de carte, adresse de facturation) ne parviennent jamais à Stacks : le paiement est traité par Apple.
- -Canal de découverte : la réponse, lorsqu'elle est donnée, à la question facultative posée à l'inscription sur la manière dont Stacks a été découvert, un choix unique dans une liste fermée (recherche dans l'App Store, recherche web, Instagram, TikTok, YouTube, Facebook, un autre réseau social, un ami ou un proche, une publicité, un article ou un podcast, autre). Aucun texte libre n'est collecté.
Ne sont pascollectés : les contacts, la localisation de l'appareil (GPS ou ville), la photothèque, le micro, ni aucune donnée de santé provenant d'Apple Santé ou de Google Fit. L'appareil photo n'est sollicité qu'à l'initiative de l'utilisateur : pour le scan d'un code-barres, où l'image reste sur l'appareil et n'est jamais transmise, et pour les scans de ticket, de repas et d'équipement, où la photo est transmise à un prestataire d'IA dans les conditions décrites ci-dessous, sans être conservée.
Finalités et bases légales
Pour les données de compte, de profil, de nutrition, d'entraînement, d'activité et de composition corporelle, la base légale est l'exécution d'un contrat(article 6.1.b) : ces données sont nécessaires au fonctionnement du service souscrit. Les données de profil (sexe, âge, poids, taille, niveau d'activité) servent uniquement au calcul des objectifs quotidiens d'énergie et de macronutriments, à l'exclusion de toute autre finalité. La même base couvre l'état de l'abonnement décrit à la section « Abonnement » ci-dessous, nécessaire pour ouvrir les fonctionnalités payées.
Pour les analytics d'usage décrits ci-dessus, la base légale est l'intérêt légitime(article 6.1.f) à mesurer l'usage de l'application afin de l'améliorer. Ces données sont pseudonymes et non anonymes : l'identifiant propre à l'installation permet de distinguer les événements d'une installation de ceux d'une autre, même si rien n'y nomme personne. Il s'agit donc de données personnelles, et c'est la mise en balance ci-dessous qui fait prévaloir cet intérêt.
- -Finalité : savoir quelles fonctionnalités sont utilisées et à quel endroit l'application est abandonnée, afin de décider quoi corriger et quoi construire, et si une campagne Apple Search Ads amène des installations qui continuent d'utiliser l'application, afin de décider s'il faut continuer à la financer. Les données servent en interne à cette seule fin, jamais à cibler ou personnaliser de la publicité, et ne sont transmises à personne d'autre que le prestataire d'analytics agissant en sous-traitant.
- -Nécessité : les données du compte ne permettent pas de répondre à cette question, puisqu'elles enregistrent ce qui a été saisi, pas les écrans parcourus ni l'endroit où un parcours s'arrête. La collecte se limite à ce que la question exige : compteurs, indicateurs, noms d'écran génériques, caractéristiques de l'appareil et pays, qui permet de distinguer l'usage de l'application dans chacun des pays où elle est proposée.
- -Mise en balance : l'identifiant n'est jamais rattaché au compte, et la fonction identify du prestataire n'est jamais appelée. Avant l'envoi, l'application ne conserve que des booléens, des compteurs et une liste fermée de valeurs connues, et aucun repas, aliment, exercice ni valeur de poids ne lui est jamais transmis. L'adresse IP sert uniquement à déduire le pays, puis est écartée par le prestataire au lieu d'être conservée ; la ville, la région, le code postal et les coordonnées qu'elle pourrait aussi fournir sont supprimés avant l'enregistrement de l'événement. Le traitement reste dans l'Union européenne, les événements sont supprimés au bout de 12 mois, et les analytics peuvent être désactivés à tout moment dans Réglages → Préférences, après quoi plus rien n'est envoyé.
La mesure d'audience du site repose sur le même intérêt légitime(article 6.1.f) : savoir combien de personnes atteignent usestacks.app, d'où elles arrivent, et si elles poursuivent vers l'App Store. Elle est limitée à ce que cette finalité exige : rien n'est stocké sur l'appareil du visiteur, l'identifiant est régénéré chaque jour, aucun profil n'est constitué, et ces données ne servent jamais à la publicité ni ne sont transmises à des annonceurs. Un navigateur qui émet le signal Do Not Track n'est pas mesuré, et toute opposition peut également être adressée à l'adresse de contact figurant en bas de cette page.
Pour le canal de découverte, la base légale est l'intérêt légitime(article 6.1.f) à savoir quels canaux amènent des personnes vers Stacks, et lesquels amènent des personnes qui continuent de l'utiliser ou s'abonnent, afin de décider où investir. La question peut être passée, la réponse est un choix unique dans une liste fermée, et elle n'est lue qu'en agrégé : elle ne sert jamais à la publicité et n'est transmise à personne. La réponse est également comptée dans les analytics d'usage décrits ci-dessus, sans être rattachée au compte.
Pour le scan de ticket et le scan photo de repas, la base légale est le consentement explicite(article 6.1.a, et article 9.2.a s'agissant d'informations susceptibles de révéler des habitudes alimentaires), recueilli avant l'analyse de la première photo et détaillé dans les sections du même nom ci-dessous.
Pour les emails de rappel, communication de prospection au sens de l'article L34-5 du code des postes et des communications électroniques (CPCE), la base légale est le consentement (article 6.1.a), détaillée à la section « Emails de rappel » ci-dessous.
Cookies et technologies similaires
Ce site dépose deux cookies. Tous deux sont internes : ils sont déposés par usestacks.app lui-même et ne sont lisibles par personne d'autre. Aucun ne sert à la publicité, à la mesure d'audience ni au suivi d'un site à l'autre, et aucun tiers ne dépose de cookie ici.
- -NEXT_LOCALE, sur les pages publiques : conserve la langue d'affichage, afin que les pages suivantes soient servies dans la langue choisie. Il ne contient qu'un code de langue, et dure le temps de la session de navigation.
- -Le cookie de session, déposé après connexion : maintient la connexion au compte d'une page à l'autre, afin que les identifiants ne soient pas redemandés à chaque requête. Il contient un jeton de session. La session dure 30 jours et se prolonge à chaque utilisation ; la déconnexion y met fin.
En application de l'article 5(3) de la directive ePrivacy, transposé en France par l'article 82 de la loi Informatique et Libertés, le consentement est requis avant tout dépôt d'information sur l'appareil d'un visiteur, sauf lorsque ce dépôt est strictement nécessaire à la fourniture d'un service de communication en ligne expressément demandé par l'utilisateur. Les deux cookies ci-dessus relèvent de cette exception : maintenir la connexion au compte est nécessaire à l'espace de compte lui-même, et la CNIL range parmi les cookies exemptés ceux de personnalisation de l'interface, tels qu'un choix de langue ou de présentation, lorsque cette personnalisation constitue un élément intrinsèque et attendu du service. C'est l'objet du cookie de langue, qui ne contient qu'une préférence, à l'exclusion de tout identifiant.
Cette exemption porte sur le dépôt du cookie ; le RGPD s'applique par ailleurs aux données personnelles en cause. Pour le cookie de session, la base légale est l'exécution d'un contrat(article 6.1.b) : c'est lui qui rend le compte utilisable. Le cookie de langue ne contient ni identifiant ni donnée personnelle, seulement un code de langue ; dans la mesure où le RGPD lui serait applicable, la base légale est l'intérêt légitime (article 6.1.f) à présenter le site dans la langue de la dernière consultation.
Aucun bandeau de consentement n'est affiché, car rien ici ne requiert de consentement : les deux cookies ci-dessus en sont exemptés, la mesure d'audience du site décrite ci-dessus fonctionne sans cookie et n'écrit rien dans le stockage local ou de session du navigateur, et aucune technologie de publicité ou de suivi inter-sites n'est chargée. Ces cookies restent supprimables ou blocables depuis les réglages du navigateur ; les bloquer déconnecte le compte et ramène la langue d'affichage à sa valeur par défaut.
Liste d'attente
Une adresse e-mail renseignée sur le site afin d'être informé (par exemple de la version Android ou des nouveautés) est conservée avec la langue de la page et la date d'inscription, à la seule fin d'envoyer des informations relatives à Stacks. La base légale est le consentement (article 6.1.a), donné lors de la validation du formulaire. La liste d'attente est indépendante du compte applicatif : aucun compte n'est requis pour s'y inscrire, et l'inscription n'en crée aucun. L'adresse est conservée jusqu'à demande de retrait, ou jusqu'à la fin de l'objectif de la liste (par exemple la mise à disposition de l'application Android), après quoi elle est supprimée. Ces envois passent par Resend (région UE) et chaque message comporte un lien de désinscription en un clic. La suppression peut être demandée à tout moment à l'adresse figurant en bas de cette page.
Notifications push
L'activation des rappels et l'autorisation des notifications entraînent l'enregistrement par l'appareil d'un jeton de notification (push token), conservé avec le compte à la seule fin de délivrer les rappels activés (repas, bilan hebdomadaire, pesée) aux horaires choisis. La base légale est le consentement (article 6.1.a), donné lors de l'autorisation des notifications et de l'activation d'un rappel ; il peut être retiré à tout moment en désactivant les rappels dans Réglages → Notifications ou en révoquant l'autorisation de notification. Le texte des rappels est générique et ne contient aucune donnée personnelle ni de santé. La distribution passe par le service push d'Expo, qui la relaie au service de notifications d'Apple ; Expo ne conserve pas le texte du rappel. Le jeton est conservé uniquement pour délivrer ces rappels, et supprimé à la déconnexion comme à la suppression du compte.
Emails de rappel
Stacks peut adresser un e-mail à un compte afin de l'inciter à revenir dans l'application après une période d'inactivité. Il s'agit d'une communication de prospection au sens de l'article L34-5 du code des postes et des communications électroniques (CPCE) ; elle est facultative et suppose un consentement préalable, donné en activant Emails de rappel dans Réglages → Notifications, désactivé par défaut, ou en cochant une case non cochée par défaut lors de l'inscription. La base légale est le consentement (article 6.1.a). Le consentement est enregistré sur le compte avec sa date, et peut être retiré à tout moment de la même manière, ou via le lien de désinscription en un clic figurant dans chaque e-mail de rappel ; le retrait efface la date. La date n'est conservée que tant que le consentement est actif : elle est effacée, plutôt que conservée à part, au retrait du consentement comme à la suppression du compte.
Scan de ticket
Le scan de ticket est facultatif et soumis à un consentement préalable, recueilli sur un écran dédié affiché avant l'analyse de la première photo. Rien ne parvient au prestataire d'IA tant que ce consentement n'est pas donné : une photo envoyée avant est refusée par le serveur de Stacks et effacée sans être analysée.
Lors d'un scan, la photo est transmise au serveur de Stacks, puis à l'API Gemini de Google, qui identifie les lignes d'articles et estime les calories et les macronutriments. La photo n'est pas conservée : elle est traitée en mémoire pendant la durée de cette seule requête, puis effacée. Aucune adresse e-mail, aucun identifiant de compte, aucune donnée de profil ni aucun repas précédemment enregistré ne l'accompagne.
Les noms des articles détectés et le nom de l'enseigne sont ensuite transmis au même prestataire, qui peut effectuer une recherche Google, afin d'affiner les valeurs nutritionnelles. Le résultat est conservé dans une table de correspondance partagée sur le serveur de Stacks, indexée uniquement par enseigne et nom d'article, sans lien avec un compte.
Les articles détectés sont par ailleurs conservés sur le serveur de Stacks, rattachés au compte, afin qu'un scan fermé avant l'enregistrement de ses articles puisse être repris plutôt que d'en coûter un second. Ils sont supprimés peu après l'enregistrement des articles, et en tout état de cause sept jours après le scan, durée sur laquelle porte le plafond d'usage.
L'API est utilisée dans son offre payante, au titre de laquelle Google n'exploite ni les requêtes, ni les images, ni les réponses pour améliorer ses produits, et agit en qualité de sous-traitant conformément à son Data Processing Addendum. Elles sont journalisées pendant une durée limitée afin de détecter les abus de son propre service. Le traitement peut avoir lieu hors de l'Union européenne ; Google LLC est certifié au titre du EU-US Data Privacy Framework, qui couvre ce transfert.
La base légale est le consentement explicite (article 6.1.a, et article 9.2.a s'agissant d'informations susceptibles de révéler des habitudes alimentaires). La date d'acceptation et une entrée horodatée par scan sont enregistrées afin d'appliquer un plafond d'usage. Cesser d'utiliser la fonctionnalité met fin à toute transmission ultérieure ; l'effacement de la trace du consentement et de l'historique des scans peut être demandé à l'adresse figurant en bas de cette page, et l'un comme l'autre sont supprimés avec le compte.
Scan photo de repas
Le scan photo de repas, qui estime les aliments, les portions et les calories à partir de la photo d'un repas, est facultatif et repose sur le même consentement préalable que le scan de ticket : un consentement unique couvre l'ensemble des scans photo, recueilli sur un écran dédié affiché avant l'analyse de la première photo, quelle qu'elle soit. Rien ne parvient au prestataire d'IA tant que ce consentement n'est pas donné : une photo envoyée avant est refusée par le serveur de Stacks et effacée sans être analysée.
Lors d'un scan, la photo est transmise au serveur de Stacks, puis à l'API Gemini de Google, qui identifie les aliments et en estime les portions, les calories et les macronutriments. Une courte note peut y être jointe pour préciser ce que la photo ne montre pas (une sauce, un mode de cuisson, une enseigne) ; limitée à 200 caractères, elle est transmise telle que saisie, avec la photo. Ni la photo ni la note ne sont conservées : elles sont traitées en mémoire pendant la durée de cette seule requête, puis effacées. Aucune adresse e-mail, aucun identifiant de compte, aucune donnée de profil ni aucun repas précédemment enregistré ne les accompagne.
Les articles détectés sont conservés sur le serveur de Stacks, rattachés au compte, afin qu'un scan fermé avant l'enregistrement de ses articles puisse être repris plutôt que d'en coûter un second. Ils sont supprimés peu après l'enregistrement des articles, et en tout état de cause sept jours après le scan, durée sur laquelle porte le plafond d'usage.
L'API est utilisée dans la même offre payante et selon les mêmes conditions de sous-traitance que celles décrites à la section « Scan de ticket », y compris pour le transfert hors de l'Union européenne.
La base légale est le consentement explicite (article 6.1.a, et article 9.2.a, la photo d'un repas étant susceptible de révéler des habitudes alimentaires). Une entrée horodatée par scan abouti est enregistrée afin d'appliquer le plafond d'usage, commun au scan de ticket et au scan photo de repas. Cesser d'utiliser la fonctionnalité met fin à toute transmission ultérieure ; l'effacement de la trace du consentement et de l'historique des scans peut être demandé à l'adresse figurant en bas de cette page, et l'un comme l'autre sont supprimés avec le compte.
Scan d'équipement
Le scan d'équipement, qui propose des exercices à partir de la photo d'un équipement de salle, est facultatif et repose sur le même consentement que les autres scans photo. Un consentement unique couvre l'ensemble des scans photo : il est recueilli sur un écran dédié lors de la première utilisation de l'un d'eux, et n'est pas redemandé pour les autres. Rien n'est transmis au prestataire d'IA tant que ce consentement n'est pas donné.
Lors d'un scan, la photo est transmise au serveur de Stacks, puis à l'API Gemini de Google avec la liste des exercices de la bibliothèque de Stacks, qui identifie l'équipement et choisit les exercices qui s'y pratiquent. La photo n'est pas conservée : elle est traitée en mémoire pendant la durée de cette seule requête, puis effacée. Aucune adresse e-mail, aucun identifiant de compte, aucune donnée de profil ni aucun exercice personnalisé ne l'accompagne. Une entrée horodatée par scan est enregistrée afin d'appliquer un plafond d'usage calculé sur sept jours glissants.
Cesser d'utiliser la fonctionnalité met fin à toute transmission ultérieure ; l'effacement de la trace du consentement et de l'historique des scans peut être demandé à l'adresse figurant en bas de cette page, et l'un comme l'autre sont supprimés avec le compte.
La base légale est le consentement (article 6.1.a). L'offre payante et les conditions de sous-traitance décrites à la section « Scan de ticket » s'appliquent de la même manière, y compris pour le transfert hors de l'Union européenne.
Abonnement
L'abonnement Stacks Pro est optionnel. Le paiement est intégralement traité par Apple via l'App Store : les numéros de carte et coordonnées de facturation ne parviennent jamais à Stacks. Pour le paiement lui-même, Apple agit en qualité de responsable de traitement indépendant, selon sa propre politique de confidentialité.
Afin de savoir quel compte dispose d'un abonnement actif, Stacks attribue au compte un jeton d'achat aléatoire, attaché à l'achat App Store, et reçoit les événements d'abonnement (achat, renouvellement, échéance, remboursement) directement du serveur App Store d'Apple. Aucun autre acteur qu'Apple n'intervient, et ces événements ne portent que ce jeton et les informations du produit, jamais de nom ni d'adresse e-mail. La base légale est l'exécution d'un contrat (article 6.1.b). Ces enregistrements sont supprimés avec le compte ; Apple conserve ses propres justificatifs de facturation selon ses propres conditions.
Destinataires et sous-traitants
Stacks fait appel à un nombre limité de tiers, strictement aux fins du fonctionnement du service. La plupart agissent en qualité de sous-traitants, sur instruction de Stacks. Les fournisseurs d'identité ci-dessous font exception : ils agissent en qualité de responsables de traitement indépendants pour l'authentification qu'ils réalisent.
- -Hébergement : Hostinger (VPS, Union européenne). L'application Next.js et la base de données Postgres y sont exécutées.
- -Sauvegardes de base de données : Cloudflare R2. Une sauvegarde Postgres quotidienne, chiffrée au repos, conservée 30 jours. Transfert international couvert par les clauses contractuelles types de Cloudflare.
- -Envoi d'e-mails : Resend, région UE (Irlande). Sert à l'envoi des e-mails de compte, transactionnels et de rappel (ces derniers uniquement avec consentement). Traitement dans l'Union européenne, couvert par le DPA conforme au RGPD de Resend.
- -Rapports de plantage et d'erreur (application iOS et serveur, jamais le site web) : Sentry (région UE, hébergement à Francfort, Allemagne). Depuis l'application, reçoit les traces d'erreur, le modèle d'appareil, l'OS et la version de l'application. Depuis le serveur, reçoit les traces d'erreur et la route en échec. Les deux SDK sont configurés pour retirer les adresses IP, les corps de requête et les identifiants utilisateur avant envoi, de sorte que les repas, séances, poids et photos de scan n'y figurent jamais. Aucun rapporteur ne s'exécute dans le navigateur : consulter ce site n'envoie rien à Sentry.
- -Analytics produit, application iOS uniquement : PostHog (région Union européenne, eu.i.posthog.com). Reçoit des événements d'usage pseudonymes, reliés à un identifiant aléatoire propre à l'installation : usage des fonctionnalités et des écrans sous forme de compteurs et d'indicateurs, ainsi que les installations et ouvertures de l'application, la campagne Apple Search Ads dont provient une installation le cas échéant, les caractéristiques de l'appareil (fabricant, modèle, taille d'écran, OS, langue, fuseau horaire), la version de l'application et le canal de distribution. Sa fonction identify n'est jamais appelée, de sorte que les événements ne sont pas rattachés à un compte, et les repas, aliments, exercices et valeurs de poids ne sont jamais transmis. L'adresse IP sert uniquement à déduire le pays, puis est écartée. Traitement dans l'UE, couvert par le DPA conforme au RGPD de PostHog. Les événements sont conservés 12 mois. Désactivable dans l'application, sous Réglages → Préférences.
- -Mesure d'audience, site web uniquement : PostHog (région Union européenne, eu.i.posthog.com), chargé sur les pages publiques d'usestacks.app, jamais sur les pages de connexion, de compte ni d'administration. Le mode sans cookie est activé : aucun cookie ni entrée de stockage n'est conservé dans le navigateur, et l'identifiant du visiteur est un condensé calculé côté PostHog à partir de l'adresse IP et du navigateur, avec un sel renouvelé chaque jour. Reçoit les adresses des pages, sans leur chaîne de requête, la page d'origine, les paramètres de campagne, les caractéristiques du navigateur et de l'appareil, ainsi que l'adresse IP. Sa fonction identify n'est jamais appelée, aucun profil n'est créé et l'enregistrement de session est désactivé. Traitement dans l'UE, couvert par le DPA conforme au RGPD de PostHog. Activer Do Not Track dans le navigateur y met fin. Les événements sont conservés 12 mois.
- -Recherche d'aliments : Open Food Facts (association française à but non lucratif, hébergée dans l'UE). Interrogée lors du scan d'un code-barres ou de la recherche d'un aliment. La requête et l'adresse IP lui sont visibles ; aucune information de compte n'est transmise.
- -Attribution des installations, application iOS uniquement : Apple (AdServices, Apple Distribution International Ltd., Irlande, pour l'Union européenne). Une fois par installation, lorsque l'analytics est activé, l'application envoie à Apple un jeton à usage unique généré sur l'appareil, et Apple répond si l'installation fait suite à l'une des annonces Apple Search Ads de Stacks, avec les identifiants de cette campagne. Le jeton ne porte aucune information de compte. Apple agit en responsable de traitement indépendant pour sa mesure publicitaire.
- -Notifications push : Expo (service Expo Push, opéré par 650 Industries, Inc., États-Unis) relaie les rappels au service de notifications d'Apple. Il reçoit le jeton de notification de l'appareil et le texte générique du rappel, qu'il ne conserve pas, et aucune donnée personnelle ni de santé. 650 Industries est auto-certifié au titre du EU-US Data Privacy Framework, qui couvre le transfert vers les États-Unis.
- -Connexion avec Apple : Apple (Apple Distribution International Ltd., Irlande, pour l'Union européenne). Sollicitée uniquement lorsque cette méthode de connexion est choisie. Apple confirme l'identité et transmet un identifiant de compte, ainsi que, à la première connexion seulement, l'adresse e-mail (ou une adresse relais privée Apple, si le masquage a été choisi) et le nom. Apple agit en qualité de responsable de traitement indépendant pour l'authentification elle-même.
- -Connexion avec Google : Google (Google Ireland Ltd. pour l'Union européenne, Google LLC, États-Unis). Sollicitée uniquement lorsque cette méthode de connexion est choisie. Google confirme l'identité et transmet un identifiant de compte, l'adresse e-mail, le nom, ainsi qu'une URL de photo de profil qui n'est pas conservée. Google agit en qualité de responsable de traitement indépendant pour l'authentification elle-même. Google LLC est certifié au titre du EU-US Data Privacy Framework, qui couvre le transfert hors de l'Union européenne.
- -Lecture de photo par IA (tickets, repas et équipements de salle) : Google (API Gemini, Google LLC, États-Unis). Sollicitée uniquement lors d'un scan de ticket, d'un scan photo de repas ou d'un scan d'équipement. Reçoit la photo du ticket, puis les noms des articles détectés et le nom de l'enseigne, et renvoie l'estimation nutritionnelle ; reçoit la photo du repas avec sa note éventuelle, et renvoie les aliments détectés et leur estimation nutritionnelle ; ou reçoit la photo de l'équipement avec la liste des exercices de la bibliothèque de Stacks, et renvoie les exercices correspondants. Aucun identifiant de compte ne l'accompagne. L'offre payante est utilisée, au titre de laquelle Google n'exploite pas ce contenu pour améliorer ses produits et agit en qualité de sous-traitant conformément à son Data Processing Addendum, en le journalisant brièvement afin de détecter les abus de son service. Google LLC est certifié au titre du EU-US Data Privacy Framework, qui couvre le transfert hors de l'Union européenne.
Aucune donnée n'est vendue, ni transmise à des annonceurs ou à des courtiers en données. Rien de ce qui est enregistré dans l'application ne sert à entraîner des modèles d'IA : les scans photo décrits ci-dessus passent par une offre d'API payante, au titre de laquelle le prestataire n'exploite pas le contenu reçu pour améliorer ses propres produits. Les analytics produit ci-dessus sont pseudonymes, jamais rattachés à un compte, et exploités en interne uniquement, aux fins d'amélioration de Stacks.
Durée de conservation
Les données sont conservées tant que le compte existe. La suppression du compte depuis Réglages → Compte et données → Supprimer le compte efface définitivement l'ensemble des données associées sous 30 jours, hormis les enregistrements minimaux dont la loi impose la conservation, effacés à l'issue de leur durée légale de conservation. Un compte resté inactif pendant deux ans reçoit un e-mail d'avertissement, puis est définitivement supprimé 30 jours plus tard sauf réouverture de l'application avant cette échéance ; rouvrir l'application, ou un abonnement Pro actif, annule la suppression prévue.
Droits des personnes concernées
Au titre du RGPD, tout utilisateur dispose du droit de :
- -Accéder à ses données (Réglages → Compte et données → Télécharger mes données exporte une copie JSON).
- -Rectifier les données inexactes, directement modifiables dans l'application.
- -Effacer son compte et l'ensemble des données associées (Réglages → Compte et données → Supprimer le compte).
- -S'opposer au traitement ou le limiter, y compris en désactivant les analytics d'usage (Réglages → Préférences).
- -Introduire une réclamation auprès de la CNIL (cnil.fr) si ces droits ne sont pas respectés.
Ces droits s'exercent directement dans l'application, ou par courrier électronique à l'adresse figurant en bas de cette page. Les demandes reçoivent une réponse sous 30 jours.
Une limite s'applique aux analytics d'usage. Leurs événements n'étant jamais rattachés au compte, et l'identifiant propre à l'installation n'étant affiché nulle part, Stacks n'a aucun moyen de retrouver les événements d'une personne donnée, et ne peut donc ni les exporter ni les effacer sur demande (article 11 du RGPD). Restent effectifs les droits qui n'exigent pas de les retrouver : désactiver les analytics met fin à toute collecte, se déconnecter remplace l'identifiant, et chaque événement est de toute façon supprimé au bout de 12 mois.
Sécurité
Les mots de passe sont hachés et ne sont jamais stockés en clair. Le trafic entre l'application et le serveur est chiffré (HTTPS). Les sauvegardes de base de données sont chiffrées au repos. L'accès aux données de production est restreint à l'exploitant et journalisé.
Mineurs
Stacks n'est pas destiné aux personnes de moins de 16 ans. Si un compte a été créé par un mineur, un message adressé à l'adresse figurant en bas de cette page en entraînera la suppression.
Modifications
Toute modification de la présente politique est reflétée par la date d'entrée en vigueur indiquée en haut de cette page. Les changements substantiels font l'objet d'une information dans l'application avant leur prise d'effet.
Pour toute question relative à la présente politique, écrire à adurier.pro@gmail.com.