Blog › Construire avec l'IA

Construire avec l'IA

Application coach sportif : la construire sur mesure

Sur le marché, une application coach sportif fournit au coach des programmes, une messagerie et un suivi de ses élèves sur mobile : cela suffit à la majorité des coachs. Quand un coach a sa propre méthode de calcul et passe une journée par semaine dans ses Google Sheets, un freelance peut lui livrer autre chose : un système sur mesure qui calcule les besoins caloriques, établit le plan alimentaire et recopie automatiquement les séances d’entraînement. Dans cette vidéo de 2 h 22, je bâtis ce système pour un coach avec Airtable, n8n, YouForm et Lovable.

Ce que fait une application de coach sportif du marché

Derrière « application coach sportif », on trouve deux familles d’outils.

Les premières servent à s’entraîner seul (Freeletics, Nike Training Club, FizzUp), avec des programmes tout faits pour le pratiquant. Elles occupent la moitié du top 10 de Google, mais elles ne servent pas à un coach qui suit des élèves.

Les secondes sont des logiciels pour coachs. Presque tous couvrent la même base :

  • les programmes d’entraînement, souvent avec des vidéos d’exercices ;
  • le suivi de l’élève : pesées, photos, mensurations, séances faites ;
  • la messagerie entre le coach et ses élèves ;
  • selon l’éditeur, la réservation de séances, le paiement, la nutrition, et parfois une appli au nom du coach dans les stores (Trainerize, par exemple, le propose).

Leur prix dépend en général du nombre d’élèves suivis. Les grilles changent souvent : comparez sur les sites des éditeurs.

Quand une appli suffit, et quand le sur mesure se justifie

Une appli du marché suffit quand le coach démarre, suit quelques élèves et accepte de travailler à la façon de l’outil. Construire un système n’a pas de sens tant que sa méthode change chaque mois.

Le sur mesure se justifie dans trois cas :

  1. Le coach a ses propres formules. Dans la vidéo, il calcule le métabolisme de base, le besoin calorique journalier, puis le besoin selon l’objectif. Il réduit les calories d’un pourcentage quand l’élève ne s’est pas pesé, et ajuste la valeur calorique d’un gramme de glucides pour certains élèves. Peu d’outils du marché laissent faire ça.
  2. Le plan alimentaire est individuel. Le nombre de repas, le régime (végétarien, pescétarien, omnivore), les aliments que l’élève refuse : le coach le recalcule chaque semaine, élève par élève.
  3. Tout tient dans des Google Sheets. Le coach de la vidéo envoyait une feuille partagée à chaque élève et la dupliquait chaque semaine. Les informations se perdaient entre deux copies, et l’élève voyait toutes les formules du coach : pas très professionnel.

C’est la même logique que pour le logiciel de conciergerie : l’outil du marché pour démarrer, le système sur mesure quand la méthode du client ne rentre plus dedans.

L’objectif du système : un jour de travail ramené à une heure

Le coach s’était fixé trois objectifs :

  • faire passer la création des plans personnalisés de tous ses élèves d’1 jour à 1 heure par semaine ;
  • augmenter la satisfaction de ses élèves ;
  • doubler le nombre d’élèves qu’il peut suivre, sans embaucher.

Côté élève, la feuille partagée laisse la place à un espace personnel, sur téléphone, en six pages : profil et objectif, mesures avec les graphiques de poids et de composition corporelle, besoins nutritionnels de la semaine, entraînements (le bloc en cours et tout l’historique), plan alimentaire jour par jour, et les ebooks du coach, offerts aux élèves suivis.

L’architecture : quatre outils, quatre rôles

Je montre ce schéma au client avant d’ouvrir le moindre outil. Un système comme celui-ci a quatre parties :

PartieRôleOutil
Front officel’espace que voit l’élèveLovable
Back officel’écran de travail du coachl’interface d’Airtable
Stockagetoutes les donnéesAirtable
Automatisationles calculs et la générationn8n

Un formulaire YouForm complète le tout : c’est par lui que l’élève envoie ses mesures.

L’ordre de construction compte. D’abord la base. Ensuite les automatisations, parce qu’elles obligent souvent à ajouter des champs. L’interface élève en dernier, quand la base ne bouge plus. Et ça se fait par étapes : une première version avec quelques tables, puis on ajoute au fil des tests.

La base Airtable : 7 tables et un identifiant qui relie tout

J’ai repris les onglets des Google Sheets du coach :

  • Élèves : identité, statut, âge (calculé depuis la date de naissance), sexe, poids initial, poids cible, taille, antécédents médicaux et sportifs, niveau d’activité (5 choix, de sédentaire à extrêmement actif), motivation, régime, habitudes alimentaires, nombre de repas, objectif ;
  • Mesures : une ligne par pesée (le poids est obligatoire ; masse grasse, masse musculaire, eau, graisse viscérale et tours de taille, de hanches, de cuisses sont facultatifs) ;
  • Besoins caloriques : métabolisme de base, besoin journalier, besoin selon l’objectif, protéines, glucides et lipides en grammes, en kilocalories et en pourcentage ;
  • Entraînements : une ligne par exercice, avec le bloc, la semaine, le jour, la partie (échauffement puis deux ou trois parties), le format, le repos, la charge et des notes ;
  • Plan alimentaire : une ligne par aliment, avec le jour, le repas, la quantité et les macronutriments ;
  • Ebooks : titre, statut (en préparation, publié, archivé) et lien de partage Google Drive ; seuls les publiés s’affichent ;
  • Lancement : une table d’une ligne, avec une date et un bouton, pour que le coach relance le calcul d’une semaine à la main.

Le statut de l’élève pilote tout : « en attente » pour un nouvel élève, « actif », « en pause » (l’élève garde son accès, mais le système ne calcule plus rien pour lui), « perdu » (plus d’accès).

Reste l’identifiant qui relie tout. Chaque élève a un code court : la première lettre du prénom, les deux premières du nom, et un numéro automatique. Chaque ligne des autres tables reprend ce code, une lettre pour la table, et la date de la semaine au format année-mois-jour : par exemple FFA7.M.2025-03-27 pour une mesure. Avec ce code, n8n retrouve en une recherche toutes les lignes d’un élève pour une semaine, pour les mettre à jour ou les supprimer.

Les formules de ce code et de l’âge, je ne les ai pas écrites : j’ai décrit à Claude ce que je voulais, et il m’a donné des formules Airtable qui marchaient du premier coup.

Les entraînements avancent par blocs de 4 semaines, qui commencent le lundi. Le bloc sert à l’élève pour se situer, et au coach pour facturer : chaque nouveau bloc déclenche une facture.

Le formulaire de mesures : YouForm et un webhook n8n

L’élève clique sur « Prendre mes mesures » dans son espace et tombe sur un formulaire YouForm qui l’accueille par son prénom. Il saisit la date et son poids (obligatoire, entre 50 et 150 kg pour éviter les fautes de frappe), et le reste s’il le veut.

Le prénom et l’identifiant de l’élève passent dans l’adresse du formulaire, en variables cachées. C’est ce qui permet de rattacher la réponse au bon élève.

Côté n8n, le premier workflow tient en trois nœuds :

  1. un webhook en POST, collé dans l’intégration webhook de YouForm ;
  2. une recherche de l’élève dans Airtable, par son identifiant ;
  3. un create or update dans la table Mesures, avec le code de la mesure comme clé : si l’élève renvoie une mesure pour la même date, elle est mise à jour au lieu d’être ajoutée en double.

Quatre détails m’ont fait perdre du temps dans la démo :

  • un champ lié à une autre table s’envoie comme une liste, entre crochets et guillemets : ["recXXXX"] ;
  • une date s’envoie avec une heure. J’ajoute T12:00:00.000Z : à midi, un décalage de fuseau d’une heure ne change pas le jour ;
  • l’option typecast cochée laisse Airtable retrouver les listes de choix et les liens à partir du texte ;
  • un champ qui contient une formule doit être en mode Expression, pas Fixed. Sinon n8n envoie le texte de la formule tel quel.

Pour tester sans remplir le formulaire dix fois, épinglez les données reçues par le webhook (« pin ») : les nœuds suivants se relancent sur la même réponse.

Le calcul du samedi : un workflow n8n pour tous les élèves

Le second workflow fait le travail que le coach faisait à la main. Il a deux déclencheurs :

  • un déclencheur programmé, chaque samedi à 1 h du matin ;
  • un webhook en GET, appelé par le bouton de la table Lancement, avec la semaine en paramètre (?semaine_suivante=2025-03-31), pour recalculer une semaine à la demande.

Ensuite, dans l’ordre :

  1. il récupère les élèves au statut actif (formule {Statut}='Actif', avec « Return All ») ;
  2. une boucle Loop Over Items traite les élèves un par un ;
  3. pour chaque élève, il récupère la dernière mesure (tri par date décroissante, une seule ligne), puis tous ses blocs et semaines, regroupés en un seul élément avec un nœud Aggregate (120 lignes deviennent une) ;
  4. un nœud Code en JavaScript calcule le bloc et la semaine en cours, puis ceux de la semaine suivante ;
  5. il supprime ce qui existe déjà pour cette semaine dans les trois tables : un calcul relancé ne crée pas de doublons ;
  6. il recopie les entraînements de la dernière semaine sur la nouvelle (19 lignes pour l’élève de la démo) ;
  7. un second nœud Code calcule les besoins caloriques et les macronutriments, puis les enregistre ;
  8. un modèle d’IA génère le plan alimentaire de la semaine, découpé ensuite ligne par ligne et enregistré dans Airtable.

Un élève actif sans aucune mesure est sauté : sans poids, rien à calculer. Un élève sans entraînement n’a rien à recopier.

Le coach garde la main. Le système recopie les entraînements d’une semaine sur l’autre ; c’est le coach qui augmente les charges ou change les exercices selon les progrès de l’élève. C’est là qu’il apporte sa valeur, et c’est le temps qu’il récupère qui lui permet de le faire.

Les nœuds Merge, Loop, Aggregate et Split Out reviennent dans presque tous les projets : le guide des workflows n8n les reprend un par un.

Les formules du coach, traduites en code par Claude

Je ne suis pas développeur. Pour les deux nœuds Code, j’ai donné à Claude :

  • le JSON qui arrive en entrée du nœud ;
  • les règles, écrites en français : un bloc fait 4 semaines, il commence le lundi, si la semaine est fournie par le bouton on la prend, sinon on cherche le lundi suivant ;
  • pour les besoins caloriques, toutes les formules copiées depuis le Google Sheet du coach ;
  • la structure de la table où le résultat sera rangé, obtenue avec le nœud Airtable Get Base Schema.

Le premier code passait presque du premier coup. Quand une valeur est fausse, recollez l’erreur ou précisez la règle mal comprise : Claude corrige. J’ai ajouté ensuite la réduction des calories sans pesée et les ratios en grammes par kilocalorie, et il a adapté les formules seul.

Le plan alimentaire généré par l’IA

Le plan passe par un nœud Basic LLM Chain, sans outil. Le prompt système donne un rôle (« expert en rééquilibrage alimentaire »), la tâche (le plan de la semaine pour un élève du coach), et des contraintes :

  • respecter le besoin calorique, puis dans l’ordre les protéines, les glucides et les lipides ;
  • sept jours, de 1 à 7 ;
  • des repas pris dans une liste fixe : petit-déjeuner, déjeuner, collation, dîner, hydratation ;
  • rendre uniquement du JSON, sur le modèle d’un exemple qui reprend les colonnes de la table.

J’ajoute une phrase qui marche bien : « c’est capital pour mon job ». Le modèle respecte mieux la consigne qui la précède.

Le message envoie au modèle le nombre de repas, le régime, les habitudes alimentaires et les besoins calculés juste avant. Un Structured Output Parser vérifie que la réponse suit le JSON attendu, puis un Split Out la découpe (21 lignes dans la démo) pour l’enregistrer dans Airtable.

Le modèle de la vidéo était GPT-4o, avec une clé d’API OpenAI payée à l’usage : 50 $ chargés une fois, et le coach n’a pas d’abonnement à prendre. OpenAI a depuis retiré GPT-4o de ChatGPT, en février 2026. Dans l’API, prenez un modèle récent, et vérifiez sa date de fin sur la page des dépréciations d’OpenAI avant de livrer.

L’espace élève : une application faite avec Lovable

Le coach voulait au départ que le système génère des Google Sheets à envoyer. J’ai préféré une application : l’élève garde son historique et n’a qu’une adresse à retenir.

Lovable construit une application web à partir de prompts en français. Le premier disait simplement : une application pour un coach sportif qui donne à chaque élève, par un lien, sa fiche d’objectifs, ses dernières mesures, ses besoins de la semaine, ses entraînements et son plan alimentaire, le tout stocké dans Airtable. Le résultat ressemblait déjà beaucoup à la version finale.

La connexion à Airtable m’a pris quatre ou cinq allers-retours. La leçon : donnez à Lovable dès le départ l’identifiant de la base (le app… de l’adresse Airtable) et la structure des tables en JSON. Ensuite, réglez les écrans un par un : telle page lit telle table, filtrée sur le code de l’élève. Le bouton des mesures ouvre YouForm avec le prénom et l’identifiant de l’élève dans l’adresse. Pour finir, une couleur par page.

L’élève entre avec un code d’accès personnel : l’identifiant interne de sa ligne dans Airtable. L’application se publie sur le domaine du coach, à sa marque. Dans la vidéo, je pousse le code sur GitHub et je le déploie sur Netlify. Cette façon de construire par prompts, avec ses pièges, est détaillée dans le guide du vibe coding.

Ce qui a changé depuis la vidéo

La vidéo date d’avril 2025. Voici l’état des outils vérifié le 27 octobre 2026 :

  • Airtable : le plan gratuit plafonne à 1 000 enregistrements par base et 1 000 appels d’API par mois et par espace de travail. Ce système écrit environ 40 lignes par élève et par semaine (21 aliments, 19 exercices, une ligne de besoins, une pesée). Avec 10 élèves, la base gratuite est pleine en moins de trois semaines. Pour un vrai coach, l’offre payante est à prévoir dès le devis.
  • n8n : le cloud n’a plus de plan gratuit, seulement un essai de 1 000 exécutions. La première offre payante compte 2 500 exécutions par mois. Ce système en consomme très peu : un calcul par semaine, plus une exécution par pesée. La version auto-hébergée reste gratuite (n8n gratuit explique comment).
  • YouForm : formulaires et réponses illimités en gratuit, webhooks compris. L’offre payante retire la marque YouForm.
  • Lovable : chaque projet a désormais une base de données intégrée (Lovable Cloud), activée par défaut. L’espace élève peut y stocker ses données et y gérer de vraies connexions, au lieu d’appeler Airtable avec un jeton.
  • OpenAI : GPT-4o n’est plus dans ChatGPT ; choisissez un modèle à jour pour l’API (voir plus haut).

Les limites à dire au coach avant de signer

  • Les données des élèves sont des données de santé. Antécédents médicaux, poids, masse grasse, régime : la CNIL range dans les données de santé les données médicales, mais aussi les mesures qui, croisées entre elles, renseignent sur l’état de santé. Ce sont des données sensibles au sens du RGPD, avec des règles plus strictes. Dites-le au coach, recueillez le consentement des élèves, et vérifiez où sont hébergés Airtable, n8n et le modèle d’IA.
  • Le code d’accès n’est pas un mot de passe. Un identifiant dans un lien suffit pour une démo. Pour de vrais élèves, prévoyez une connexion par email, et ne laissez jamais le jeton Airtable dans le code qui s’exécute dans le navigateur : quiconque le lit accède à toute la base.
  • Le plan alimentaire reste une proposition. Le modèle approche les macronutriments sans les garantir. Le coach relit avant que l’élève ne voie le plan, surtout pour un élève avec des antécédents.
Livrer

Ce que vous pouvez vendre avec ça

À qui : un coach sportif indépendant ou un petit studio qui accompagne 15 à 40 élèves à distance, avec un Google Sheet par élève, et qui consacre une journée chaque semaine à recalculer les besoins caloriques, les plans alimentaires et les entraînements. Le métier est le même partout, ce qui en fait une niche prometteuse à explorer (trouver une niche explique comment la valider).

Ce que vous livrez : la base Airtable construite à partir de ses onglets, le formulaire de mesures et son workflow, le calcul automatique du samedi avec le plan alimentaire, puis l’espace élève hébergé sur son propre domaine. Le coach conserve son interface Airtable pour modifier les entraînements, et ses élèves consultent leur progression sur leur téléphone. Livrez dans cet ordre, en faisant valider chaque étape par deux ou trois élèves réels.

Comment le présenter : « Vous consacrez une journée entière chaque semaine à vos tableurs. Je mets vos formules dans un système qui prépare tout le samedi matin, et vous ne faites plus que la partie que vos élèves paient : ajuster leurs séances. » Arrivez avec la démo d’un élève fictif qui saisit son poids et reçoit son plan de la semaine. Une fois construit, le système se revend à d’autres coachs moyennant quelques ajustements : c’est l’un des services qu’un freelance IA peut proposer en série.

L'Accélérateur IA

Signez vos 3 premiers clients IA en 180 jours

Les inscriptions sont fermées. Rejoignez la liste d'attente : vous serez prévenu dès la prochaine ouverture.

Rejoindre la liste d'attente