Le défi
She Is My Nutritionist comptait des milliers de clientes payantes consommant du contenu de coaching via des appels Zoom, des plans de repas en PDF et un groupe Facebook privé. L’abandon était sévère : la plupart des clientes disparaissaient discrètement après la semaine 2, faute d’un système les récompensant de suivre le plan, d’un endroit dans l’application pour consigner les repas, d’une mise en avant automatique de « quoi faire ensuite » et d’un signal pour la coach qu’une cliente était sur le point de décrocher. Le coaching est un problème d’habitude, pas de contenu — et la chaîne d’outils existante résolvait le mauvais problème.
La demande était claire : construire un vrai SaaS sur lequel la pratique pourrait placer ses clientes payantes, où le produit lui-même stimule l’engagement quotidien et hebdomadaire, où la coach reçoit un signal en direct sur qui est active et qui est à risque, et où le contenu (recettes + leçons) se verrouille et se déverrouille selon la progression réelle au lieu d’être déversé d’un coup sur la cliente.
Notre solution
Nous avons construit Nurtiverse — un SaaS Next.js + Node.js + Python + MongoDB où la couche de ludification est le produit, et non un autocollant par-dessus.
L’application cliente Next.js est l’interface quotidienne que voit chaque utilisatrice payante : consigner un repas, scanner une recette, terminer la leçon du jour, consulter son niveau. Le suivi des calories et des macros est de premier ordre : chaque aliment saisi atteint une API Node.js qui écrit un document `MealLog` structuré et déclenche un calcul de points. Atteindre une série quotidienne, terminer une leçon, accomplir un objectif hebdomadaire — les points s’accumulent en un niveau (Bronze → Argent → Or → Platine) qui débloque de nouvelles recettes, de nouvelles leçons et de nouveaux badges. Le contenu verrouillé est visible mais flouté avec un message « débloquer au niveau Argent » — la progression est ainsi motivante, pas punitive.
Le moteur de recettes et de leçons en Python est le lieu où réside la propriété intellectuelle du coaching. Il note les recettes selon les macros, allergies, aversions et niveau d’une cliente ; génère automatiquement une liste de courses à partir de tout plan de repas sélectionné ; et décide quelle leçon présenter ensuite selon l’historique d’achèvement et le parcours prescrit par la coach. Les recettes comprennent des vidéos à suivre en cuisinant, diffusées via un CDN avec suivi de progression à la seconde, et les leçons verrouillent le module suivant tant que la vidéo n’est pas réellement terminée (et non une simple case « marquer comme fait »).
La console de la coach est le deuxième produit à l’intérieur du produit. Les coachs voient chaque cliente d’un coup d’œil : niveau actuel, dernier repas consigné, dernière leçon terminée, tendance d’engagement d’une semaine à l’autre, et un signal pour toute cliente n’ayant pas consigné de repas depuis 5 jours ou plus. Depuis la même console, elles peuvent envoyer un rappel type, prescrire une recette, avancer une leçon hors séquence ou planifier un suivi — la coach agit ainsi sur des signaux, et non sur sa mémoire des appels Zoom.
En arrière-plan : abonnements Stripe pour la facturation, Auth0 + JWT pour l’accès par rôle, MongoDB Atlas avec des schémas Mongoose / Pydantic qui maintiennent les services Node et Python sur le même contrat de données, et Sentry + Datadog pour qu’une requête de recherche de recettes lente ne tue jamais silencieusement la rétention.
- Suivi des calories + macros avec saisie des repas en moins de 300 ms et documents `MealLog` structurés
- Progression par niveaux (Bronze → Argent → Or → Platine) — les points s’accumulent en un niveau qui débloque recettes, leçons et badges
- Contenu verrouillé avec des messages motivants « débloquer au niveau suivant » plutôt que des paywalls punitifs
- Appariement de recettes propulsé par Python selon macros, allergies, aversions et niveau — avec listes de courses générées automatiquement à partir de tout plan de repas
- Lecteur de leçons avec suivi de progression vidéo à la seconde — la leçon suivante ne se débloque qu’à l’achèvement réel, pas par une case à cocher
- Console de la coach avec niveau actuel, dernier journal, tendance d’engagement d’une semaine à l’autre et signal d’inactivité déclenché après 5 jours ou plus de silence
- Actions de coach en un clic : envoyer un rappel, prescrire une recette, avancer une leçon, planifier un suivi — le tout depuis le même écran
- Abonnements gérés par Stripe avec partage des revenus de la coach, observabilité Sentry + Datadog, MongoDB Atlas, accès JWT par rôle