Étude de cas - Entraîne tout
Nous avons construit Hibrido, un entraînement hybride quotidien publié chaque matin en espagnol, en anglais et en portugais. Une séance par jour pour tout le monde, écrite la nuit par un modèle qui n'a jamais le droit d'inventer un mouvement.
- Client
- Hibrido
- Année
- Service
- Création d'Entreprise, Design de Produit, Ingénierie Full-Stack

Aperçu
L'entraînement hybride, ce mélange de force à la barre et de vrais kilomètres dans la même semaine, a dépassé le cercle de ceux qui peuvent s'offrir un coach pour le programmer. La réponse habituelle est une application : un questionnaire, un abonnement, un plan généré rien que pour vous. Nous avons incubé Hibrido pour tester l'idée inverse : que la programmation est le produit, et qu'il vaut mieux le prouver avant que quelqu'un ne construise l'application autour.
Hibrido publie donc un entraînement par jour, le même pour tous, en espagnol, en anglais et en portugais. Sans compte, sans péage, sans publicité. Deux variantes d'équipement, salle commerciale et matériel minimal, avec trois niveaux sur chaque mouvement, pour que celui qui en est à son premier mois et celui qui en est à sa dixième année fassent la même séance à des charges différentes.
En tant que constructeur d'entreprises, Everseed a pris en charge le cycle complet : le modèle d'entraînement, la marque, la chaîne de génération, le site et l'infrastructure en dessous.
Le Défi
Générer un entraînement avec un modèle est facile. En générer un que vous confieriez à un inconnu à six heures du matin, sans personne à qui poser une question, ne l'est pas.
Deux problèmes devaient être résolus avant de pouvoir publier quoi que ce soit. Le premier est la sécurité. Un modèle à qui l'on demande poliment, dans le prompt, d'éviter l'haltérophilie et la gymnastique technique va le plus souvent les éviter, et « le plus souvent » est le mauvais standard quand le mode de défaillance est quelqu'un qui tente un arraché seul parce qu'un site le lui a dit. Le second est la dérive. Un modèle qui écrit lui-même les noms des mouvements les écrit différemment dans trois langues, et les lecteurs espagnols, anglais et portugais cessent peu à peu de recevoir le même entraînement.
Les deux sont le même défi sous des habits différents : jusqu'où faites-vous confiance au modèle, et où placez-vous ce que vous n'êtes pas prêt à lui confier ?
Notre Démarche
1. Le catalogue, pas le prompt
Nous avons sorti le vocabulaire des exercices du prompt pour le mettre dans le dépôt. Le modèle reçoit un catalogue fixe de 59 mouvements, versionné dans le code et déjà traduit dans les trois langues, et il compose une séance en y choisissant des identifiants. Il ne nomme jamais un mouvement. Toute sortie renvoyant à un identifiant inconnu, ou indisponible dans la variante d'équipement qui l'a utilisé, est rejetée et régénérée, trois fois, puis l'exécution échoue plutôt que de se dégrader. C'est ce qui transforme les exclusions en contrainte plutôt qu'en demande polie.
2. Séparer la structure de la prose
La génération se fait en deux appels. Le premier produit la structure neutre du point de vue de la langue : les mouvements, les répétitions, les charges et les domaines de temps. Le second écrit les consignes dans les trois langues contre cette structure déjà figée. La traduction ne peut donc pas faire dériver l'entraînement : le lecteur portugais et le lecteur anglais regardent les mêmes chiffres par construction, et non après relecture.
3. Des images qui ne voient jamais l'entraînement
Un troisième appel produit les deux visuels du jour, 16:9 pour le site et 4:5 pour les réseaux. Il suit la même règle, un cran plus loin : on ne dit jamais au modèle d'image comment s'appelle l'entraînement. Il reçoit une description physique du mouvement dominant de la journée, tirée d'un fichier qui contient une ligne par identifiant du catalogue et un test qui casse le build dès qu'il en manque une. Les exclusions tiennent donc pour l'image comme pour la séance, et la prose de l'entraînement, qu'un modèle d'image peindrait volontiers dans le coin d'un cadre fait pour recevoir du texte, ne lui parvient jamais.
Qui apparaît sur ces images vient d'une table : des athlètes inventés, une ligne chacun, avec une description physique et un portrait de référence rendu à partir d'elle. Les jours tournent dans la distribution, si bien qu'une semaine d'images montre visiblement les mêmes visages plutôt que sept inconnus.
4. Publier avec une marge
La tâche nocturne s'exécute à 08:00 UTC et travaille deux jours à l'avance. Rien n'est affiché avant que sa propre date n'arrive, ce qui laisse 48 heures pour rattraper une exécution ratée, une panne de modèle ou une séance qui se lit simplement mal. Savoir quelle date est la vôtre est une autre question, tranchée depuis le fuseau horaire du lecteur, résolu côté serveur, pour que personne à Vancouver ne reçoive la séance de demain au petit-déjeuner.
Architecture et Stack Technique
- Framework : Next.js 16 (App Router) avec React 19, chaque page datée étant rendue côté serveur pour que l'entraînement se lise, se partage et s'indexe sans dépendre du client.
- Génération : appels de modèles via OpenRouter, validés avec Zod contre le catalogue avant tout enregistrement. L'étape d'image est la seule autorisée à échouer en silence, consignée à son propre stade pour que l'entraînement soit enregistré malgré tout. La structure et le texte renoncent plutôt que de se dégrader ; une image manquante n'est qu'une image manquante.
- Données : Supabase et Postgres accueillent les séances, la distribution et la liste d'inscription, l'écriture étant réservée au rôle de service, avec deux buckets publics pour les visuels et les portraits.
- Migrations : uniquement vers l'avant, appliquées automatiquement à la fusion par la CI avec le script que le développeur exécute en local, les instructions destructrices étant refusées sauf mention explicite dans le fichier. Un chemin de migration qui ne tourne qu'en CI est un chemin que personne n'a testé.
- Déploiement : sur Vercel, la génération nocturne tournant sur Vercel Cron, avec un tableau de bord protégé par mot de passe qui échoue fermé plutôt que de servir des brouillons non relus.
L'Impact
Hibrido est la démonstration, par Everseed, de la place des modèles dans un produit. Non pas ce qui décide, mais ce qui compose à l'intérieur d'une limite écrite par quelqu'un d'autre et imposée par un test. Le catalogue, la séparation structure/prose et les scènes des images sont le même geste : laisser au modèle sa liberté là où une mauvaise réponse coûte peu, et la lui retirer là où une mauvaise réponse atteint quelqu'un en train de soulever du lourd.
C'est délibérément un début. Le générateur tourne chaque nuit et le site publie dans trois langues ; la liste d'inscription conserve les adresses qu'elle collecte et n'a encore rien envoyé, parce que l'entraînement doit être bon avant que la distribution ne vaille la peine d'être construite.
Rendez-vous sur hibrido.app pour lire la séance du jour.
