Index · 26 dossiers
Nos réalisations, indexées.
Aucune capture d’écran mise en scène. Chaque dossier présente sa stack technique, ses chiffres clés, l’enjeu relevé et l’endroit où il tourne aujourd’hui.
26
Produits livrés
1 641
Tests automatisés dans l’index
0
En production
3
Services dans un seul compte
6
Familles CACES® couvertes
30 s
Devis en ligne
Enjeu
La location de matériel, la formation certifiante et le recrutement de conducteurs fonctionnaient comme trois activités séparées, avec trois parcours de devis distincts.
Solution
REVALOCA pour la location et l’achat sur six familles CACES®, FORMAFORCE pour la formation CACES® sur site (recommandations R482–R490) assurée par des formateurs habilités, et REVALO pour trouver des conducteurs certifiés — un seul compte, un devis en ligne en 30 secondes.
Stack technique
- Plateforme web
144
Tests E2E
17
Remarques corrigées
3
Langues
3
Directions visuelles
Enjeu
Prise en charge complète de l’écriture de droite à gauche, performances mobiles malgré des animations complexes, cohérence visuelle sur trois langues, et trois directions de design menées en parallèle avec un audit croisé par une IA relectrice.
Solution
Direction Editorial Heritage retenue à l’issue d’une comparaison notée à trois voies (8,05 contre 6,95 et 5,85), 144 tests E2E, 24 contrôles axe-core validés, 17 remarques de relecture corrigées, identité de marque figée.
Stack technique
- Next.js 16
- Tailwind 4
- GSAP
- Lenis
- Supabase
- next-intl
- EB Garamond
101
Tests
12
Tables
8
Vendeurs
Enjeu
Architecture double mode Flutter Web PWA + BFF Next.js, recherche plein texte performante, paiement international intégré.
Solution
Supabase avec 12 tables + recherche plein texte websearch + RPC atomique increment_ai_usage + contrainte CHECK imposant 30 % de prépaiement sur le paiement à la livraison + webhook Stripe signé HMAC.
Stack technique
- Flutter
- Supabase
- Riverpod
- go_router
- Hive-CE
92
Score performance
8
Sections
12
Effets au défilement
Enjeu
Traduire le savoir-faire du café en une expérience numérique sensorielle.
Solution
Dégradé maillé aux tons café, texture de grain en parallaxe, récit des origines épinglé au défilement, micro-animations de vapeur qui s’élève.
Stack technique
- Next.js 16
- Tailwind 4
- Motion
- GSAP
- Lenis
SaaS
Type
Prisma+Stripe
Authentification
Lot 0
Phase
Enjeu
Place de marché biface avec vérification de l’inscription au barreau et conformité RGPD sur des données juridiques.
Solution
Architecture multi-tenant Prisma, Stripe Connect pour les paiements fractionnés, RLS stricte sur les échanges.
Stack technique
- Next.js 16
- Prisma
- Stripe
- PostgreSQL
v1.30
Version
200+
Produits
Complète
Stack technique
Enjeu
Ventes flash avec gestion des stocks en temps réel, paiements sécurisés (paiement à la livraison + Stripe), double interface.
Solution
Architecture événementielle pour les ventes flash, Supabase Realtime pour les stocks, webhook Stripe signé HMAC.
Stack technique
- Flutter
- Next.js 16
- Supabase
- Stripe
15
Cycles d’itération
100 %
Fiche produit sur mesure
FR+EN
Langues
2
Phase
Enjeu
Un WordPress/WooCommerce performant avec un design sur mesure sans constructeur de pages, une boutique bilingue, l’intégration d’un paiement sécurisé et 15 cycles de relecture client.
Solution
Thème sur mesure, hooks WooCommerce, passerelle de paiement Stripe, sélecteur de langue TranslatePress, et un audit automatique des liens cassés avant chaque mise en production.
Stack technique
- WordPress
- WooCommerce
- Stripe
- Thème sur mesure
- mu-plugin
- TranslatePress
CRM + portail
Périmètre
Livré
Statut
Enjeu
Planification des formateurs, envoi fiable des e-mails transactionnels et visibilité des pages de formation dans les moteurs de recherche, sans perturber l’activité quotidienne.
Solution
Un CRM et un portail formateurs modulaires, des workflows formateurs automatisés, des e-mails transactionnels et des données structurées sur les pages de formation pour qu’elles apparaissent correctement dans les résultats de recherche.
Stack technique
- Next.js 16
- Supabase
- Resend
- n8n
291+
Tests
12
Comptes de démonstration
v2.0.1
Version
Enjeu
Architecture cinéma multi-tenant avec modération communautaire et plus de 291 tests automatisés.
Solution
RLS Supabase stricte, gestion d’état Zustand, plus de 291 tests (Vitest + Playwright), 12 personas de démonstration.
Stack technique
- Next.js 16
- Supabase
- Zustand
- Tailwind
GSAP+Lenis
Animation
WAVO
Sous-marque
En ligne
Statut
Enjeu
Une identité mère cohérente et une sous-marque de streaming, avec un motion design premium.
Solution
Architecture Next.js multi-domaines (site principal + sous-domaine de streaming), timeline maître GSAP.
Stack technique
- Next.js 16
- GSAP
- Lenis
- Motion
- Tailwind
Streaming
Type
Supabase
Authentification
En ligne
Statut
Enjeu
Streaming vidéo performant avec gestion des droits et distribution par CDN mondial.
Solution
Authentification et stockage Supabase, streaming adaptatif, transitions d’interface Motion, grille de catalogue adaptée à tous les écrans.
Stack technique
- Next.js 16
- Tailwind
- Motion
- Supabase
7.0
WordPress
OVH-107
Cluster
DB-IP
Base GeoIP
n8n
Chaîne de traitement
Enjeu
Migration vers WP 7.0 stable (PHP 8.3+, MySQL 8.0+ et HTTPS imposés), routage des tarifs par pays via GeoIP, rotation des identifiants WP et DB-IP, surveillance de disponibilité.
Solution
Stack OVH cluster107 + WP 7.0, DB-IP Country Lite pour la détection du pays, workflow n8n de réception des formulaires de contact et de surveillance de disponibilité, hooks de rotation automatique des identifiants.
Stack technique
- WordPress 7.0
- OVH cluster107
- DB-IP Country Lite
- n8n
- PHP 8.3
85+
Workflows n8n en production
183 000
Appels API synchronisés
6
Vendeurs sur un seul tableau de bord en direct
Enjeu
Des données commerciales, d’appels et de facturation réparties dans des systèmes séparés, ressaisies à la main de l’un à l’autre, sans tableau de bord unique sur lequel l’équipe commerciale puisse s’appuyer.
Solution
Un ensemble de workflows n8n en production qui synchronise leads, appels et facturation dans le CRM, avec un tableau de bord en direct utilisé chaque jour par l’équipe commerciale.
Stack technique
- n8n
- PostgreSQL
- Resend
36
Écrans (application mobile)
26
Tables de base de données
846
Tests automatisés
Enjeu
Des ventes flash en temps réel avec un stock par variante, un catalogue trilingue FR/AR/EN, et le paiement par carte comme à la livraison, le tout sur un seul backend Supabase qui sert à la fois une application mobile et un tableau de bord d’administration.
Solution
Une application Flutter de 36 écrans (Riverpod, GoRouter, cache hors ligne Hive) associée à un back-office Next.js 16 (26 routes, RBAC à 5 rôles), sur Supabase Postgres avec 26 tables, 89 politiques RLS et 31 fonctions RPC. Le paiement par carte (CIB/EDAHABIA) passe par Chargily Pay V2 en parallèle du paiement à la livraison, le tout couvert par 846 tests automatisés entre Playwright, Flutter, Vitest et Jest.
Stack technique
- Flutter
- Riverpod
- GoRouter
- Hive
- Next.js 16
- Supabase
1.9.0
Version de l’application
14
Écrans
28
Fichiers de tests automatisés
Enjeu
Les données de ventes, d’appels et d’objectifs étaient éparpillées entre un tableur CRM et un système téléphonique séparé, sans aucun écran en français que l’équipe commerciale ou ses managers puissent consulter au quotidien.
Solution
Une application Flutter de 14 écrans avec des onglets KPI, localisation, leads et manager — réalisé face à l’objectif mensuel, chiffre d’affaires, remboursements et classement des meilleurs vendeurs — au-dessus de la chaîne d’automatisation, avec un tableau de bord en direct aujourd’hui utilisé par 6 vendeurs et couvert par 28 fichiers de tests automatisés.
Stack technique
- Flutter
- Provider
- Supabase
- n8n
- fl_chart
5
Boutiques dans le groupe
58
Wilayas dans les grilles de frais de livraison
3
Boutiques bilingues FR/AR
Enjeu
Cinq boutiques WooCommerce dupliquées avaient besoin d’un parcours de commande sur mesure commun, de frais de livraison exacts sur tout le territoire et d’un catalogue bilingue français-arabe, sans perturber les commandes quotidiennes — le tout compliqué par MK Lady, dont les fiches produit utilisent un plugin de formulaire de commande (QuickFORM) différent du formulaire partagé par les quatre autres boutiques.
Solution
Une fiche produit et un formulaire de commande avec paiement à la livraison communs, adossés à une grille de frais de livraison couvrant 58 wilayas et 1 541 communes ; un déploiement bilingue FR/AR avec TranslatePress + DeepL + Relevanssi, en ligne sur trois des cinq boutiques avec des descriptions produit réellement traduites, pas seulement les menus ; et Lucky Wheel, un plugin de coupons à roue de la fortune développé de zéro et aujourd’hui en production sur quatre des cinq boutiques — y compris un adaptateur dédié au formulaire QuickFORM de MK Lady.
Stack technique
- WordPress
- WooCommerce
- Woodmart
- TranslatePress
- DeepL
- Relevanssi
426
Produits au catalogue
WooCommerce
Plateforme
Français
Langue
Enjeu
Une enseigne de mode à prix réduits avait besoin d’une boutique WooCommerce à l’échelle d’un vrai catalogue, capable de porter des centaines de références pour trois publics sans ressembler à une boutique générique.
Solution
Une réalisation WordPress/WooCommerce portant 426 produits en ligne répartis entre femme, homme, enfant et une section déstockage dédiée, en français pour le marché algérien.
Stack technique
- WordPress
- WooCommerce
4 sur 5
Boutiques équipées
6
Niveaux de gains
24 h
Validité du coupon
Enjeu
Les plugins de roue de la fortune du marché dédoublonnent par e-mail, une donnée qui n’existe pas dans une commande invité avec paiement à la livraison, et les fiches produit de MK Lady utilisent un plugin de formulaire de commande (QuickFORM) différent de celui des autres boutiques : l’application automatique du coupon demandait donc une seconde intégration construite pour lui.
Solution
Un plugin WooCommerce sous licence par domaine : une roue à 6 segments dont les gains sont décidés côté serveur, une protection anti-abus en couches (pot de miel, limites de fréquence, plafonds journaliers) au lieu d’une vérification d’identité, un délai de 24 heures entre deux tirages et une validité du coupon de 24 heures, et l’application automatique du coupon aussi bien sur le formulaire de commande de la fiche produit que sur le panier — y compris un adaptateur dédié au QuickFORM de MK Lady.
Stack technique
- WordPress
- WooCommerce
- PHP
- JavaScript natif
Ed25519
Signature des licences
21 jours
Période de grâce hors ligne
Éprouvé, avant client
Statut
Enjeu
Un déploiement par snippets n’offre aucun moyen natif de lier un module payant à un domaine, de détecter une altération ou d’alerter en cas d’usage abusif — et aucune mesure de protection ne doit jamais risquer de mettre hors ligne la boutique d’un client sur un faux positif.
Solution
Un serveur de licences sur Supabase qui émet des réponses d’activation, de contrôle périodique et de désactivation signées en Ed25519, vérifiées deux fois par jour via WP-Cron. Une installation sans licence ou altérée se replie en silence — le formulaire personnalisé se masque et ses propres routes REST renvoient une erreur 403, tandis que le site continue de prendre des commandes avec son formulaire natif ; rien n’est jamais supprimé ni dépublié, et une période de grâce hors ligne de 21 jours garde un site fonctionnel pendant une panne du serveur. Éprouvé de bout en bout sur un banc WordPress local et sur notre propre VPS — pas encore déployé sur la boutique d’un client payant.
Stack technique
- WordPress
- WooCommerce
- Woodmart
- Supabase
3
Éditions
138
Tests d’API
Par domaine
Modèle de licence
Enjeu
Une recherche à crédits ne fonctionne que si les données des candidats restent réellement derrière la barrière payante — profils masqués, vrai coût de déblocage, visibilité côté administration sur qui achète l’accès — tout en gardant chaque CV en local, sans aucun appel à une API d’IA.
Solution
Un plugin WordPress avec profils masqués, déblocage à 1 crédit, statistiques et historique côté administration, et rapprochement CV-offre dans les éditions supérieures, qui fonctionne entièrement sur des données locales. Une passe ultérieure a ajouté une licence Ed25519 par domaine — le même système que celui construit pour PRO STEP — avec trois verrous de contrôle, si bien qu’une installation revendiquant une édition supérieure à sa clé est invalide au lieu d’être promue. Validé en conditions réelles sur un domaine de préproduction, avec 138/138 tests d’API et 6/6 tests de bout en bout réussis.
Stack technique
- WordPress
- MySQL
- REST API
1.2.3
Version
15
Points d’appel de l’agrégateur unifiés
1 800 €
Chiffre d’affaires sous-compté corrigé
Enjeu
Le total du chiffre d’affaires devait déduire correctement les remboursements au lieu de les ignorer, dédoublonner les lignes resynchronisées du tableur sans supprimer une vraie vente, et exposer la route de vidage du cache sans divulguer le jeton de synchronisation qui traînait dans l’historique git du plugin.
Solution
Les remboursements sont désormais déduits du total du chiffre d’affaires dans chaque chemin d’affichage et de rafraîchissement automatique qui le calcule ; le dédoublonnage a été déplacé vers un point de passage unique, partagé par les 15 points d’appel de l’agrégateur, ce qui corrige un bug ayant silencieusement supprimé 1 800 € de réservations réelles ; et la route REST de vidage du cache vérifie maintenant le jeton de synchronisation par une comparaison à temps constant au lieu d’une simple comparaison de chaînes.
Stack technique
- WordPress
- Google Sheets API
- Ringover API
- REST API
93
Tests
100/100
Suite d’évaluation interne
0
Dépendances
Enjeu
Les agents de code IA arrondissent les nombres, inventent des dates et gonflent le nombre de tests dans les textes qu’ils écrivent sur leurs propres modifications, et tous les vérificateurs d’affirmations du marché font tourner un second modèle pour contrôler le premier — ce qui ajoute un coût et son propre mode de défaillance au lieu d’en retirer un.
Solution
Un vérificateur déterministe, sans aucune dépendance : il extrait les affirmations vérifiables d’un texte, confronte chacune au diff, à une valeur mesurée (commande, fichier ou JSON) ou à la sortie de la suite de tests, et se termine en erreur en cas de contradiction — sans second modèle, sans clé d’API. Publié sur npm et sur le VS Code Marketplace, avec 93 tests et un score de 100/100 sur sa propre suite d’évaluation.
Stack technique
- Node.js
- CLI
- GitHub Actions
33
Indicateurs suivis
v10
Référentiel
Enjeu
Le référentiel v10 porte le nombre d’indicateurs à 33 pour les audits à partir du 1er novembre 2026, chacun avec sa propre preuve, actualisée à son propre rythme.
Solution
État des preuves par indicateur, compte à rebours avant l’audit, liste de priorités et veille réglementaire sur les indicateurs les plus touchés par le nouveau décret (23–26). Démo sur demande.
Stack technique
- Node.js
- Supabase
Factur-X (EN 16931)
Format
Pas une PDP
Rôle d’AINS
Enjeu
La réforme française de la facturation électronique impose un format structuré conforme à la norme EN 16931 ; le CRM d’un organisme de formation n’en produit pas un de lui-même.
Solution
Les données de devis et de factures sont converties en XML CII Factur-X validé, intégré dans un PDF/A-3, puis transmis à la plateforme certifiée (PDP) du client — AINS ne devient jamais une PDP. Démo sur demande.
Stack technique
- Python
E.164
Format des numéros
Par identifiant d’appel
Gestion des doublons
Enjeu
Les appels passés depuis les outils de téléphonie n’arrivent jamais dans le CRM : les équipes commerciales ou d’admission travaillent avec un historique de contact incomplet.
Solution
Durée, issue et lien d’enregistrement consignés pour chaque appel, webhooks en double écartés par identifiant d’appel, et numéro illisible orienté vers une branche de vérification au lieu de créer des données erronées. Démo sur demande.
Stack technique
- n8n
Synthétiques
Données
Sur demande
Accès
Enjeu
Un prospect ne peut pas juger un tableau de bord sur une capture d’écran ; il doit le voir afficher des chiffres réalistes et réagir aux saisies.
Solution
Un tableau de bord fonctionnel derrière une connexion, alimenté par des données synthétiques et présenté en direct lors d’un appel. Démo sur demande — aucune URL publique ni aucun identifiant n’est communiqué.
Stack technique
- Next.js 16
- Supabase
La prochaine ligne, ce sera la vôtre.
Briefer la flotte →