Travaux 2025-2026 · Conception · Développement · Production vidéo
Ce que je construis,
et ce que ça donne
une fois en ligne.
Dix projets, de la plateforme SaaS en production à l'application de bureau, plus la production vidéo qui va avec. Chaque fiche s'ouvre sur le visuel réel, se lit d'un trait, et se déplie si vous voulez la mécanique en dessous.
Document autonome · tout est embarqué · aucune connexion nécessaire
Sommaire
Dix projets, une planche chacun.
Produit · Site · Automatisation
Equinox AI
Conception, design, développement, contenu, marketing
Récupérez les heures perdues
en tâches répétitives.
Equinox AI branche l'IA sur les outils déjà en place dans une TPE ou une PME pour supprimer les tâches qui se répètent. Rien à apprendre, pas de migration, et l'humain garde la validation. Le site présente cinq automatisations en production, un simulateur de coût et une offre en trois marches : la Veille Stratégique dès 20 € par mois, l'automatisation sur devis, puis l'outil sur mesure.
Séquences
Détail technique Stack, architecture, choix techniques
Stack
- HTML statique + Tailwind CSS (build CLI)
- Design system Midnight Obsidian
- Nginx derrière Traefik, déploiement par versions avec retour arrière
- Espace client sur PocketBase
- n8n auto-hébergé
- Agents IA spécialisés par thématique
- Analytics Umami auto-hébergé
- HyperFrames + ffmpeg pour la vidéo
Architecture
Le site public est volontairement statique : pas de framework, un build Tailwind et des fichiers HTML servis par Nginx. Chaque mise en ligne est une version complète, et revenir à la précédente prend une commande. Le dynamique vit à côté : un espace client sur PocketBase pour les questionnaires et le suivi, et n8n auto-hébergé pour les automatisations. Le formulaire de devis déclenche un workflow qui qualifie la demande et prépare l'appel avant qu'il ait lieu.
Choix techniques
La pré-validation avant mise en production
Un workflow d'automatisation peut tourner et échouer sans rien signaler. Chaque workflow passe donc par une pré-validation avant mise en production, sur des templates éprouvés plutôt qu'un montage refait à chaque fois.
La dépendance aux API tierces
Une API qui tombe ne doit pas arrêter la chaîne. Chaque étape critique a un repli, et l'échec remonte au lieu d'être avalé.
SaaS · Assistant e-mail
EquiMail
Conception produit, architecture, développement, design, marque
Une boîte mail enfin vide,
sans y passer vos soirées.
EquiMail ne remplace pas Gmail ou Outlook. C'est le tableau de bord de contrôle posé au-dessus : il trie, nettoie et automatise la boîte pour atteindre le zéro non traité, puis le tenir. Une démo complète tourne sans compte ni clé API.
Séquences
Détail technique Stack, architecture, choix techniques
Stack
- Next.js 15 (App Router)
- TypeScript strict
- PostgreSQL + Prisma 6
- NextAuth v5, tokens OAuth chiffrés AES-256-GCM
- BullMQ + Redis, avec repli inline
- Tailwind CSS v4 + shadcn/ui
- Couche LLM interchangeable : mock, OpenAI, Anthropic, Ollama
- Vitest
Architecture
Six modules, chacun réglant un problème précis : catégorisation, règles IA écrites en français, Reply Zero (à répondre / en attente de réponse), désabonnement en masse via List-Unsubscribe, blocage des cold emails avec file de revue, analytics. La couche LLM est une interface : on branche un mock en test, Ollama en local, un fournisseur en production, sans toucher au reste.
Choix techniques
Le worker qu'il ne faut pas avoir à lancer
Un traitement asynchrone impose normalement de faire tourner un worker. Ici, le bouton met le job en file Redis si un worker écoute, et sinon traite en direct dans la requête. Résultat : on lance, ça marche. Le worker devient une optimisation, pas un prérequis.
Les tokens OAuth au repos
Un token Gmail en base est une clé de la boîte de quelqu'un. Chiffrement AES-256-GCM au repos, clé hors dépôt, deux secrets obligatoires générés à l'installation.
Application · Analyse statistique
Keno4You
Conception, développement, infrastructure de données, marque
Ne jouez plus une grille
à l'aveugle.
Analyse statistique descriptive des tirages du Keno. La posture est assumée et écrite sur la page d'accueil : chaque tirage est équiprobable et indépendant, l'espérance de gain est négative, aucune valeur prédictive n'est revendiquée. Ce que l'outil apporte, c'est de la couverture combinatoire, de la variance et des repères, pas une prédiction.
Séquences
Détail technique Stack, architecture, choix techniques
Stack
- Application : HTML unique, JavaScript vanilla, données embarquées
- Zéro dépendance externe, fonctionne hors ligne
- Production : n8n self-healing
- Hub de persistance Google Sheets
- Moteur Python avec repli
- Adapté Keno 2025 : 56 numéros, 16 boules
Architecture
Deux moitiés qui ne se ressemblent pas. Devant, une application d'un seul fichier, sans build ni dépendance, données incluses : elle s'ouvre et elle marche. Derrière, une infrastructure auto-adaptative sur n8n, deux workflows découplés (audit trimestriel, production quotidienne), fenêtre glissante de cinq ans qui se réaligne toute seule, et un hub de persistance Google Sheets à la place de constantes en dur.
Choix techniques
L'écart se calcule sur la combinaison, pas sur ses numéros
L'écart d'une combinaison complète est une grandeur en soi. Le minimum des écarts de ses numéros vaut souvent zéro et rendrait la martingale inexploitable : le calcul porte donc sur la combinaison entière, et cette règle est tenue partout dans le code.
Les constantes en dur qui périment
Le passage du Keno à 56 numéros et 16 boules en 2025 aurait cassé chaque script contenant une constante. Le hub de persistance a remplacé les valeurs en dur, et l'audit trimestriel réaligne la fenêtre temporelle sans intervention.
SaaS santé · Praticiens MTC
GaiaFlow
Conception produit, architecture, développement, marque
Moins de paperasse,
plus de temps pour vos patients.
Plateforme SaaS pour les praticiens en médecine traditionnelle chinoise et en médecines douces. Dossiers patients, rendez-vous, questionnaires de pré-consultation et fiches conseils réunis dans un outil pensé pour la pratique MTC, pas dans un logiciel médical générique qu'il faudrait détourner.
Détail technique Stack, architecture, choix techniques
Stack
- Next.js
- Supabase : Postgres, RLS, authentification
- @google/generative-ai
- Pinecone (recherche vectorielle)
- @react-pdf/renderer + pdf-parse
- Validation Zod aux frontières
- Déploiement Vercel
Architecture
Supabase porte la donnée et l'authentification, avec des politiques RLS : un praticien ne voit que ses patients, la règle est dans la base et pas seulement dans le code. La génération documentaire (fiches conseils, comptes rendus) passe par @react-pdf/renderer, et la recherche dans le corpus par un index vectoriel Pinecone.
Choix techniques
Le cloisonnement des dossiers vit dans la base
Un praticien ne voit que ses patients, et la règle est écrite en politiques RLS Supabase plutôt qu'en conditions applicatives. Une requête qui passerait à côté de l'interface passe quand même devant la règle.
Un jeu de données de recette complet et rejouable
La recette tourne sur un jeu fictif mais complet, abonnement inclus, rejouable autant de fois que nécessaire, avec de vrais envois d'e-mail vers une boîte qu'on peut ouvrir. Un compte de test incomplet ne prouve rien.
SaaS B2B · Certification QUALIOPI
Consulting By Qaly
Développement, architecture documentaire, design system e-mail
Le cabinet qui vous accompagne
dans votre projet.
Plateforme SaaS B2B pour les organismes de formation et les consultants en certification. Elle gère les dossiers QUALIOPI de bout en bout : collecte structurée des informations, génération des documents conformes, suivi de progression et espace client. Huit services sont automatisés sur le même socle. Les visuels présentés ici sont ceux de la refonte, menée en interne et pas encore déployée : la version en production a un autre visuel.
Détail technique Stack, architecture, choix techniques
Stack
- Next.js + Supabase (RLS, auth SSR)
- Stripe avec vérification de webhook
- Sentry (erreurs et performance)
- Validation Zod sur toutes les entrées
- Index et vues matérialisées
- Génération documentaire : docx, docxtemplater, pizzip, pdfkit, pptxgenjs, xlsx
- E-mails React Email + Resend
- Déploiement Vercel
Architecture
Le cœur du produit n'est pas l'interface, c'est la fabrique de documents : un dossier rempli une fois alimente 89 documents conformes via plus de 150 variables. Supabase porte la donnée avec RLS, Stripe l'abonnement avec vérification de signature du webhook, Sentry la surveillance.
Choix techniques
Un design d'e-mail à dupliquer huit fois sans le recopier huit fois
Le modèle Velvet Green validé sur QUALIOPI devait servir aux sept autres services. Le contenu est sorti du JSX et vit dans un fichier éditable séparé, avec les images en constantes : dupliquer un service devient une question de contenu, plus de gabarit.
La performance tenue quand le volume monte
Index ciblés et vues matérialisées côté base, découpage du code côté client. Le travail se voit peu et se remarque seulement quand il manque.
Production audiovisuelle · Mission client
Fil Rouge RH
Production audiovisuelle uniquement
Filmer un produit
sans jamais filmer un écran.
Fil Rouge RH est une plateforme RH éditée par un client. Je n'ai pas travaillé sur le produit lui-même : mon apport se limite à sa production audiovisuelle, capsules fonctionnalités, teaser de webinaire et présentation des nouveautés. Le parti pris est de reconstruire les écrans en HTML animé plutôt que de filmer une capture d'écran.
Séquences
Détail technique Stack, architecture, choix techniques
Stack
- HyperFrames : composition HTML + timeline GSAP, rendu déterministe
- Playwright pour l'audit de fidélité sur le produit en ligne
- HeyGen pour l'avatar de présentation
- Voicebox pour la voix off locale
- ffmpeg 8 : incrustation alpha, sous-titres, mux et ducking
- Rendu systématique en 16:9, 9:16 et 1:1
Architecture
Les écrans du produit sont reconstruits en HTML et CSS animés plutôt que filmés : le rendu reste net à toutes les tailles, les textes restent modifiables, et le rendu est déterministe donc reproductible. Chaque scène est animée élément par élément, avec un faux curseur qui joue le parcours utilisateur.
Choix techniques
La fidélité se vérifie par capture, pas au jugé
Chaque écran reconstitué est comparé à une capture du compte démo, écran par écran, avant rendu : mêmes libellés, mêmes colonnes, mêmes états. Le style sert le produit, il ne le remplace pas : une vidéo qui ne ressemble pas au produit ne vend pas le produit.
La voix off qui passe sous la musique
Voix off générée par scène, musique corporate mixée dessous avec ducking simple au mux ffmpeg. La voix reste nettement au-dessus, sur toute la durée.
Automatisation · Mission pour un cabinet RH
Veille RH automatisée
Conception et mise en production de la veille
4 à 5 heures de recherche par semaine,
rendues à l'équipe.
Une veille métier automatisée, mise en production chez Qaly Business, cabinet de conseil RH et de formation. Chaque lundi à 9 h, quatre agents IA spécialisés balayaient les sources publiques du secteur (réglementation, formation, santé et sécurité, marché RH) et l'équipe recevait un rapport trié et sourcé au lieu d'une liste de liens. Le système est devenu la Veille Stratégique, l'offre packagée d'Equinox AI.
Détail technique Stack, architecture, choix techniques
Stack
- n8n auto-hébergé derrière Nginx
- Quatre agents IA, un par thématique de veille
- Sources publiques du secteur, pas de scraping fermé
- Déduplication et scoring avant synthèse
- Envoi hebdomadaire au format lisible
Architecture
Le principe tient en quatre temps. La collecte : chaque agent a son périmètre, réglementation, formation, santé et sécurité, marché RH, et sa liste de sources publiques. Le tri : les doublons tombent, y compris d'une semaine à l'autre grâce à une mémoire, et le reste est noté sur sa pertinence pour le métier du client, ce qui évite le rapport de trente liens que personne n'ouvre. La synthèse : ce qui passe le seuil est résumé, classé en à faire, opportunités et veille générale, avec une action proposée et la source citée pour que le lecteur puisse vérifier. L'envoi : un rapport par semaine, le lundi à 9 h. Le paramétrage du périmètre et des sources vit dans un hub de configuration, pas en dur dans le workflow.
Choix techniques
Le produit, c'est la synthèse, pas la collecte
Une veille qui rend trente liens n'a rien automatisé, elle a déplacé le travail. Le scoring de pertinence et la synthèse sont le produit ; la collecte n'est que la plomberie.
Chaque source a un repli
Un site public peut changer de structure du jour au lendemain. Chaque source a donc une voie de secours, et une collecte vide remonte comme une alerte au lieu de produire un rapport vide.
Site public · Espace membre · Administration
LifeTime Business
Direction artistique, développement, espace membre, administration
Des projets concrets,
des revenus partagés.
Site public et espace membre du réseau LifeTime Business. Le site explique le modèle en trois temps, adhérer, participer, partager les revenus, et présente BeerMarket, le projet porté par le réseau. Derrière, l'espace membre gère l'adhésion et son renouvellement en ligne, l'achat par carte avec un certificat signé électroniquement, et une administration valide les dossiers et gère les comptes. Les captures viennent du nouveau site, servi en local avant son ouverture.
Détail technique Stack, architecture, choix techniques
Stack
- Next.js (App Router)
- Supabase via @supabase/ssr pour l'authentification
- Stripe pour l'adhésion et les achats par carte
- DocuSeal pour les certificats signés
- Resend pour les e-mails
- WCAG AA, prefers-reduced-motion respecté
Architecture
Trois publics sur un même site : le prospect qui vérifie le sérieux de la structure avant d'adhérer, le membre qui vient retrouver son compte, et l'équipe qui administre. Le premier a besoin de comprendre le modèle en une page, le second de lire ses chiffres et de payer sans friction, la troisième de valider un dossier, bloquer un compte ou relire le journal sans toucher à la base. Une garde serveur filtre chaque zone : session vérifiée pour l'espace, rôle administrateur pour l'administration, et un mode construction qui ne laisse passer que l'équipe avant l'ouverture.
Choix techniques
Des chiffres qui doivent être exacts
Sur un site qui parle de revenus, un chiffre arrondi à la hausse est un risque. Tout montant affiché est vérifiable, les données sont en typographie monospace, les mentions sont complètes.
L'accessibilité prise comme contrainte de départ
Contrastes WCAG AA, focus visibles, prefers-reduced-motion respecté : les animations s'arrêtent pour qui les désactive. Une contrainte posée au début coûte moins cher qu'une reprise à la fin.
Application Windows · Capture d'écran
EquiShot
Conception, développement Rust et React, design
Tracer, annoter, retrouver,
sans rien envoyer nulle part.
La capture d'écran qui ne se perd plus, pour Windows. On trace la zone sur l'écran vivant, on annote sur place, l'image part dans le presse-papiers, et la galerie retrouve une capture par le texte qu'elle contient. On peut aussi filmer une zone et en sortir un GIF. Gratuit, sans compte ni publicité, code ouvert sous licence MIT. Aucune capture ne quitte la machine : le seul échange avec internet est la vérification des mises à jour, une fois par jour. Les images montrées ici viennent de la vraie interface, alimentée par un jeu de données de démonstration.
Séquences
Fonctionnalité par fonctionnalité
Détail technique Stack, architecture, choix techniques
Stack
- Tauri 2 + Rust
- React 19, TypeScript, Tailwind 4, Vite
- Reconnaissance de texte de Windows, en local
- Une fenêtre par rôle : pastille, sélection, vignette, galerie
- Polices embarquées, une seule requête réseau : les mises à jour
- Installeur sans droits administrateur, mises à jour servies par equinox-ai.fr
- Parcours de test de bout en bout sur une instance séparée
Architecture
Plusieurs petites fenêtres plutôt qu'une grosse : une pastille flottante pour lancer la capture, une fenêtre de sélection posée sur l'écran vivant, une vignette qui confirme le résultat, et la galerie. Le cœur est en Rust, l'interface en React. Le texte de chaque capture est lu sur la machine par le moteur de Windows et rejoint la recherche, à côté de la note, du titre de la fenêtre et de la date.
Choix techniques
L'outil ne doit pas apparaître dans ce qu'il capture
La pastille et la fenêtre de sélection sont protégées contre la capture : elles n'apparaissent ni dans les images ni dans un partage d'écran. On peut lancer une capture en pleine visioconférence sans montrer l'outil.
Une annotation qu'on peut reprendre
L'annotation ne s'écrase pas dans l'image : les formes restent des formes. Une flèche mal placée se déplace le lendemain depuis la fiche, sans refaire la capture.
Application Windows · Cockpit de travail
EquiOS
Conception, développement Rust et React, design
Une équipe d'agents de code,
dans une seule fenêtre.
EquiOS est le cockpit Windows d'Equinox AI : une application qui réunit second cerveau, harnais agentique, projets, outils et opérations, pour travailler à partir d'un seul endroit. Sa pièce maîtresse est le Harnais. On donne un objectif, un orchestrateur propose un plan, on l'approuve, et Claude Code et Codex travaillent côte à côte en se passant des messages. Les captures montrées ici viennent de la vraie interface, alimentée par un jeu de données de démonstration.
Séquences
Fonctionnalité par fonctionnalité
Détail technique Stack, architecture, choix techniques
Stack
- Tauri 2 + Rust, base SQLite locale
- React 19, TypeScript, Tailwind 4, shadcn/ui
- Zustand pour l'état, xterm pour les terminaux
- Sièges : Claude Code, Codex, Hermes, cmd, PowerShell, Git Bash
- Ollama en local pour la conversation et les vecteurs
- Secrets des serveurs MCP jamais écrits en clair
Architecture
Une application modulaire : Cockpit, ECLIPSE, Cerveau, Harnais, Organisation, CRM, Création, Réglages. Le Harnais ouvre des sièges, un par agent ou par terminal, rangés en grille par espace de travail. Un facteur porte les messages d'un siège à l'autre et en garde l'état, déposé, livré, lu. Le Tableau de bord rassemble ce qui attend une décision : un plan à approuver, une question à laquelle répondre.
Choix techniques
Savoir qui attend quoi
Avec plusieurs agents ouverts, le risque est de laisser l'un d'eux bloqué sur une question sans le voir. Chaque siège publie son état, la barre compte ceux qui attendent une réponse, et on répond depuis le Tableau de bord sans chercher le bon terminal.
Un plan avant d'ouvrir les sièges
Une équipe ne démarre pas sur une simple consigne. L'orchestrateur écrit son plan, étapes et rôles, et rien ne s'ouvre tant qu'il n'est pas approuvé. Un refus se motive.
Transverse · production audiovisuelle
La vidéo fait partie du produit
Une plateforme qui ne se montre pas ne se vend pas. Sur la plupart de ces projets, j'ai produit les vidéos moi-même plutôt que de sous-traiter : reels marketing, capsules produit, tutoriels, teasers, vidéos de présentation. Le principe est constant : reconstruire les écrans en HTML animé plutôt que de filmer un écran, pour un rendu net, modifiable et reproductible.
HyperFrames
Composition HTML et timeline GSAP. Le rendu est déterministe : la même composition donne exactement la même vidéo, image par image. Une correction de texte ne demande pas de retourner un plan.
Écrans reconstruits
Les interfaces sont refaites en HTML et CSS, animées élément par élément, avec un faux curseur qui joue le parcours. Fidélité vérifiée par capture du produit réel, pas au jugé.
Voix et avatars
Voix off générée localement avec Voicebox, avatars de présentation avec HeyGen, musique mixée sous la voix avec ducking au mux.
ffmpeg
Incrustation alpha, sous-titres brûlés, empilage, mux. Rendu systématique en trois formats : 16:9, 9:16 et 1:1.
Les extraits présentés dans ce portfolio sont raccourcis et recompressés pour tenir dans un fichier unique. Les originaux sont en 1080p.
Compétences
Ce que je manipule au quotidien.
Front
- Next.js 15 (App Router)
- React
- TypeScript strict
- Tailwind CSS
- shadcn/ui
- HTML et CSS sans framework
Back et données
- PostgreSQL
- Prisma
- Supabase (RLS, auth, SSR)
- Redis + BullMQ
- Python
- Zod aux frontières
Automatisation et IA
- n8n auto-hébergé
- Agents IA spécialisés
- Couche LLM interchangeable
- Ollama en local
- Recherche vectorielle
Production vidéo
- HyperFrames (HTML + GSAP)
- Remotion
- HeyGen
- Voicebox (TTS local)
- ffmpeg
- Playwright pour la capture
Infrastructure
- Vercel
- Docker
- Nginx
- Stripe (webhooks vérifiés)
- Sentry
- Umami auto-hébergé
Méthode
- Plan avant code sur tout ce qui dépasse trois étapes
- Correction à la racine, jamais au symptôme
- Créer, tester, vérifier, livrer
- Preuve exécutée avant de dire que c'est fini