Tableau de bord de direction
Le dirigeant pilotait 4,5 M€ depuis des fichiers Excel.
- Client
- Maxime · groupe industriel français
- Secteur
- Industrie · écrans LED · 4,5 M€ de CA
- Durée
- Conception et développement complets
Le problème
Un fabricant français d'écrans géants LED réalisant 4,5 M€ de chiffre d'affaires pilotait son activité depuis plusieurs classeurs Excel mis à jour à la main. Le CRM commercial, les comptes bancaires, les factures clients et fournisseurs, les opérations terrain et les garanties vivaient chacun dans leur coin. Pour répondre à une question simple — combien reste-t-il à encaisser ce mois-ci — il fallait ouvrir quatre fichiers et faire confiance à la dernière mise à jour manuelle.
L'architecture
- 01
eWay CRM
pipeline commercial
- 02
API Qonto
lecture seule, soldes + transactions
- 03
Facturation
clients et fournisseurs
- 04
Supabase
8 tables, RLS, tâche quotidienne
- 05
Assistants IA
commercial + SAV, sorties validées
Le produit
Captures anonymisées — noms de clients masqués, montants et volumes fictifs
Une contrainte de sécurité tenue à la lettre
L'informaticien du client exigeait un accès bancaire strictement en lecture : consultation des soldes et des transactions, aucune fonctionnalité de virement, jamais. Le périmètre a été tenu sans négociation. Les clés d'API vivent uniquement côté serveur, le navigateur ne les voit jamais, et aucune route d'écriture vers la banque n'existe dans le code — l'absence de la fonctionnalité est la garantie, pas une case décochée quelque part.
Zéro dépendance ajoutée
Trois demandes auraient pu se régler par un npm install. Chacune a été résolue autrement, et chaque fois pour une raison qui tient techniquement.
- Export PDF — feuille @media print et moteur d'impression natif du navigateur, au lieu d'une librairie de génération. Rendu vectoriel, texte sélectionnable, zéro dépendance à maintenir.
- Animations — CSS natif au lieu de Framer Motion. 120 ko économisés sur le bundle, et prefers-reduced-motion géré correctement.
- Composants de dashboard — design system maison au lieu de Tremor, qui exige React 18 alors que le projet tourne sur React 19.
Un mode clair structurellement incassable
Le codebase utilise des styles en ligne. Plutôt que d'ajouter des milliers de classes conditionnelles, toutes les couleurs passent par des variables CSS déclinées par thème. Le fond et le texte viennent toujours de la même palette : le bug du texte clair sur fond clair devient structurellement impossible, il n'est pas seulement évité au cas par cas. Un audit de contraste automatisé sur 233 éléments a confirmé le résultat, avec une échelle de gris ajustée pour atteindre WCAG AA.
Des erreurs qui se voient
Le code initial avalait silencieusement les erreurs de base de données. En cas de panne réseau, le dirigeant voyait 0 € affiché sans le moindre avertissement — et pouvait prendre une décision sur des chiffres faux. C'est le genre de défaut qui ne se remarque qu'une fois qu'il a coûté cher. Remplacé par un état d'erreur explicite, distinct d'une valeur nulle, avec possibilité de relancer la récupération.
Deux assistants IA sous contrainte métier
Un générateur de réponses commerciales applique une séquence de réflexion en cinq étapes avant de rédiger, ce qui rend son raisonnement inspectable plutôt que magique. Un assistant SAV est contraint par des règles de vocabulaire strictes, notamment l'interdiction de reconnaître une responsabilité avant analyse technique — une phrase mal choisie dans un échange après-vente peut coûter une garantie. Les sorties sont en JSON structuré et validées avant affichage.
Stack
- Next.js 16
- React 19
- TypeScript strict
- Recharts
- Supabase
- PostgreSQL
- Row Level Security
- API Anthropic
- eWay CRM
- API Qonto
- Vercel
Le résultat
6
modules : cockpit, commercial, finance, immobilier, opérations, IA
8
tables PostgreSQL protégées par Row Level Security
233
éléments audités en contraste, WCAG AA atteint
0
dépendance npm ajoutée sur les six dernières fonctionnalités
Upwork · 5,0
« Osama a su nous guider, nous conseiller et répondre à nos besoins avec une grande efficacité. Merci encore ! »
Un projet similaire ?
Je lis chaque message moi-même et je réponds sous 24 h. Pas de devis automatique, pas de formulaire qui part dans le vide.
Démarrer un projetAutres projets
Pipeline data & LLM
50 000 œuvres agrégées, nettoyées et publiées pour 5,51 $.
Lire l'étude de casProspection commerciale autonome
Un pipeline commercial qui tourne sans personne dedans.
Lire l'étude de casAutomatisation n8n
Des SMS d'anniversaire qui partent sans que personne y pense.
Lire l'étude de cas