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.

    • 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 →