Juridique

Politique de confidentialité

Comment GrindUp collecte, utilise et protège vos données.

Dernière mise à jour 29 septembre 2026


1. Qui sommes-nous

GrindUp est une application mobile sociale dédiée aux sports de force (force athlétique / powerlifting). Elle vous permet de créer un compte, de publier des vidéos de vos levées (squat, développé couché, soulevé de terre), de faire valider vos performances par la communauté, d'apparaître dans des classements internes à GrindUp, de suivre d'autres athlètes, de commenter, d'envoyer des messages privés et de signaler des contenus.

La présente politique explique quelles données personnelles nous traitons, pourquoi, pendant combien de temps, avec qui nous les partageons et quels sont vos droits, conformément au Règlement général sur la protection des données (RGPD) et à la loi Informatique et Libertés.

2. Date d'entrée en vigueur et version

  • Version : identifiant technique de version 2026-09-29 (aligné sur la version du consentement juridique enregistrée dans l'application).
  • Date d'entrée en vigueur : 29 septembre 2026.
  • Versions précédentes : version 2026-09-28 (publiée du 28 septembre 2026 au 29 septembre 2026) ; version 2026-06-25 (publiée du 3 juillet 2026 au 28 septembre 2026). Ces versions archivées sont disponibles en anglais uniquement.
  • Cette politique est accessible depuis l'application (inscription, paramètres) et à l'adresse https://grindup.app/privacy.
  • Cette politique est publiée en français et en anglais (English version).

3. Responsable du traitement

Le responsable du traitement est :

  • Maxime Scigala, entrepreneur individuel, exerçant sous le nom commercial GrindUp
  • Siège : 21 rue du Tibet, 62300 Lens, France
  • SIREN : 106 023 161
  • E-mail de contact : support@grindup.app

Les informations complètes relatives à l'éditeur et à l'hébergeur figurent dans nos Mentions légales.

4. Données que nous collectons

4.1 Lors de la création de votre compte

Selon le mode de connexion que vous choisissez :

  • E-mail et mot de passe : votre adresse e-mail et votre mot de passe. Le mot de passe est géré exclusivement par notre prestataire d'authentification (Firebase Authentication, Google) ; GrindUp n'y a jamais accès et ne le stocke jamais. La vérification de l'adresse e-mail par lien est obligatoire avant la création de votre profil. Un e-mail de réinitialisation peut vous être envoyé si vous oubliez votre mot de passe.
  • Connexion avec Google : nous recevons de Google un jeton d'identité contenant votre adresse e-mail et votre nom d'affichage Google.
  • Connexion avec Apple (Sign in with Apple, iOS) : nous demandons votre nom et votre adresse e-mail (qui peut être une adresse relais privée fournie par Apple). Lors de la suppression de votre compte, un code d'autorisation Apple à usage unique peut être utilisé pour révoquer le lien avec Apple ; il n'est jamais conservé.

4.2 Lorsque vous complétez votre profil (obligatoire)

  • Nom d'utilisateur (un pseudonyme unique) ;
  • Date de naissance — utilisée pour vérifier l'âge minimum (16 ans — voir §17) et calculer votre catégorie d'âge compétitive ;
  • Sexe déclaré ou catégorie compétitive — détermine vos catégories et classements compétitifs (catégories hommes / femmes) ; voir §6.1 sur sa visibilité ;
  • Pays (utilisé pour les classements nationaux) ;
  • Unité de poids préférée (kg / lb) ;
  • Preuve d'acceptation des documents juridiques : les versions acceptées des Conditions d'utilisation, de la Politique de confidentialité et des règles de contenu, un horodatage serveur, le contexte de l'acceptation (inscription ou nouvelle acceptation) et la langue de l'interface au moment de l'acceptation. Aucune adresse IP n'est enregistrée avec ce consentement.

Votre date de naissance exacte, votre sexe déclaré, votre unité de poids et la preuve de votre consentement sont stockés dans un espace privé de votre compte et ne sont pas nécessairement affichés comme des champs distincts sur votre profil public. Notez toutefois que votre sexe déclaré ou votre catégorie compétitive, ainsi que les attributs dérivés de votre date de naissance et de votre poids de corps, sont utilisés pour les catégories compétitives, les filtres, les classements, les cartes de performance et de record personnel (PR) et les surfaces de classement — ils peuvent donc être visibles, accessibles ou déductibles via ces surfaces (voir §6.1 et son tableau récapitulatif).

4.3 Contenus et données que vous fournissez ensuite

  • Vidéos de performance et leurs métadonnées : mouvement, charge soulevée (et unité saisie), poids de corps déclaré, date de la levée, équipement utilisé (ceinture, bandes, etc.), salle associée (facultatif), nombre de répétitions, titre/description ;
  • Pour les athlètes vérifiés qui soumettent une performance de compétition officielle (le parcours « PRO ») : le lien public vers le résultat de la compétition (openpowerlifting.org), le nom de la compétition et la fédération. Le statut d'« athlète vérifié » repose sur un code de vérification que vous nous transmettez par un canal indiqué dans l'application (par exemple le compte Instagram officiel de GrindUp) ;
  • Photo de profil (avatar) — soumise à modération avant publication (voir §8) ;
  • Biographie du profil, le cas échéant ;
  • Commentaires, j'aime, abonnements, blocages ;
  • Messages privés (voir §6.3) ;
  • Votes de validation sur les performances d'autres personnes (voir §5.2) ;
  • Signalements de contenus ou d'utilisateurs (un motif choisi dans une liste). Lorsqu'un commentaire est signalé, le signalement conserve une copie de ce commentaire tel qu'il se présentait au moment du signalement : son texte, l'identifiant de son auteur et sa date de publication. Cette copie est conservée côté serveur et lisible uniquement par notre équipe de modération, même si l'auteur modifie ou supprime ensuite son commentaire. Lorsqu'un signalement déjà traité est rouvert pour un nouveau motif, une nouvelle copie est prise et les précédentes sont conservées avec elle. Ces copies sont conservées aussi longtemps que le signalement (§14) et effacées lors de la purge du compte de l'auteur du commentaire (§15) ;
  • Retours envoyés via le formulaire dédié : catégorie, texte libre, version de l'application, plateforme, marque et modèle de l'appareil, l'identifiant de votre compte et, lorsque le retour concerne une publication, les identifiants de cette publication et de son auteur. Le formulaire ne demande aucun moyen de contact (ni adresse e-mail, ni numéro de téléphone) ; pour obtenir une réponse, écrivez à support@grindup.app ;
  • Salles que vous créez : nom, ville, pays, localisation géographique de la salle.

4.4 Données de l'appareil et autorisations

Selon l'usage que vous en faites, l'application peut demander l'accès à l'appareil photo et au microphone (pour filmer une levée), à la photothèque (pour choisir/enregistrer une vidéo ou une photo), aux notifications (voir §9) et à la localisation de l'appareil (uniquement pendant l'utilisation de l'application).

Localisation : lorsque vous accordez l'autorisation de localisation, votre position sert à afficher les salles à proximité et à centrer la carte des salles. GrindUp ne l'enregistre pas comme donnée de profil et ne la conserve pas dans ses bases de données ; seules les coordonnées de la salle que vous sélectionnez ou créez sont stockées. Les fournisseurs de cartes et votre système d'exploitation (Google Maps sur Android, Apple Plans sur iOS) peuvent traiter des informations techniques liées à l'affichage de la carte selon leurs propres règles.

5. Données créées par l'utilisation de l'application

5.1 Données techniques dérivées de votre profil

À chaque publication d'une vidéo de performance, l'application fige des attributs compétitifs calculés côté serveur à partir de votre profil au moment de la levée : âge au moment de la levée, catégorie d'âge, sexe/catégorie compétitive, catégorie de poids de corps, pays, équipement. Ces attributs « au moment de la levée » sont rattachés à la vidéo. Votre date de naissance exacte n'est jamais transmise aux autres utilisateurs — voir §6.1 pour la visibilité des attributs dérivés.

5.2 Validation communautaire, Classements vérifiés et score de confiance

  • D'autres utilisateurs votent pour valider ou rejeter votre performance. Une performance est validée lorsqu'elle atteint un seuil de votes et un taux d'approbation pondéré (par défaut : au moins 10 votes et 70 % d'approbation).
  • Une performance validée reçoit le statut « Vérifié » et rejoint les Classements vérifiés. Ces classements sont des indicateurs internes à GrindUp, vérifiés par la communauté : ils ne constituent ni un classement fédéral, ni une certification ou une homologation sportive, et n'ont aucune valeur sportive officielle en dehors de l'application. Le label « Officiel » est réservé aux performances de compétition officielle soumises via le parcours « PRO » (résultat openpowerlifting.org, approuvé par notre équipe).
  • Chaque compte votant dispose d'un score de confiance interne (0–100), recalculé automatiquement plusieurs fois par jour selon la concordance de ses votes passés avec les décisions finales. Le score de confiance n'est pas affiché publiquement et ne révèle pas les votes individuels. Il sert à pondérer les votes et peut être accessible à l'utilisateur concerné (via ses propres statistiques de validation) ou aux administrateurs lorsque cela est nécessaire au fonctionnement, à la sécurité ou au support.
  • Les votes individuels sont confidentiels : ils ne sont pas affichés publiquement et ne sont pas communiqués aux autres utilisateurs — ni l'auteur d'une vidéo ni les autres utilisateurs ne voient qui a voté quoi. Si une performance est rejetée, seul le motif dominant agrégé vous est indiqué. Les votes peuvent néanmoins être traités par GrindUp pour faire fonctionner le système de validation, à des fins de sécurité, d'audit, de prévention de la fraude ou de modération (voir §5.4).
  • Si la communauté rejette une performance, son auteur peut demander une revalidation unique.

5.3 Mesure d'usage interne (analytique produit)

Nous enregistrons des événements d'usage internes, liés à l'identifiant de votre compte : impressions de vidéos et temps de visionnage dans les fils, votes/passages, écrans consultés, étapes du parcours d'inscription, événements d'achat intégré si un achat est effectué (résultat et code d'erreur technique uniquement), sessions d'utilisation (plateforme iOS/Android, version de l'application, début/fin, durée, volume d'activité). (L'horodatage de dernière activité, qui n'est pas un événement d'usage, est décrit au §5.5.) Ces événements respectent un contrat strict de « métadonnées sûres » : jamais d'e-mail, de date de naissance, de contenu de message, de jeton ni de reçu d'achat. Ils servent uniquement à mesurer et à améliorer le produit et ne sont pas partagés avec des tiers à des fins publicitaires. Aucun SDK publicitaire ni outil de suivi tiers (Google Analytics, etc.) n'est intégré.

5.4 Journaux techniques et lutte contre les abus

  • Compteurs de limitation de débit par compte (envois, votes, commentaires, messages, etc.) et période probatoire renforcée pendant les 24 premières heures d'un compte ;
  • Jetons d'attestation d'intégrité de l'appareil (Firebase App Check : Play Integrity sur Android, App Attest/DeviceCheck sur iOS) pour bloquer les clients non officiels ;
  • Journaux d'infrastructure (Google Cloud) : comme pour tout service en ligne, les journaux techniques de la plateforme peuvent contenir l'adresse IP et les en-têtes des requêtes. Nous ne stockons pas votre adresse IP dans nos bases de données applicatives ; elle peut être utilisée de manière transitoire pour la limitation de débit et le diagnostic d'erreurs. Les identifiants techniques figurant dans ces journaux sont minimisés ou tronqués lorsque c'est possible. La conservation de Cloud Logging suit la configuration par défaut de Google Cloud (bucket _Default : 30 jours ; bucket _Required : 400 jours, verrouillé).
  • Journal d'audit de validation : les votes et décisions de validation sont enregistrés dans un journal interne pour garantir l'intégrité du système de classement.

5.5 Langue de l'interface, fuseau horaire, dernière activité et niveau de compatibilité

Lorsque vous ouvrez l'application (au plus une fois toutes les 10 minutes), elle enregistre dans l'espace privé de votre compte :

  • la langue de l'interface utilisée par l'application (par exemple l'anglais ou le français), afin que les notifications push soient rédigées dans votre langue (en anglais lorsqu'elle est absente) ;
  • le fuseau horaire de votre appareil (un identifiant tel que Europe/Paris), afin que le rappel de vote (§9) vous parvienne à 19 h, heure locale (heure de Paris lorsqu'il est absent) ;
  • un horodatage de dernière activité, également utilisé pour n'envoyer le rappel de vote qu'aux comptes ayant utilisé l'application récemment (par défaut, au cours des 14 derniers jours) ;
  • le niveau de compatibilité de votre application, un nombre qui identifie sa version, afin que notre équipe de support et de modération sache si une fonctionnalité vous parvient.

Ces valeurs ne sont pas affichées aux autres utilisateurs. Chaque valeur enregistrée remplace la précédente (l'application ne conserve aucun historique ; lorsque l'appareil ne communique pas de fuseau horaire, le dernier enregistré est conservé), et elles sont conservées pendant toute la durée de vie du compte puis supprimées avec lui (§15).

6. Données publiques et données visibles par les autres utilisateurs

GrindUp est un réseau social sportif : la visibilité est au cœur du produit. Il n'existe actuellement pas de mode « compte privé ».

6.1 Visible par tous les utilisateurs connectés

  • Votre profil public : nom d'utilisateur, avatar approuvé, biographie, pays, nombre d'abonnés et d'abonnements, records personnels (PR), badge « athlète vérifié » et bannière de profil ;
  • Vos vidéos publiées et leurs métadonnées compétitives figées (charge soulevée, catégorie de poids de corps dérivée du poids de corps déclaré au moment de la levée, âge au moment de la levée et catégorie d'âge, sexe/catégorie compétitive, équipement, salle, date de la levée), y compris les vidéos en attente de validation ;
  • Vos commentaires ;
  • Votre présence dans les classements (surfaces « Open » et « Classements vérifiés » — monde, pays, salle) et dans les records de salle : nom d'utilisateur, avatar, pays, performance, catégories (sexe/catégorie compétitive, catégorie d'âge, catégorie de poids de corps, équipement) et badges de preuve (« Vérifié » pour une validation communautaire, « Officiel » pour une performance de compétition approuvée) ;
  • Pour une performance « PRO » (compétition officielle) : le lien public openpowerlifting.org que vous avez fourni ;
  • Les salles que vous créez (l'identifiant du créateur est techniquement lisible par les utilisateurs connectés).

Vos j'aime ne sont pas visibles par tous les utilisateurs connectés : ceux-ci voient combien de j'aime une vidéo ou un commentaire a reçus, mais pas qui les a donnés. Seul l'auteur d'une vidéo ou d'un commentaire peut savoir qui l'a aimé, par les notifications de j'aime (§9 : la dernière personne qui a aimé et le nombre d'autres) et, pour une vidéo, par la liste ci-dessous.

Le propriétaire d'une vidéo peut voir la liste des personnes qui l'ont aimée (pseudo et photo de profil) ; les comptes bloqués, désactivés ou supprimés n'y apparaissent pas.

Ce qui n'est pas affiché : votre date de naissance exacte, votre adresse e-mail et vos paramètres ne sont pas des champs de votre profil public et ne sont pas transmis aux autres utilisateurs. Votre poids de corps exact n'est pas affiché aux autres utilisateurs (seule la catégorie de poids de corps dérivée l'est — voir ci-dessous). Votre score de confiance n'est pas affiché publiquement (voir §5.2).

Ce qui est visible, accessible ou déductible via les catégories compétitives : votre sexe déclaré ou votre catégorie compétitive n'est pas nécessairement affiché comme un champ de profil distinct, mais il est utilisé pour les catégories compétitives, les filtres, les classements, les cartes de performance et de PR et les surfaces de classement — il peut donc être visible, accessible ou déductible via ces surfaces. Il en va de même pour votre catégorie d'âge, votre âge au moment de la levée et votre catégorie de poids de corps. Le poids de corps déclaré au moment de la levée sert à déterminer la catégorie de poids de corps et à classer les performances. Votre poids de corps exact n'est pas affiché aux autres utilisateurs : le Service a pour objet d'afficher la catégorie de poids de corps dérivée, et non le poids de corps exact, sur les surfaces visibles par les autres utilisateurs. Votre poids de corps exact ne figure pas sur les surfaces lisibles par les autres utilisateurs : il est retiré du document public de la vidéo et conservé dans un espace serveur privé (inaccessible aux clients en vertu de nos règles de sécurité) ; les réponses d'API, les documents lisibles par les clients et les surfaces de partage exposent la catégorie de poids de corps dérivée ou des données minimisées.

Récapitulatif — attributs compétitifs et visibilité :

DonnéeUtilisationVisibilité
Date de naissance exacteVérification de l'âge minimum, calcul de la catégorie d'âgeNon affichée publiquement ; jamais transmise aux autres utilisateurs
Âge au moment de la levée / catégorie d'âgeClassements, catégories compétitivesVisible ou déductible via les surfaces de classement et les cartes de performance
Sexe déclaré ou catégorie compétitiveCatégories compétitives, filtres, classements, cartes de performanceVisible, accessible ou déductible via ces surfaces
Poids de corps déclaré (au moment de la levée)Collecté ; utilisé pour dériver la catégorie de poids de corps et classer la performanceNon affiché aux autres utilisateurs ; conservé dans un espace serveur privé inaccessible aux clients ; seule la catégorie de poids de corps dérivée est exposée
Catégorie de poids de corps (dérivée)Classements, catégories compétitives, filtres, cartes de performance, cartes PRVisible ou déductible via ces surfaces
PaysClassements nationaux, filtresVisible (profil et classements)
Salle associée à une levéeCartes de performance, records et classements de salleVisible si renseignée
Score de confiancePondération interne des votes de validationNon public ; ne révèle pas les votes individuels ; accessible à l'utilisateur concerné (ses statistiques) et aux administrateurs lorsque cela est nécessaire

6.2 Accessibilité technique des médias publiés

Les fichiers des vidéos approuvées (lecture, miniatures) et des avatars approuvés sont diffusés via un CDN public : toute personne disposant de l'URL d'un fichier peut techniquement y accéder, même sans compte. Ne publiez pas une vidéo que vous ne souhaitez pas rendre publique. L'accès en lecture aux médias passe exclusivement par le CDN, selon les règles de visibilité ; il n'existe pas de lecture « invité » par URL signée. Les URL signées sont réservées aux flux d'envoi.

6.3 Données privées entre utilisateurs

  • Messages privés : visibles uniquement par les participants à la conversation ; ils ne sont pas chiffrés de bout en bout. Ils peuvent être traités par GrindUp lorsque cela est strictement nécessaire au fonctionnement technique, à la sécurité, à la modération ou au respect d'une obligation légale. Le contenu d'un message n'est jamais inclus dans les notifications push. Les messages ne peuvent plus être modifiés une fois envoyés.
  • Blocages : visibles uniquement par les deux comptes concernés.
  • Signalements : visibles uniquement par notre équipe de modération.

6.4 Données accessibles uniquement à notre équipe (administration/modération)

Nos administrateurs et modérateurs accèdent, via une console interne sécurisée, aux données nécessaires à leurs missions : fiche utilisateur (dont e-mail, date de naissance, sexe déclaré, statistiques de validation), signalements, files de modération des vidéos et des avatars (scores d'analyse, texte détecté par OCR, indices de doublon), retours, journaux d'audit. Chaque accès et chaque action administratifs sont journalisés (e-mail de l'administrateur, action, horodatage, adresse IP de l'administrateur).

7. Finalités, bases légales et durées de conservation

FinalitéPrincipales donnéesBase légaleConservation
Créer et gérer votre compte, vérifier l'e-mail, authentifiere-mail, identifiants du fournisseur, mot de passe (via Firebase)Exécution du contrat (art. 6.1.b)Durée de vie du compte (§15)
Fournir le service : profil, publication de vidéos, fils, validation communautaire, Classements vérifiés, sallesprofil, contenus, attributs compétitifs figés, votesExécution du contrat (art. 6.1.b)Durée de vie du compte / des contenus (§14–§15)
Vérifier l'âge minimum et calculer les catégories compétitives (dont la catégorie de poids de corps)date de naissance, sexe/catégorie compétitive déclaré, poids de corps déclaré au moment de la levéeExécution du contrat (art. 6.1.b) ; intérêt légitime à protéger les mineurs et à assurer la sécurité du Service (art. 6.1.f) ; obligation légale le cas échéant (art. 6.1.c)Durée de vie du compte / des contenus
Messagerie privée, commentaires, abonnements ; notifications essentielles dans l'applicationcontenus, graphe socialExécution du contrat (art. 6.1.b) ; intérêt légitime (art. 6.1.f) pour certaines notifications de serviceMessages : durée de la conversation (§15) ; notifications : 90 jours
Modération des contenus (analyse technique automatisée + examen humain), traitement des signalementsvidéos, avatars, noms d'utilisateur, scores d'analyse, signalementsIntérêt légitime — sécurité du service, protection des utilisateurs (art. 6.1.f) ; obligations légales applicables aux hébergeurs (art. 6.1.c)Artefacts : 7 à 30 jours ; signalements et journaux : §14
Sécurité, lutte contre la fraude et les abus (limitation de débit, App Check, score de confiance, journaux)identifiants de compte, compteurs, jetons d'attestationIntérêt légitime (art. 6.1.f)§14 (journaux, compteurs)
Achats intégrés, le cas échéant (achat, droits d'accès, restauration)identifiant lié au compte, état de l'abonnement, métadonnées des événements de facturationExécution du contrat (art. 6.1.b) ; obligations légales le cas échéant (art. 6.1.c)Durée de vie du compte ; journal technique : §14
Mesure d'usage et amélioration du produit (analytique interne)événements d'usage liés au compte (§5.3)Intérêt légitime (art. 6.1.f)~90 jours (sessions : ~30 jours)
Stabilité de l'application (rapports de plantage et d'erreur, Sentry)rapports techniques de plantage et d'erreur, sessions d'utilisation, identifiant d'installation, identifiants techniques rattachables au compte (§11)Intérêt légitime (art. 6.1.f)Rapports : 30 jours (§11, §14)
Preuve du consentement aux documents juridiquesversions acceptées, horodatage, langueObligation légale / intérêt légitime (art. 6.1.c / 6.1.f)Durée de vie du compte (§14)
Langue et horaire des notifications ; rappel de votelangue de l'interface, fuseau horaire, horodatage de dernière activité (§5.5)Intérêt légitime (art. 6.1.f) ; le rappel de vote peut être désactivé à tout momentDurée de vie du compte (chaque nouvelle valeur remplace la précédente ; voir §5.5)
Support et modération : savoir si une fonctionnalité parvient à votre applicationniveau de compatibilité de l'application (§5.5)Intérêt légitime (art. 6.1.f)Durée de vie du compte (chaque nouvelle valeur remplace la précédente ; voir §5.5)
Notifications pushjeton de l'appareil, préférencesAutorisation de l'appareil / consentement (art. 6.1.a), retirable à tout momentJusqu'au retrait, à l'invalidation ou à la déconnexion (§14)
Localisation (carte des salles)position de l'appareil (utilisée pour l'affichage)Autorisation de l'appareil / consentement (art. 6.1.a)Non conservée par GrindUp
Traiter les retours que vous envoyez via le formulaire de l'application (bug, suggestion, abus, autre)catégorie, texte libre, informations sur l'application et l'appareil, identifiant du compte, identifiants de la publication et de l'auteur concernés (§4.3)Intérêt légitime — améliorer et sécuriser le service (art. 6.1.f)Durée de vie du compte (supprimés lors de la purge, §15)

Les attributs compétitifs concernés par ces finalités (sexe/catégorie compétitive déclaré, catégorie d'âge, catégorie de poids de corps) peuvent être visibles, accessibles ou déductibles via les surfaces de classement — voir §6.1. Votre poids de corps exact est traité en interne pour déterminer la catégorie de poids de corps et classer les performances (exécution du contrat) et, le cas échéant, pour traiter les signalements relatifs à l'intégrité sportive — par exemple un poids de corps déclaré suspect (intérêt légitime, §8.3) ; il n'est pas affiché aux autres utilisateurs (voir §6.1).

Poids de corps et performances : ces données sportives sont traitées comme des données de performance athlétique, et non comme des données de santé.

8. Modération, sécurité et prévention des abus

8.1 Modération des vidéos

Chaque vidéo envoyée transite par un espace de stockage privé et fait l'objet d'une analyse technique de contenu automatisée par l'API Google Video Intelligence, limitée à la détection de contenu explicite (seule analyse demandée à ce service) :

  • aucun signal problématique → publication automatique ;
  • contenu explicite détecté avec un niveau de confiance élevé → rejet automatique, avec une notification ;
  • signaux ambigus → examen humain par notre équipe de modération avant toute décision ; en cas d'incident technique, la vidéo est placée en examen plutôt que publiée.

Les vidéos rejetées ne sont jamais publiées ; leurs fichiers sont conservés brièvement à des fins d'audit puis supprimés automatiquement (voir §14).

8.2 Modération des avatars et des noms d'utilisateur

Chaque photo de profil fait l'objet, avant publication, d'une analyse technique de contenu par l'API Google Cloud Vision : détection de contenus sensibles (SafeSearch), détection de texte (OCR) comparé à une liste de termes interdits, et calcul d'une empreinte d'image (hachage perceptuel) utilisée uniquement comme indice de doublon pour les modérateurs — un doublon ne déclenche jamais à lui seul une décision. Selon le résultat, l'avatar est publié automatiquement, rejeté automatiquement (contenu inapproprié ou texte offensant) ou soumis à un examen humain.

Chaque nom d'utilisateur est vérifié automatiquement, à l'inscription et à chaque changement, par comparaison avec une liste de termes haineux : un nom refusé n'est pas enregistré, et vous pouvez en choisir un autre. Notre équipe de modération peut aussi exiger le changement d'un nom d'utilisateur contraire à nos règles : l'application vous demande alors d'en choisir un nouveau, et les autres actions de votre compte restent suspendues jusqu'à ce choix. Ce changement exigé n'est pas soumis au délai de 30 jours (§16) et peut être contesté (§8.6). Pendant ce temps, vous pouvez toujours demander la suppression de votre compte en écrivant à support@grindup.app (§16).

Ces outils d'analyse (vidéo et image) ne sont pas utilisés pour identifier une personne, reconnaître son identité ou créer un gabarit biométrique.

8.3 Signalements et intégrité des performances

Les signalements (contenu abusif, performance suspecte, mauvaise salle, etc.) sont examinés par notre équipe. Un module interne d'évaluation « anti-triche » agrège des statistiques de signalement (nombre de signaleurs distincts, motifs) en mode observation : il ne prend aucune décision automatique et ne modifie pas la visibilité de vos contenus.

8.4 Traitements automatisés et garanties

Certaines décisions de publication ou de modération peuvent être assistées ou déclenchées par des règles techniques automatisées (publication ou rejet automatiques décrits aux §8.1 et §8.2 ; pondération automatique des votes par le score de confiance, §5.2). Ces décisions portent sur la disponibilité des contenus au sein de GrindUp et n'ont pas pour objet de produire un effet juridique à votre égard. Les cas ambigus, les incidents techniques et les contestations font l'objet d'un examen humain.

Garanties : vous êtes informé des décisions concernant vos contenus (voir aussi §8.6) ; vous pouvez demander un examen humain, exprimer votre point de vue et contester une décision en nous contactant (support@grindup.app) ; un rejet communautaire ouvre droit à une revalidation unique dans l'application.

8.5 Mesures anti-abus

Limitation de débit par compte, période probatoire de 24 heures pour les nouveaux comptes, attestation d'intégrité de l'appareil (App Check), règles de sécurité strictes de la base de données (écritures sensibles réservées au serveur), désactivation administrative des comptes contrevenants (avec journalisation) et masquage des contenus d'un compte en cours de suppression.

8.6 Information sur les mesures de modération

En cas de retrait, de restriction de visibilité, de suspension ou d'autre mesure de modération, GrindUp peut vous informer de la mesure prise et de son motif, sauf si la loi, la sécurité du Service, la protection d'un tiers ou la prévention des abus s'y opposent. Vous pouvez contester la décision à l'adresse support@grindup.app.

9. Notifications

  • Notifications dans l'application : validation/rejet de vos performances, résultat de modération, retrait de contenu, nouveaux abonnés, messages, commentaires, évolutions de vos classements de salle (record de salle pris ou perdu, dépassement, progression) et les j'aime sur vos vidéos et vos commentaires : le pseudo et la photo de profil de la dernière personne qui a aimé, le nombre d'autres personnes et, pour un commentaire, la vidéo sur laquelle il est publié. Elles expirent automatiquement au bout de 90 jours.
  • Rappel de vote : au plus une fois par jour, à 19 h heure locale (§5.5), un rappel indiquant que des performances attendent votre vote, envoyé uniquement lorsqu'il existe au moins une performance sur laquelle vous pouvez encore voter. Vous pouvez le désactiver avec l'interrupteur « Rappels de vote » dans les paramètres de notification ; lorsqu'il est désactivé, ou lorsque les notifications sont entièrement désactivées, aucun rappel n'est créé, ni dans l'application ni sous forme de notification push.
  • Notifications push (Firebase Cloud Messaging) : envoyées uniquement si vous accordez l'autorisation système. Nous stockons pour cela un jeton d'appareil (jeton FCM), la plateforme (iOS/Android) et la version de l'application, dans la limite de 10 appareils par compte. Le jeton est supprimé à la déconnexion, lorsqu'il devient invalide et lors de la suppression du compte.
  • Vous contrôlez les notifications push par type de notification et via un interrupteur général dans les paramètres, ainsi que dans les réglages système de votre téléphone. Des plafonds anti-spam (fenêtres de silence, maximum quotidien pour les notifications non critiques) s'appliquent ; lorsque plusieurs commentaires ou messages arrivent pendant une fenêtre de silence, une seule notification push récapitulative peut être envoyée à la fin de celle-ci, indiquant le nombre de personnes concernées.
  • Le contenu de vos messages privés n'apparaît jamais dans une notification push (seul l'expéditeur est mentionné).

10. Achats intégrés et paiements

  • GrindUp ne vend actuellement aucune offre payante ni aucun abonnement : toutes les fonctionnalités de l'application sont gratuites. Si un achat est effectué dans l'application, il s'effectue exclusivement via l'App Store (Apple) ou Google Play. Le paiement, y compris les données de votre carte, est géré par Apple ou Google : GrindUp n'a jamais accès à vos données de paiement et ne les stocke pas.
  • Nous utilisons RevenueCat pour gérer les droits d'accès liés aux achats intégrés. RevenueCat reçoit un identifiant lié au compte — une donnée personnelle au sens du RGPD — afin d'associer vos éventuels achats à vos droits d'accès ; nous ne lui transmettons ni votre e-mail ni votre nom.
  • Si un achat est effectué, nous conservons son état : actif/essai/période de grâce/expiré/résilié, date de fin d'accès, identifiant du produit acheté, boutique d'achat et métadonnées techniques des événements de facturation (identifiants et horodatages des événements). Aucun montant de transaction ni reçu n'est stocké par GrindUp.
  • Si un achat est effectué, le fait que vous disposiez d'un accès payant actif est enregistré sur votre profil et peut être lu par les autres utilisateurs connectés.
  • La gestion et la résiliation d'un abonnement souscrit via une boutique s'effectuent dans les réglages de cette boutique.

11. Analytique, journaux et rapports de plantage

  • Analytique interne : voir §5.3. Événements liés à l'identifiant de votre compte, hébergés dans notre propre base de données, sur le fondement de notre intérêt légitime (§7), avec un marqueur d'expiration d'environ 90 jours (sessions : 30 jours).
  • Rapports de plantage et d'erreur (Sentry) : lorsque l'application plante ou rencontre une erreur, un rapport est envoyé à Sentry (Functional Software, Inc.) ; à chaque utilisation de l'application, le logiciel Sentry envoie aussi un court signal de session d'utilisation (identifiant d'installation, versions de l'application et du système, fin de session normale ou par plantage). Sentry héberge ces données dans sa région UE (Allemagne) et conserve les rapports 30 jours ; les sessions d'utilisation sont agrégées en statistiques que Sentry conserve selon sa propre durée de conservation. Nous n'y associons ni votre profil, ni votre nom, ni votre adresse e-mail, et l'application n'active pas l'envoi des données personnelles que le logiciel Sentry joindrait par défaut (sendDefaultPii: false). Un rapport contient néanmoins des informations techniques nécessaires au diagnostic, qui peuvent être rattachées à vous, par exemple : modèle et état de l'appareil (langue, mémoire, écran, appareil débridé ou non), versions du système et de l'application, traces d'exécution, un identifiant d'installation aléatoire généré par le logiciel Sentry sur votre appareil, et les événements qui précèdent le problème — requêtes réseau, dont les adresses peuvent contenir des identifiants de comptes ou de médias, changements d'écran, appuis et messages de journal de l'application. Sentry peut déduire de l'adresse IP de la connexion une localisation approximative (pays, région, ville) ; l'adresse IP elle-même n'est pas conservée. Une fraction des traces de performance (10 %) peut également être collectée. Ces rapports ne sont donc pas anonymes.
  • Journaux serveur : les services backend journalisent des événements techniques (Cloud Logging) avec des identifiants tronqués lorsque c'est possible ; les journaux de la plateforme Google Cloud peuvent contenir des adresses IP (voir §5.4).
  • Aucun cookie n'est utilisé dans l'application mobile. Ce site juridique public est statique et ne dépose aucun cookie de suivi ou publicitaire. (Notre console d'administration interne utilise des cookies techniques liés à l'authentification Google IAP de notre équipe.)

12. Destinataires et sous-traitants

Vos données sont traitées par nos équipes habilitées (support, modération, administration — accès journalisés, restreints au domaine de l'entreprise) et par les sous-traitants suivants :

Sous-traitantServiceFinalitéDonnées concernées
Google Cloud / Firebase (Google Ireland Ltd / Google LLC)Firestore, Cloud Storage + CDN, Cloud Functions/Run, Firebase Auth, App Check, Cloud LoggingHébergement, authentification, diffusion des médias, sécuritéToutes les données du service
Google CloudAPI Video IntelligenceAnalyse technique du contenu des vidéos (détection de contenu explicite)Fichiers vidéo soumis
Google CloudAPI VisionAnalyse technique du contenu des avatars (SafeSearch, OCR)Photos de profil soumises
Google (Firebase Cloud Messaging) / Apple (APNs)Notifications pushAcheminer les notificationsJeton de l'appareil, contenu de la notification
RevenueCat, Inc.Gestion des achats intégrésDroits d'accès liés aux achats intégrésIdentifiant lié au compte, événements d'achat des boutiques
Apple (App Store) / Google (Play)Achat intégréPaiement des achats intégrés, le cas échéantDonnées de paiement (traitées par les boutiques en tant que responsables de traitement distincts)
Functional Software, Inc. (Sentry)Rapports de plantage et d'erreurStabilité de l'applicationRapports techniques de plantage et d'erreur, sessions d'utilisation, identifiant d'installation, identifiants techniques (§11) ; hébergés dans l'UE (Allemagne)
Google (Sign-In) / Apple (Sign in with Apple)Connexion fédéréeAuthentificationJetons d'identité (e-mail, nom)
Google Maps (Android uniquement)Fond de carte des sallesAffichage de la carteRequêtes de tuiles émises par l'appareil (iOS utilise Apple Plans)

Aucune donnée n'est vendue ni partagée à des fins publicitaires. Vos données peuvent également être communiquées aux autorités compétentes lorsque la loi l'exige (par exemple réquisitions judiciaires, obligations applicables aux hébergeurs de contenus).

13. Transferts hors de l'UE / de l'EEE

Pour les composants dont nous maîtrisons la configuration (fonctions serveur, services de traitement, stockage des fichiers médias), l'infrastructure est déployée dans la région Google Cloud europe-west1 (Belgique). Nous ne pouvons toutefois pas affirmer à ce stade que l'ensemble des traitements a lieu au sein de l'UE/EEE : la région exacte de la base de données Firestore n'est pas attestée par le code ; les appels aux API Video Intelligence et Vision ne sont pas rattachés à une région de l'UE et peuvent être traités par Google sur une infrastructure située hors de l'UE (typiquement aux États-Unis) ; Sentry et RevenueCat sont des sociétés américaines (nos rapports Sentry sont hébergés dans sa région UE, en Allemagne) ; les notifications transitent par les infrastructures mondiales de Google (FCM) et d'Apple (APNs).

Lorsque de tels transferts ont lieu, ils sont encadrés par les mécanismes prévus par le RGPD : une décision d'adéquation (notamment le « Data Privacy Framework » UE–États-Unis pour les prestataires certifiés) et/ou les clauses contractuelles types de la Commission européenne, accompagnées le cas échéant de mesures supplémentaires.

14. Durées de conservation

Les durées ci-dessous correspondent aux mécanismes effectivement mis en œuvre. Lorsqu'aucune durée automatique n'existe, les données sont conservées tant que le compte ou le contenu existe, ou aussi longtemps que nécessaire au fonctionnement du service, à sa sécurité, à la prévention de la fraude, à l'audit, au respect de nos obligations légales et à la défense de nos droits.

DonnéeDurée
Compte, profil, contenus publiésTant que le compte existe, puis suppression selon le §15
Demande de suppression du compteDélai de grâce de 7 jours (compte suspendu, contenus masqués), puis purge définitive
Vidéo que vous supprimezMasquée immédiatement ; fichiers et données purgés au bout de 7 jours
Fichiers d'envoi incomplets / artefacts de modération / fichiers rejetés (stockage interne privé)Envoi en attente : 7 jours ; artefacts de modération : 30 jours ; vidéos rejetées : 7 jours ; envois abandonnés marqués comme expirés au bout de 48 h
Copies des avatars rejetés (stockage d'audit privé)Conservées aussi longtemps que nécessaire à l'audit de modération ; supprimées lors de la suppression du compte
Empreintes d'image des avatars (détection des doublons)90 jours (et suppression immédiate lors de la suppression du compte)
Notifications dans l'application90 jours
Événements d'usage internes (analytique)Marqueur d'expiration ~90 jours ; sessions ~30 jours
Jetons pushJusqu'à la déconnexion, l'invalidation ou la suppression du compte (10 appareils maximum)
Langue de l'interface, fuseau horaire, horodatage de dernière activité et niveau de compatibilité de l'application (§5.5)Durée de vie du compte, chaque valeur remplaçant la précédente ; supprimés lors de la purge du compte
État des achats intégrés, le cas échéantDurée de vie du compte ; supprimé lors de la purge du compte
Journal technique des événements d'abonnement (webhook RevenueCat)Conservé après la suppression du compte, aussi longtemps que nécessaire à la protection contre le rejeu et à l'audit (pseudonymisé)
SignalementsConservés aussi longtemps que nécessaire à l'intégrité de la modération, à la sécurité, à la prévention de la fraude et à la défense de nos droits, y compris après la suppression du compte de l'auteur du signalement ; après cette suppression, son identité est pseudonymisée (l'identifiant brut du compte n'est plus conservé)
Votes de validation émisConservés (pseudonymisés, nécessaires à l'intégrité des décisions déjà prises)
Journal d'audit de validationConservé aussi longtemps que nécessaire à l'intégrité du système de validation
Journaux d'audit des administrateursConservés aussi longtemps que nécessaire à la sécurité et à la traçabilité des actions administratives
Preuve du consentement juridiqueDurée de vie du compte (supprimée avec le compte)
Rapports de plantage et d'erreur, sessions d'utilisation (Sentry)Rapports : 30 jours ; sessions d'utilisation : statistiques agrégées conservées selon la durée propre à Sentry
Compteurs anti-abus (limitation de débit)Conservés aussi longtemps que nécessaire à la sécurité du service

15. Suppression du compte

Vous pouvez supprimer votre compte directement dans l'application (Paramètres → Supprimer le compte), après une réauthentification récente :

  1. Délai de grâce de 7 jours : votre compte passe à l'état « suppression en attente » ; vos contenus sont masqués immédiatement (fils, classements, records, file de validation) ; vous ne pouvez plus interagir. Vous pouvez annuler la suppression à tout moment pendant ces 7 jours en vous reconnectant et en confirmant l'annulation (l'annulation ne laisse aucune trace visible par les autres utilisateurs).
  2. Purge définitive et irréversible (exécutée quotidiennement après l'échéance) : suppression de votre compte d'authentification, de votre profil (y compris date de naissance, sexe déclaré, consentements, score de confiance, langue de l'interface et fuseau horaire), de vos vidéos et fichiers médias (publics et privés), des avatars et des empreintes associées, des commentaires (les vôtres, où qu'ils se trouvent), des abonnements et abonnés, des blocages, des notifications, des jetons push, des sessions et événements d'usage, des records de salle, des statistiques de validation, des instantanés de classement, des droits d'abonnement, des retours que vous avez envoyés et des files de modération vous concernant.
  3. Données conservées, pseudonymisées ou anonymisées après la purge (voir aussi §14) : vos conversations sont conservées pour l'autre participant, sans votre identité (nom d'utilisateur et avatar effacés ; le contenu des messages déjà envoyés reste visible pour le destinataire) ; vos votes sur les vidéos d'autres personnes, vos signalements (dont votre identité d'auteur est pseudonymisée) et le journal technique d'abonnement sont conservés afin de préserver l'intégrité du service. Les rapports de plantage et d'erreur déjà envoyés à Sentry ne sont pas supprimés par la purge : ils expirent au terme de la durée de conservation de Sentry indiquée au §14.

La suppression n'est donc ni instantanée ni totale dans tous les systèmes : selon les cas, les données sont supprimées, anonymisées, pseudonymisées ou conservées pour des raisons de sécurité, d'intégrité du service, de prévention de la fraude, de conformité ou de défense de nos droits (détail au §14). Lorsque des données sont pseudonymisées, elles ne sont plus rattachées à votre compte, mais la pseudonymisation n'équivaut pas à une anonymisation irréversible.

La suppression du compte ne résilie pas automatiquement un abonnement souscrit via l'App Store ou Google Play : si vous en avez un, résiliez-le dans les réglages de votre boutique.

Pour les comptes Apple, le lien « Sign in with Apple » est révoqué, dans la mesure du possible, lors de la demande de suppression.

16. Vos droits

Conformément aux articles 15 à 22 du RGPD, vous disposez des droits suivants :

  • Accès : obtenir une copie des données que nous détenons à votre sujet ;
  • Rectification : dans l'application, vous pouvez modifier votre nom d'utilisateur (au plus une fois tous les 30 jours, sauf changement exigé par notre équipe de modération, §8.2), corriger votre date de naissance (au plus une fois tous les 30 jours), changer votre avatar, votre biographie et votre unité de poids. Pour les autres champs (notamment le sexe/catégorie compétitive déclaré et le pays, que vous ne pouvez pas modifier vous-même car ils conditionnent les catégories de classement là où ils sont visibles ou déductibles — voir §6.1), contactez-nous ;
  • Effacement : suppression du compte dans l'application (§15) ou sur demande ; suppression individuelle de vos vidéos et commentaires dans l'application ;
  • Opposition et limitation du traitement, dans les conditions prévues par le RGPD (notamment pour les traitements fondés sur notre intérêt légitime) ;
  • Portabilité : recevoir les données que vous nous avez fournies dans un format structuré (les demandes sont traitées manuellement) ;
  • Retrait du consentement à tout moment (notifications push, localisation), sans que cela affecte la licéité des traitements antérieurs ;
  • Directives post-mortem : définir des directives relatives au sort de vos données après votre décès (droit français).

Pour exercer vos droits : support@grindup.app. Nous pouvons vous demander de justifier de votre identité (par exemple en écrivant depuis l'adresse e-mail du compte). Nous répondons dans un délai d'un mois, prolongeable de deux mois pour les demandes complexes.

Vous pouvez introduire une réclamation auprès de la CNIL (Commission nationale de l'informatique et des libertés) : www.cnil.fr — 3 place de Fontenoy, TSA 80715, 75334 Paris Cedex 07.

17. Mineurs

  • GrindUp est réservé aux personnes âgées d'au moins 16 ans. Les personnes de moins de 16 ans ne peuvent pas créer de compte. La date de naissance est vérifiée à l'inscription (contrôle côté serveur) et des contrôles d'âge s'appliquent également aux performances publiées. Aucune inscription en dessous de l'âge minimum n'est acceptée.
  • Certaines catégories compétitives peuvent couvrir des tranches d'âge théoriques plus larges que l'âge minimum d'accès au Service ; GrindUp reste réservé aux utilisateurs âgés de 16 ans et plus.
  • Si vous pensez qu'un utilisateur n'a pas l'âge minimum, contactez-nous à l'adresse support@grindup.app : le compte concerné sera supprimé.

18. Sécurité

Principales mesures mises en œuvre :

  • Chiffrement des données en transit (TLS) et au repos (chiffrement par défaut de Google Cloud) ;
  • Authentification déléguée à Firebase Auth ; aucun mot de passe stocké par GrindUp ; révocation des sessions lors des opérations sensibles ;
  • Règles de sécurité strictes de la base de données : les données sensibles (votes, jetons push, files de modération, données de profil privées) sont inaccessibles aux clients ; les écritures critiques passent exclusivement par nos serveurs ;
  • Séparation du stockage : médias publiés sur un bucket public dédié ; envois en attente, artefacts de modération et images en cours d'examen sur des buckets privés ;
  • Attestation d'intégrité de l'appareil (App Check), limitation de débit, période probatoire des nouveaux comptes ;
  • Console d'administration accessible uniquement à notre équipe via Google Identity-Aware Proxy (double vérification réseau et applicative, domaine restreint), avec journalisation de chaque action et confirmation renforcée pour les actions destructrices en production ;
  • Secrets gérés via un gestionnaire de secrets ; séparation stricte des environnements de développement, de préproduction et de production.

Aucun système n'est infaillible : en cas de violation de données susceptible d'engendrer un risque élevé pour vos droits, nous vous en informerons conformément aux articles 33 et 34 du RGPD.

19. Modifications de la présente politique

Nous pouvons modifier cette politique pour tenir compte de l'évolution du service ou de la loi. En cas de modification substantielle, la nouvelle version vous sera présentée dans l'application pour acceptation avant que vous puissiez continuer (le mécanisme de nouveau consentement versionné est intégré à l'application). La date et la version en vigueur figurent en haut du présent document.

20. Contact

  • Questions sur cette politique ou exercice de vos droits : support@grindup.app
  • Adresse postale : 21 rue du Tibet, 62300 Lens, France
  • Autorité de contrôle : CNIL (www.cnil.fr)

Legal

Privacy Policy

How GrindUp collects, uses, and protects your data.

Last updated 29 September 2026


1. Who we are

GrindUp is a social mobile app for strength sports (powerlifting). It lets you create an account, publish videos of your lifts (squat, bench press, deadlift), have your performances validated by the community, appear in leaderboards internal to GrindUp, follow other athletes, comment, send private messages, and report content.

This policy explains what personal data we process, why, for how long, with whom we share it, and what your rights are, in accordance with the General Data Protection Regulation (GDPR) and the French Data Protection Act (Informatique et Libertés).

2. Effective date and version

  • Version: technical version identifier 2026-09-29 (kept in step with the legal-consent version recorded in the app).
  • Effective date: 29 September 2026.
  • Previous versions: version 2026-09-28 (published 28 September 2026 to 29 September 2026); version 2026-06-25 (published 3 July 2026 to 28 September 2026).
  • This policy is available from within the app (sign-up, settings) and at https://grindup.app/privacy.
  • This policy is published in English and in French (version française).

3. Data controller

The data controller is:

  • Maxime Scigala, sole trader (entrepreneur individuel), trading as GrindUp
  • Registered office: 21 rue du Tibet, 62300 Lens, France
  • SIREN: 106 023 161
  • Contact e-mail: support@grindup.app

Full publisher and hosting details are set out in our Legal Notice.

4. Data we collect

4.1 When you create your account

Depending on the sign-in method you choose:

  • E-mail and password: your e-mail address and password. The password is handled exclusively by our authentication provider (Firebase Authentication, Google); GrindUp never has access to it and never stores it. E-mail verification by link is required before your profile is created. A reset e-mail can be sent to you if you forget your password.
  • Google sign-in: we receive an identity token from Google containing your e-mail address and your Google display name.
  • Apple sign-in (Sign in with Apple, iOS): we request your name and e-mail address (which may be a private relay address provided by Apple). When you delete your account, a single-use Apple authorization code may be used to revoke the link with Apple; it is never retained.

4.2 When you complete your profile (required)

  • Username (a unique nickname);
  • Date of birth — used to verify the minimum age (16 — see §17) and to compute your competitive age category;
  • Declared sex or competitive category — determines your competitive categories and leaderboards (men's / women's categories); see §6.1 on its visibility;
  • Country (used for national leaderboards);
  • Preferred weight unit (kg / lb);
  • Proof of acceptance of the legal documents: the accepted versions of the Terms, Privacy Policy and content rules, a server timestamp, the acceptance context (sign-up or re-acceptance) and the interface language at the time of acceptance. No IP address is recorded with this consent.

Your exact date of birth, declared sex, weight unit and proof of consent are stored in a private area of your account and are not necessarily shown as separate fields on your public profile. Note, however, that your declared sex or competitive category, as well as the attributes derived from your date of birth and bodyweight, are used for competitive categories, filters, leaderboards, performance and personal-record (PR) cards, and ranking surfaces — so they may be visible, accessible or inferable through those surfaces (see §6.1 and its summary table).

4.3 Content and data you provide afterwards

  • Performance videos and their metadata: movement, weight lifted (and the unit entered), declared bodyweight, date of the lift, equipment used (belt, wraps, etc.), associated gym (optional), number of repetitions, title/description;
  • For verified athletes submitting an official competition (the "PRO" lane) performance: the public link to the competition result (openpowerlifting.org), the competition name and the federation. The "verified athlete" status relies on a verification code that you send us through a channel designated in the app (for example GrindUp's official Instagram account);
  • Profile picture (avatar) — subject to moderation before publication (see §8);
  • Profile biography, if any;
  • Comments, likes, follows, blocks;
  • Private messages (see §6.3);
  • Validation votes on other people's performances (see §5.2);
  • Reports of content or users (a reason chosen from a list). When a comment is reported, the report keeps a copy of it as it read at the time of the report: its text, its author's identifier and the date it was posted. This copy is kept server-side and readable only by our moderation team, even if the author later edits or deletes the comment. When a report that was already decided is re-opened with a new reason, a new copy is taken and the earlier ones are kept with it. These copies are kept for as long as the report (§14) and erased at the purge of the comment author's account (§15);
  • Feedback sent through the dedicated form: category, free text, app version, platform, device make and model, your account identifier and, when the feedback concerns a post, the identifiers of that post and of its author. The form does not ask for any means of contact (no e-mail address, no phone number); to get a reply, write to support@grindup.app;
  • Gyms you create: name, city, country, geographic location of the gym.

4.4 Device data and permissions

Depending on how you use it, the app may request access to: the camera and microphone (to film a lift), the photo library (to pick/save a video or photo), notifications (see §9) and the device location (while using the app only).

Location: when you grant location permission, your position is used to show nearby gyms and to centre the gym map. GrindUp does not record it as profile data and does not keep it in its databases; only the coordinates of the gym you select or create are stored. Map providers and your operating system (Google Maps on Android, Apple Maps on iOS) may process technical information related to displaying the map under their own rules.

5. Data created by using the app

5.1 Technical data derived from your profile

Each time you publish a performance video, the app freezes competitive attributes computed server-side from your profile at the time of the lift: age at the time of the lift, age category, sex/competitive category, bodyweight category, country, equipment. These "at the time of the lift" attributes are attached to the video. Your exact date of birth is never transmitted to other users — see §6.1 for the visibility of the derived attributes.

5.2 Community validation, Verified Leaderboards and trust score

  • Other users vote to validate or reject your performance. A performance is validated once it reaches a vote threshold and a weighted approval rate (by default: at least 10 votes and 70% approval).
  • A validated performance receives the "Verified" status and joins the Verified Leaderboards. These leaderboards are indicators internal to GrindUp, verified by the community: they are neither a federation ranking, nor a sporting certification or homologation, and have no official sporting value outside the app. The "Official" label is reserved for official competition performances submitted through the "PRO" lane (openpowerlifting.org result, approved by our team).
  • Each voting account has an internal trust score (0–100), recalculated automatically several times a day based on how well its past votes matched the final decisions. The trust score is not shown publicly and does not reveal individual votes. It is used to weight votes and may be accessible to the user concerned (through their own validation statistics) or to administrators where necessary for operation, security or support.
  • Individual votes are confidential: they are not shown publicly and are not disclosed to other users — neither a video's author nor other users see who voted what. If a performance is rejected, only the aggregated dominant reason is shown to you. Votes may nonetheless be processed by GrindUp to operate the validation system, for security, audit, fraud prevention or moderation (see §5.4).
  • If the community rejects a performance, the author may request a single revalidation.

5.3 Internal usage measurement (product analytics)

We record internal usage events, linked to your account identifier: video impressions and watch time in feeds, votes/skips, screens viewed, sign-up funnel steps, in-app purchase events if a purchase is made (result and technical error code only), usage sessions (iOS/Android platform, app version, start/end, duration, activity volume). (The last-activity timestamp, which is not a usage event, is described in §5.5.) These events follow a strict "safe metadata" contract: never an e-mail, date of birth, message content, token or purchase receipt. They are used solely to measure and improve the product and are not shared with third parties for advertising. No advertising SDK or third-party tracking tool (Google Analytics, etc.) is integrated.

5.4 Technical logs and anti-abuse

  • Per-account rate-limiting counters (uploads, votes, comments, messages, etc.) and a reinforced probation period during an account's first 24 hours;
  • Device-integrity attestation tokens (Firebase App Check: Play Integrity on Android, App Attest/DeviceCheck on iOS) to block unofficial clients;
  • Infrastructure logs (Google Cloud): as with any online service, the platform's technical logs may contain the IP address and request headers. We do not store your IP address in our application databases; it may be used transiently for rate-limiting and error diagnosis. Technical identifiers appearing in these logs are minimised or truncated where possible. Cloud Logging retention follows Google Cloud's default configuration (the _Default bucket: 30 days; the _Required bucket: 400 days, locked).
  • Validation audit log: validation votes and decisions are recorded in an internal log for the integrity of the ranking system.

5.5 Interface language, time zone, last activity and compatibility level

When you open the app (at most once every 10 minutes), it records in the private area of your account:

  • the interface language the app is using (for example English or French), so that push notifications are written in your language (English when it is missing);
  • your device's time zone (an identifier such as Europe/Paris), so that the vote reminder (§9) reaches you at 19:00 your local time (Paris time when it is missing);
  • a last-activity timestamp, also used to send the vote reminder only to accounts that have used the app recently (by default, within the last 14 days);
  • the compatibility level of your app, a number identifying its version, so that our support and moderation team knows whether a feature reaches you.

These values are not shown to other users. Each value recorded replaces the previous one (the app keeps no history; when the device does not report a time zone, the last one recorded stays), and they are kept for the life of the account and deleted with it (§15).

6. Public data and data visible to other users

GrindUp is a sports social network: visibility is at the heart of the product. There is currently no "private account" mode.

6.1 Visible to all signed-in users

  • Your public profile: username, approved avatar, biography, country, follower/following counts, personal records (PRs), "verified athlete" badge and profile banner;
  • Your published videos and their frozen competitive metadata (weight lifted, bodyweight category derived from the bodyweight declared at the time of the lift, age at the time of the lift and age category, sex/competitive category, equipment, gym, date of the lift), including videos pending validation;
  • Your comments;
  • Your presence in the leaderboards ("Open" and "Verified Leaderboards" surfaces — world, country, gym) and in gym records: username, avatar, country, performance, categories (sex/competitive category, age category, bodyweight category, equipment) and proof badges ("Verified" for a community validation, "Official" for an approved competition performance);
  • For a "PRO" performance (official competition): the openpowerlifting.org public link you provided;
  • The gyms you create (the creator's identifier is technically readable by signed-in users).

Your likes are not visible to all signed-in users: they see how many likes a video or comment has, not who gave them. Only the author of a video or comment can learn who liked it, through the like notifications (§9: the last person who liked and how many others) and, for a video, the list below.

The owner of a video can see the list of people who liked it (username and profile photo); blocked, disabled or deleted accounts do not appear in it.

What is not shown: your exact date of birth, your e-mail address and your settings are not fields of your public profile and are not transmitted to other users. Your exact bodyweight is not shown to other users (only the derived bodyweight category is — see below). Your trust score is not shown publicly (see §5.2).

What is visible, accessible or inferable through competitive categories: your declared sex or competitive category is not necessarily shown as a standalone profile field, but it is used for competitive categories, filters, leaderboards, performance and PR cards and ranking surfaces — so it may be visible, accessible or inferable through those surfaces. The same applies to your age category, your age at the time of the lift and your bodyweight category. The bodyweight declared at the time of the lift is used to determine the bodyweight category and to rank performances. Your exact bodyweight is not shown to other users: the Service's purpose is to display the derived bodyweight category, not the exact bodyweight, on surfaces visible to other users. Your exact bodyweight is not carried by surfaces readable by other users: it is removed from the public video document and kept in a private server area (inaccessible to clients under our security rules); API responses, client-readable documents and share surfaces expose the derived bodyweight category or minimised data.

Summary — competitive attributes and visibility:

DataUseVisibility
Exact date of birthMinimum-age verification, age-category calculationNot shown publicly; never transmitted to other users
Age at the time of the lift / age categoryLeaderboards, competitive categoriesVisible or inferable through ranking surfaces and performance cards
Declared sex or competitive categoryCompetitive categories, filters, leaderboards, performance cardsVisible, accessible or inferable through those surfaces
Declared bodyweight (at the time of the lift)Collected; used to derive the bodyweight category and rank the performanceNot shown to other users; kept in a private server area inaccessible to clients; only the derived bodyweight category is exposed
Bodyweight category (derived)Leaderboards, competitive categories, filters, performance cards, PR cardsVisible or inferable through those surfaces
CountryNational leaderboards, filtersVisible (profile and leaderboards)
Gym associated with a liftPerformance cards, gym records and leaderboardsVisible if provided
Trust scoreInternal weighting of validation votesNot public; does not reveal individual votes; accessible to the user concerned (their statistics) and to administrators where necessary

6.2 Technical accessibility of published media

The files for approved videos (playback, thumbnails) and for approved avatars are delivered through a public CDN: anyone with the file's URL can technically access it, even without an account. Do not publish a video you do not want to be public. Read access to media is provided exclusively through the CDN according to the visibility rules; there is no "guest" signed-URL playback route. Signed URLs are reserved for upload flows.

6.3 Private data between users

  • Private messages: visible only to the participants in the conversation; they are not end-to-end encrypted. They may be processed by GrindUp where strictly necessary for technical operation, security, moderation or compliance with a legal obligation. A message's content is never included in push notifications. Messages are immutable once sent.
  • Blocks: visible only to the two accounts concerned.
  • Reports: visible only to our moderation team.

6.4 Data accessible only to our team (admin/moderation)

Our administrators and moderators access, through a secured internal console, the data needed for their tasks: user record (including e-mail, date of birth, declared sex, validation statistics), reports, video and avatar moderation queues (analysis scores, OCR-detected text, duplicate hints), feedback, audit logs. Each administrative access and action is logged (administrator's e-mail, action, timestamp, administrator's IP address).

7. Purposes, legal bases and retention

PurposeMain dataLegal basisRetention
Create and manage your account, verify e-mail, authenticatee-mail, provider identifiers, password (via Firebase)Performance of the contract (Art. 6(1)(b))Life of the account (§15)
Provide the service: profile, video publishing, feeds, community validation, Verified Leaderboards, gymsprofile, content, frozen competitive attributes, votesPerformance of the contract (Art. 6(1)(b))Life of the account / content (§14–§15)
Verify the minimum age and compute competitive categories (including the bodyweight category)date of birth, declared sex/competitive category, bodyweight declared at the time of the liftPerformance of the contract (Art. 6(1)(b)); legitimate interest in protecting minors and Service security (Art. 6(1)(f)); legal obligation where applicable (Art. 6(1)(c))Life of the account / content
Private messaging, comments, follows; essential in-app notificationscontent, social graphPerformance of the contract (Art. 6(1)(b)); legitimate interest (Art. 6(1)(f)) for certain service notificationsMessages: duration of the conversation (§15); notifications: 90 days
Content moderation (automated technical analysis + human review), handling of reportsvideos, avatars, usernames, analysis scores, reportsLegitimate interest — service security, user protection (Art. 6(1)(f)); legal obligations applicable to hosting providers (Art. 6(1)(c))Artifacts: 7 to 30 days; reports and logs: §14
Security, anti-fraud, anti-abuse (rate limiting, App Check, trust score, logs)account identifiers, counters, attestation tokensLegitimate interest (Art. 6(1)(f))§14 (logs, counters)
In-app purchases, if any (purchase, access rights, restore)account-linked identifier, subscription state, billing-event metadataPerformance of the contract (Art. 6(1)(b)); legal obligations where applicable (Art. 6(1)(c))Life of the account; technical log: §14
Usage measurement and product improvement (internal analytics)account-linked usage events (§5.3)Legitimate interest (Art. 6(1)(f))~90 days (sessions: ~30 days)
App stability (crash and error reporting, Sentry)technical crash and error reports, usage sessions, installation identifier, technical identifiers that can be linked back to the account (§11)Legitimate interest (Art. 6(1)(f))Reports: 30 days (§11, §14)
Proof of consent to the legal documentsaccepted versions, timestamp, languageLegal obligation / legitimate interest (Art. 6(1)(c) / 6(1)(f))Life of the account (§14)
Notification language and timing; vote reminderinterface language, time zone, last-activity timestamp (§5.5)Legitimate interest (Art. 6(1)(f)); the vote reminder can be switched off at any timeLife of the account (each new value replaces the previous one; see §5.5)
Support and moderation: knowing whether a feature reaches your appapp compatibility level (§5.5)Legitimate interest (Art. 6(1)(f))Life of the account (each new value replaces the previous one; see §5.5)
Push notificationsdevice token, preferencesDevice permission / consent (Art. 6(1)(a)), withdrawable at any timeUntil withdrawal, invalidation or sign-out (§14)
Location (gym map)device position (used for display)Device permission / consent (Art. 6(1)(a))Not retained by GrindUp
Handling the feedback you send through the in-app form (bug, suggestion, abuse, other)category, free text, app and device information, account identifier, identifiers of the post and author concerned (§4.3)Legitimate interest — improving and securing the service (Art. 6(1)(f))Life of the account (deleted at purge, §15)

The competitive attributes involved in these purposes (declared sex/competitive category, age category, bodyweight category) may be visible, accessible or inferable through ranking surfaces — see §6.1. Your exact bodyweight is processed internally to determine the bodyweight category and to rank performances (performance of the contract) and, where relevant, to handle sporting-integrity reports — for example a suspicious declared bodyweight (legitimate interest, §8.3); it is not shown to other users (see §6.1).

Bodyweight and performances: this sporting data is processed as athletic-performance data, not as health data.

8. Moderation, security and abuse prevention

8.1 Video moderation

Every uploaded video passes through a private storage area and undergoes an automated technical content analysis by the Google Video Intelligence API, limited to explicit-content detection (the only analysis requested from this service):

  • no problematic signal → automatic publication;
  • explicit content detected with high confidence → automatic rejection, with a notification;
  • ambiguous signals → human review by our moderation team before any decision; in the event of a technical incident, the video is placed in review rather than published.

Rejected videos are never published; their files are kept briefly for audit purposes and then deleted automatically (see §14).

8.2 Avatar and username moderation

Each profile photo undergoes, before publication, a technical content analysis by the Google Cloud Vision API: detection of sensitive content (SafeSearch), text detection (OCR) compared against a list of forbidden terms, and computation of an image fingerprint (perceptual hash) used solely as a duplicate hint for moderators — a duplicate alone never triggers a decision. Depending on the result, the avatar is published automatically, rejected automatically (inappropriate content or offensive text), or sent to human review.

Each username is checked automatically, at sign-up and at every change, against a list of hate terms: a refused name is not saved, and you can choose another one. Our moderation team may also require a change of a username that breaks our rules: the app then asks you to choose a new one, and your account's other actions stay on hold until you do. A required change is not subject to the 30-day limit (§16) and can be contested (§8.6). Meanwhile, you can still request the deletion of your account by writing to support@grindup.app (§16).

These analysis tools (video and image) are not used to identify a person, recognise their identity, or create a biometric template.

8.3 Reports and performance integrity

Reports (abusive content, suspicious performance, wrong gym, etc.) are reviewed by our team. An internal "anti-cheat" evaluation module aggregates report statistics (number of distinct reporters, reasons) in observation mode: it makes no automatic decision and does not change the visibility of your content.

8.4 Automated processing and safeguards

Some publication or moderation decisions may be assisted or triggered by automated technical rules (automatic publication or rejection described in §8.1 and §8.2; automatic weighting of votes by the trust score, §5.2). These decisions concern the availability of content within GrindUp and are not intended to produce a legal effect on you. Ambiguous cases, technical incidents and appeals are subject to human review.

Safeguards: you are notified of decisions concerning your content (see also §8.6); you can request a human review, express your point of view and contest a decision by contacting us (support@grindup.app); a community rejection gives the right to a single revalidation in the app.

8.5 Anti-abuse measures

Per-account rate limiting, a 24-hour probation period for new accounts, device-integrity attestation (App Check), strict database security rules (sensitive writes reserved to the server), administrative disabling of infringing accounts (with logging), and hiding of the content of an account being deleted.

8.6 Information about moderation measures

In the event of removal, visibility restriction, suspension or another moderation measure, GrindUp may provide information about the measure taken and its reason, unless the law, Service security, the protection of a third party or abuse prevention prevents it. You can contest the decision at support@grindup.app.

9. Notifications

  • In-app notifications: validation/rejection of your performances, moderation result, removal of content, new followers, messages, comments, changes in your gym leaderboards (a gym record taken or lost, being overtaken, moving up) and likes on your videos and comments: the username and profile photo of the last person who liked, how many others did and, for a comment, the video it is posted on. They expire automatically after 90 days.
  • Vote reminder: at most once a day, at 19:00 your local time (§5.5), a reminder that performances are waiting for your vote, sent only when at least one performance you can still vote on exists. You can turn it off with the "Vote reminders" switch in the notification settings; when it is off, or when notifications are turned off entirely, no reminder is created, neither in the app nor as a push notification.
  • Push notifications (Firebase Cloud Messaging): sent only if you grant the system permission. For this we store a device token (FCM token), the platform (iOS/Android) and the app version, limited to 10 devices per account. The token is deleted on sign-out, when it becomes invalid, and on account deletion.
  • You control push notifications by notification type and via a global switch in the settings, as well as in your phone's system settings. Anti-spam caps (quiet windows, a daily maximum for non-critical notifications) are applied; when several comments or messages arrive within a quiet window, a single summary push may be sent at its end, counting the people involved.
  • The content of your private messages never appears in a push notification (only the sender is mentioned).

10. In-app purchases and payments

  • GrindUp currently sells no paid offer or subscription: every feature of the app is free. If a purchase is made in the app, it is made exclusively through the App Store (Apple) or Google Play. Payment, including your card details, is handled by Apple or Google: GrindUp never has access to your payment data and does not store it.
  • We use RevenueCat to manage the access rights linked to in-app purchases. RevenueCat receives an account-linked identifier — personal data within the meaning of the GDPR — in order to associate any purchases with your access rights; we do not send it your e-mail or your name.
  • If a purchase is made, we keep its state: active/trial/grace period/expired/cancelled, access end date, purchased product identifier, purchase store and technical billing-event metadata (event identifiers and timestamps). No transaction amount or receipt is stored by GrindUp.
  • If a purchase is made, whether you hold active paid access is recorded on your profile and can be read by other signed-in users.
  • A subscription bought through a store is managed and cancelled in that store's settings.

11. Analytics, logs and crash reporting

  • Internal analytics: see §5.3. Events linked to your account identifier, hosted in our own database, on the basis of our legitimate interest (§7), with an expiry marker of about 90 days (sessions: 30 days).
  • Crash and error reporting (Sentry): when the app crashes or hits an error, a report is sent to Sentry (Functional Software, Inc.); each time the app is used, the Sentry software also sends a short usage-session signal (installation identifier, app and system versions, whether the session ended normally or in a crash). Sentry hosts this data in its EU region (Germany) and keeps reports for 30 days; usage sessions are aggregated into statistics that Sentry keeps under its own retention. We attach neither your profile, your name nor your e-mail address to it, and the app does not turn on the personal data the Sentry software would otherwise attach by default (sendDefaultPii: false). A report nonetheless contains technical information needed for diagnosis, which can be linked back to you, for example: device model and state (language, memory, screen, whether it is jailbroken or rooted), system and app versions, execution traces, a random installation identifier generated by the Sentry software on your device, and the events preceding the problem — network requests, whose addresses may contain account or media identifiers, screen changes, taps and application log messages. Sentry may derive an approximate location (country, region, city) from the connection's IP address; the IP address itself is not stored. A fraction of performance traces (10%) may also be collected. These reports are therefore not anonymous.
  • Server logs: backend services log technical events (Cloud Logging) with identifiers truncated where possible; the Google Cloud platform logs may contain IP addresses (see §5.4).
  • No cookies are used in the mobile application. This public legal website is static and sets no tracking or advertising cookies. (Our internal administration console uses technical cookies tied to our team's Google IAP authentication.)

12. Recipients and processors

Your data is processed by our authorised teams (support, moderation, administration — logged access, restricted to the company domain) and by the following processors:

ProcessorServicePurposeData concerned
Google Cloud / Firebase (Google Ireland Ltd / Google LLC)Firestore, Cloud Storage + CDN, Cloud Functions/Run, Firebase Auth, App Check, Cloud LoggingHosting, authentication, media delivery, securityAll service data
Google CloudVideo Intelligence APITechnical content analysis of videos (explicit-content detection)Submitted video files
Google CloudVision APITechnical content analysis of avatars (SafeSearch, OCR)Submitted profile photos
Google (Firebase Cloud Messaging) / Apple (APNs)Push notificationsDeliver notificationsDevice token, notification content
RevenueCat, Inc.In-app purchase managementAccess rights linked to in-app purchasesAccount-linked identifier, store purchase events
Apple (App Store) / Google (Play)In-app purchasePayment for in-app purchases, if anyPayment data (processed by the stores as separate controllers)
Functional Software, Inc. (Sentry)Crash and error reportingApp stabilityTechnical crash and error reports, usage sessions, installation identifier, technical identifiers (§11); hosted in the EU (Germany)
Google (Sign-In) / Apple (Sign in with Apple)Federated sign-inAuthenticationIdentity tokens (e-mail, name)
Google Maps (Android only)Gym map basemapMap displayTile requests issued by the device (iOS uses Apple Maps)

No data is sold or shared for advertising purposes. Your data may also be disclosed to the competent authorities where required by law (for example judicial requests, obligations applicable to content-hosting providers).

13. Transfers outside the EU / EEA

For the components whose configuration we control (server functions, processing services, media file storage), the infrastructure is deployed in the Google Cloud europe-west1 (Belgium) region. We cannot, however, state at this stage that all processing takes place within the EU/EEA: the exact region of the Firestore database is not attested by the code; calls to the Video Intelligence and Vision APIs are not pinned to an EU region and may be processed by Google on infrastructure outside the EU (typically the US); Sentry and RevenueCat are US companies (our Sentry reports are hosted in its EU region, Germany); notifications transit through Google's (FCM) and Apple's (APNs) global infrastructures.

Where such transfers occur, they are governed by the mechanisms provided for by the GDPR: an adequacy decision (in particular the EU–US "Data Privacy Framework" for certified providers) and/or the European Commission's Standard Contractual Clauses, together with supplementary measures where appropriate.

14. Retention periods

The periods below correspond to the mechanisms actually implemented. Where no automatic period exists, data is kept for as long as the account or the content exists, or for as long as necessary for the operation of the service, its security, fraud prevention, audit, compliance with our legal obligations and the defence of our rights.

DataPeriod
Account, profile, published contentFor as long as the account exists, then deletion per §15
Account-deletion request7-day grace period (account suspended, content hidden), then permanent purge
Video you deleteHidden immediately; files and data purged after 7 days
Incomplete upload files / moderation artifacts / rejected files (private internal storage)Pending upload: 7 days; moderation artifacts: 30 days; rejected videos: 7 days; abandoned uploads marked expired after 48 h
Copies of rejected avatars (private audit storage)Kept for as long as necessary for moderation audit; deleted on account deletion
Avatar image fingerprints (duplicate detection)90 days (and immediate deletion on account deletion)
In-app notifications90 days
Internal usage events (analytics)Expiry marker ~90 days; sessions ~30 days
Push tokensUntil sign-out, invalidation or account deletion (max. 10 devices)
Interface language, time zone, last-activity timestamp and app compatibility level (§5.5)Life of the account, each value replacing the previous one; deleted at account purge
In-app purchase state, if anyLife of the account; deleted at account purge
Technical log of subscription events (RevenueCat webhook)Kept after account deletion, for as long as necessary for anti-replay and audit (pseudonymized)
ReportsKept for as long as necessary for moderation integrity, security, fraud prevention and the defence of our rights, including after the reporter's account is deleted; after the reporter's account is deleted, their identity is pseudonymized (the raw account ID is no longer retained)
Validation votes castKept (pseudonymized, necessary for the integrity of decisions already made)
Validation audit logKept for as long as necessary for the integrity of the validation system
Administrator audit logsKept for as long as necessary for the security and traceability of administrative actions
Proof of legal consentLife of the account (deleted with the account)
Crash and error reports, usage sessions (Sentry)Reports: 30 days; usage sessions: aggregated statistics kept under Sentry's own retention
Anti-abuse counters (rate limiting)Kept for as long as necessary for the security of the service

15. Account deletion

You can delete your account directly in the app (Settings → Delete account), after a recent re-authentication:

  1. 7-day grace period: your account moves to a "deletion pending" state; your content is hidden immediately (feeds, leaderboards, records, validation queue); you can no longer interact. You can cancel the deletion at any time during those 7 days by signing in again and confirming the cancellation (cancelling leaves no trace visible to other users).
  2. Permanent, irreversible purge (run daily after the deadline): deletion of your authentication account, your profile (including date of birth, declared sex, consents, trust score, interface language and time zone), your videos and media files (public and private), avatars and associated fingerprints, comments (yours, everywhere), follows/followers, blocks, notifications, push tokens, sessions and usage events, gym records, validation statistics, ranking snapshots, subscription entitlements, feedback you sent, and moderation queues concerning you.
  3. Data retained, pseudonymized or anonymized after the purge (see also §14): your conversations are kept for the other participant with your identity removed (username and avatar erased; the content of messages already sent remains visible to the recipient); your votes on other people's videos, your reports (where your reporter identity is pseudonymized) and the technical subscription log are kept to preserve the integrity of the service. Crash and error reports already sent to Sentry are not deleted by the purge: they expire at the end of the Sentry retention period set out in §14.

Deletion is therefore neither instantaneous nor total across all systems: depending on the case, data is deleted, anonymized, pseudonymized or retained for reasons of security, service integrity, fraud prevention, compliance or the defence of our rights (detail in §14). Where data is pseudonymized, it is no longer linked to your account, but pseudonymization is not the same as irreversible anonymization.

Deleting the account does not automatically cancel a subscription bought through the App Store or Google Play: if you hold one, cancel it in your store settings.

For Apple accounts, the "Sign in with Apple" link is revoked on a best-effort basis when the deletion is requested.

16. Your rights

Under Articles 15 to 22 of the GDPR, you have the following rights:

  • Access: obtain a copy of the data we hold about you;
  • Rectification: in the app, you can change your username (at most once every 30 days, except for a change our moderation team requires, §8.2), correct your date of birth (at most once every 30 days), change your avatar, biography and weight unit. For the other fields (in particular the declared sex/competitive category and country, not self-editable because they condition the ranking categories where they are visible or inferable — see §6.1), contact us;
  • Erasure: account deletion in the app (§15) or on request; individual deletion of your videos and comments in the app;
  • Objection and restriction of processing, under the conditions set out in the GDPR (in particular for processing based on our legitimate interest);
  • Portability: receive the data you provided to us in a structured format (requests are handled manually);
  • Withdrawal of consent at any time (push notifications, location), without affecting the lawfulness of prior processing;
  • Post-mortem instructions: set instructions on the fate of your data after your death (French law).

To exercise your rights: support@grindup.app. We may ask you to prove your identity (for example by writing from the account's e-mail address). We respond within one month, extendable by two months for complex requests.

You can lodge a complaint with the CNIL (Commission Nationale de l'Informatique et des Libertés): www.cnil.fr — 3 place de Fontenoy, TSA 80715, 75334 Paris Cedex 07.

17. Minors

  • GrindUp is reserved for people aged at least 16. People under 16 cannot create an account. The date of birth is checked at sign-up (server-side verification) and age checks also apply to published performances. No sign-up below the minimum age is accepted.
  • Some competitive categories may cover theoretical age ranges broader than the minimum age of access to the Service; GrindUp remains reserved for users aged 16 and over.
  • If you believe a user does not meet the minimum age, contact us at support@grindup.app: the account concerned will be deleted.

18. Security

Main measures implemented:

  • Encryption of data in transit (TLS) and at rest (Google Cloud default encryption);
  • Authentication delegated to Firebase Auth; no password stored by GrindUp; session revocation on sensitive operations;
  • Strict database security rules: sensitive data (votes, push tokens, moderation queues, private profile data) is inaccessible to clients; critical writes go exclusively through our servers;
  • Storage separation: published media on a dedicated public bucket; pending uploads, moderation artifacts and images under review on private buckets;
  • Device-integrity attestation (App Check), rate limiting, new-account probation;
  • Administration console accessible only to our team via Google Identity-Aware Proxy (dual network + application verification, restricted domain), with logging of every action and reinforced confirmation for destructive actions in production;
  • Secrets managed through a secret manager; strict separation of the development, pre-production and production environments.

No system is infallible: in the event of a data breach likely to create a high risk to your rights, we will inform you in accordance with Articles 33 and 34 of the GDPR.

19. Changes to this policy

We may amend this policy to reflect changes in the service or the law. In the event of a material change, the new version will be presented to you in the app for acceptance before you continue (the versioned re-consent mechanism is built into the app). The date and version in force appear at the top of this document.

20. Contact

  • Questions about this policy or exercising your rights: support@grindup.app
  • Postal address: 21 rue du Tibet, 62300 Lens, France
  • Supervisory authority: CNIL (www.cnil.fr)