La version MERN.
Trois ans après le prototype de 2019, j'ai reconstruit le somatotype comme une vraie application web — React et TypeScript côté client, Express et MongoDB côté serveur, avec comptes utilisateurs, tableau de bord, blog, et cinq stagiaires BeCode que j'ai dirigés sur ce qui était, pour la première fois, mon propre projet. La première fois que l'idée d'AfitPilot ressemblait à un produit.
D'une page statique à une vraie application.
Le calculateur de 2019 tenait sur une seule page HTML. Vous tapiez neuf chiffres, JavaScript faisait tourner les équations Heath-Carter, un canvas dessinait le triangle. Utile, mais il vous oubliait dès que vous fermiez l'onglet.
Fin 2022, je voulais quelque chose qui se souvienne. Quelque chose qui stocke un profil. Quelque chose dans lequel on puisse se connecter, sauvegarder ses résultats, revenir un mois plus tard et voir comment ses chiffres avaient bougé. J'ai donc tout reconstruit de zéro en stack MERN — MongoDB, Express, React avec TypeScript, Node — et j'ai embarqué une petite équipe de stagiaires du bootcamp BeCode pour le livrer avec moi.
Le travail a démarré fin 2022 et la livraison s'est vraiment faite entre janvier et mars 2023 — disons environ deux mois de vraie production. Cinq personnes ont contribué sur la durée du projet. Le dépôt compte plus de 430 pull requests. On a ajouté l'authentification, la réinitialisation de mot de passe par email, un tableau de bord de profil, un blog avec commentaires, un calculateur de force athlétique à côté du somatotype, le partage social, un formulaire de contact, et du contenu bilingue. Rien de tout ça n'était impeccable selon les standards de 2026. Mais tout ça était du vrai travail de production — la première fois que j'ai construit quelque chose qui avait besoin d'une base de données pour exister.
C'est aussi le projet où j'ai appris ce que ça fait de diriger une petite équipe sur un projet qui était le mien. J'avais déjà livré du code avec d'autres, sur les projets des autres. C'était la première fois que c'était moi qui donnais la direction, qui écrivais les tickets, qui mergeais les PR. Des tickets sur un Google Sheet. Une branche `dev` et des PR depuis des forks. Des commentaires de review. Des conflits de merge. Tout ce qui a suivi dans AfitPilot — les workflows, la discipline de review, la façon dont on livre — a commencé ici.
La version 2022 en mouvement.
Courts extraits de l'application en fonctionnement — passer le test, explorer les catégories de somatotypes, et comparer son résultat à une bibliothèque d'athlètes.
Sur quoi l'application était construite.
Une stack MERN classique pour l'époque, avec TypeScript des deux côtés du fil.
- Frontend
- React 18 + TypeScript, Material UI, react-swipeable-views
- Backend
- Node + Express, TypeScript, bcrypt + JSON Web Tokens pour l'authentification
- Base de données
- MongoDB Atlas, schémas Mongoose, six collections (users, profiles, blogs, comments, shares, contact)
- Nodemailer avec gabarits HTML pour la réinitialisation de mot de passe et le contact
- Analytics
- react-ga4 (Google Analytics 4)
- Partage
- react-share — Twitter, Facebook, LinkedIn, WhatsApp
- Hébergement
- Render — un seul service web faisant tourner l'API et le client React buildé
- Process
- Flux de PR depuis des forks, tickets sur Google Sheets, review et merge à la main
La première équipe que j'ai dirigée sur mon propre projet.
Le calculateur de 2019 était un projet solo. La version 2022 a été la première fois où j'ai dirigé une petite équipe sur quelque chose qui m'appartenait — cinq stagiaires du bootcamp BeCode, qui ont contribué à mes côtés sur la durée du dépôt. Leurs pull requests sont toujours dans l'historique.


- Walter ClaytonAuteur, ingénieur principal
- Bhama GuruswamiContributrice
- Younes El MiriContributeur
- Arnaud DalcqContributeur
- Prince KyeiContributeur
- JojoContributeur
Code source, références, et le manuel original de Heath-Carter.
Ce que cette version m'a appris, et ce qu'AfitPilot en a gardé.
La page de 2019 a prouvé que l'idée pouvait exister. La version 2022 a prouvé qu'elle pouvait devenir un produit — qu'on pouvait mettre une base de données derrière, un compte devant, une équipe autour, et livrer le résultat. Tout ce qu'AfitPilot fait aujourd'hui repose sur des leçons tirées de ce codebase : comment modéliser un profil, comment gérer l'authentification sans devenir un incident de sécurité, comment reviewer et merger le code de quelqu'un d'autre sans casser la confiance, comment livrer assez lentement pour être correct et assez vite pour rester vivant.
AfitPilot a gardé l'architecture et jeté l'implémentation. La stack MERN a laissé place à une autre. Le calculateur monosujet est devenu l'un des sept calculateurs de coaching d'une plateforme bien plus large. Le tableau de bord est devenu quelque chose de bien plus ambitieux — un plan d'entraînement adaptatif, pas un instantané enregistré. Mais la boucle reste la même : des mesures qui entrent, un système au milieu, une sortie personnalisée renvoyée à l'athlète.
Le codebase de 2022 ne tourne plus. La raison n'est pas la nostalgie — c'est que les choses pour lesquelles il avait été construit sont aujourd'hui faites mieux, par AfitPilot, en production. Garder cette page, c'est ma façon de garder la lignée visible sans garder un serveur en vie pour héberger un projet qui a déjà fait son travail.