John Dossin
Produits en production — pas des maquettes

Je conçois, déploie et exploite des produits web et mobile en production.

Les trois produits ci-dessous sont en ligne, utilisables maintenant — avec leurs utilisateurs, leurs données, leurs incidents et leurs mises à jour. Le code est écrit par des agents IA sous ma direction : l'architecture, la revue, les tests, le déploiement et l'exploitation sont à moi. J'assume chaque ligne en production.

5 produits en production
3 marchés distincts : santé · B2B artisan · musique
18 mois de production continue, depuis la première app (avril 2025)
Hermès Coach — écran de connexion
coach.rvlts.com — santé GLP-1
ProAssistant IA — connexion
ProAssistant — artisans B2B
Freestyle Crew — accueil
freestyle-crew.com — musique
Clip « Légende » — couverture
clip IA — pipeline LTX
01

Trois produits, trois marchés

Hermès Coach — coach santé GLP-1

en ligne

Un coach de suivi de traitement GLP-1 : web, Android natif, abonnement, et un agent IA qui analyse chaque journée — du sujet sensible traité comme un produit.

Hermès Coach — écran d'accueil avec accès compte démo
Écran d'accueil — « Essayer avec le compte démo » ouvre l'app complète sans créer de compte.

Décisions d'ingénierie

  • Pourquoi un agent local asynchrone plutôt qu'un appel LLM direct — chaque analyse est un job (30 s à plusieurs minutes) avec jobId et polling : l'app reste réactive, l'agent travaille en file.
  • Webhook d'abonnement fail-closed (RevenueCat) : si le réseau ou le service mente, l'accès se ferme, jamais l'inverse.
  • Migration react-router 7→8 dès la publication de la CVE CSRF (RSC) : maintenance de sécurité sur du code en production, pas de la dette accumulée.
  • SQLite derrière Express, sessions révocables, rate-limit, bornage serveur de toutes les entrées numériques : la sécurité comme posture, pas comme correctif.

Stack

Vite + React 19 + TypeScript strict
Express 5 · better-sqlite3 · PM2
Android Kotlin/Compose · bot Telegram
RevenueCat · TLS · VPS nginx

Testé où ça compte

  • Tests unitaires sur la logique de dosage GLP-1 (app Android) : le choix de quoi tester — le risque patient — plutôt que la couverture.
  • PDF de suivi médecin et analyse photo d'étiquettes nutritionnelles : deux features nées d'un usage réel, pas d'une roadmap.
Décidé
  • Agent asynchrone en file d'attente
  • Fail-closed sur les paiements
  • Migration CVE immédiate
  • RGPD art. 9 assumé : périmètre de données minimal, sessions révocables, actions journalisées
Délégué
  • Écriture du code par agents IA
  • UI React et composants
  • Création de l'app Android
Vérifié
  • Revue ligne à ligne avant merge
  • QA vision + tests sur dosage
  • Exploitation quotidienne depuis la mise en prod

ProAssistant IA — l'outil métier des artisans

en ligne

Dicter une intervention les mains dans le vide sanitaire, sans réseau — et ressortir un devis. Gestion complète de chantier : devis, stock, planning, équipe, photos analysées.

ProAssistant IA — écran de connexion
Un clic sur « Essayer la démo » ouvre le tenant « Atelier Démo » — données fictives, bandeau démo, zéro inscription.

Décisions d'ingénierie

  • Whisper en local, pas en API : la voix d'un client et l'adresse d'un chantier ne quittent le serveur que pour la structuration — confidentialité client incluse dans l'architecture.
  • Une phrase dicte l'architecture : « les mains sales, sans réseau, pas de clavier » → voice-first, transcription locale, structuration LLM plutôt que formulaire.
  • Facturation volontairement verrouillée : facturer pour un artisan belge, c'est TVA et e-facturation structurée (Peppol). Je ne mets pas en ligne un générateur de factures à moitié légal — roadmap datée.
  • Multi-tenant JWT dès la première ligne : chaque artisan ne voit que ses chantiers, ses clients, ses prix.
  • Vision par photo : photographier un devis ou un matériau suffit — l'analyse remplit inventaire et lignes.

Stack

React 18 + TypeScript + Tailwind
Express 4 · Prisma · PostgreSQL
Whisper local · Gemini 1.5 Flash
PM2 · multi-tenant · JWT

Pour qui

  • Plombiers, électriciens, indépendants du bâtiment — mon ancien métier. Je connais le vide sanitaire, pas seulement le persona.
Décidé
  • Voice-first comme produit, pas comme gadget
  • Whisper local (confidentialité)
  • Facturation verrouillée (TVA/Peppol)
  • Périmètre module par module selon le terrain
Délégué
  • Écriture des 20 modules par agents IA
  • Modèle Prisma et CRUD
  • Frontend dashboard
Vérifié
  • Parcours dictée→devis testé bout en bout
  • Isolation tenant vérifiée
  • 18 jours d'uptime continu

Freestyle Crew — chansons et battles freestyle

en ligne

« Transforme ton idée en chanson » : un créateur musical IA (description → style → chanson), la plateforme battles du crew, et le clip « Légende » livré pour la sortie — un client exigeant qui ne pardonne rien au timing.

Freestyle Crew — accueil du créateur de chansons
Accueil — description d'une idée, choix du style, chanson générée. Battles du crew et uploads audio/vidéo derrière.

Décisions d'ingénierie

  • Génération musicale en file d'attente plutôt qu'en requête HTTP : une chanson prend des minutes, le navigateur ne doit jamais attendre — job asynchrone et polling.
  • Cluster Node ×4 derrière nginx : uploads audio/vidéo et pics de charge des battles ne tombent pas la plateforme — éprouvé en réel.
  • Client réel, contrainte créative externe : un livrable validé par quelqu'un d'autre que moi — la preuve de travail avec autrui, pas seulement pour soi.

Stack

Node.js · Express · socket.io
Génération musicale IA en jobs
Cluster PM2 ×4 · nginx · uploads A/V
· app Android (APK) livrée

Décidé
  • Jobs asynchrones pour la génération
  • Architecture cluster et stockage
  • Cahier des charges avec le crew
Délégué
  • Code plateforme par agents IA
  • App Android associée
Vérifié
  • Charge réelle absorbée en prod
  • Livrable accepté par le client

Également en production : smartpantry.be — PWA de gestion de stock et budget, petite et propre, qui tourne.

02

Pipelines génératifs — l'IA comme atelier

Clip « Légende » — image de couverture

« Légende » — clip musical IA, 2 min 25

LTX-2.3 fp8 · lip-sync · 29 plans · 1080p

Un clip complet pour la chanson du Freestyle Crew : storyboard de 29 plans, personnages cohérents du premier au dernier plan (rappeur, héroïne, Lamborghini jaune), monté et livré en version téléphone. Le problème n'était pas « générer des vidéos » — c'était la reproductibilité : cohérence de personnage sur 29 plans, contrôle qualité plan par plan, calcul sous contrainte VRAM (fp8), refonte des décors refusés jusqu'à validation.

Photo produit avant retouche
avant
Photo produit après — lifestyle
après

Réalisation 3D & démos business

Unreal 5.8 · AI-Mesh · ComfyUI

Personnages riggés et animés, décors monde ouvert UE 5.8, et un pipeline e-commerce/immobilier (avant/après produit, virtual staging) avec seeds fixés — reproductible, QA vision, livrable.

03

Comment je travaille

J'ai commencé à coder à la main en avril 2025, puis les agents sont devenus mon atelier — ma première app est toujours en production, maintenue et mise à jour 18 mois plus tard. Ce qui n'a pas changé : la spec, la revue, l'exploitation restent les miennes.

1 · Spécifier

Cahier des charges écrit avant d'ouvrir un agent : problème, utilisateur, contraintes réglementaires, périmètre. La spec est l'artefact intellectuel.

2 · Déléguer

Le code est écrit par des agents IA (Claude Code, Hermes, swarm) sous ma direction — pas en pilote automatique. Quand l'agent se trompe, je refuse l'architecture et je redirige.

3 · Vérifier

Revue de chaque diff avant merge, QA visuelle automatisée, tests unitaires sur les zones à risque (dosage patient, isolation tenant), vérification en conditions réelles.

4 · Exploiter

Déploiement VPS (nginx, PM2, TLS, Docker), monitoring, sauvegardes, réponses aux incidents. Un produit en ligne n'est pas terminé — il est exploité.

04

Lab — le reste de l'atelier

Expériences et produits plus petits, en ligne ou en chantier :