Badge builder

Passer d'une configuration en JSON à un éditeur drag and drop, sans changer une ligne du format de données.
Rôle
Direction design, prototype, architecture avec le CTO
Période
Mars à septembre 2024
Équipe
Le CTO, une designer et deux développeurs
Résultat
Une modification qui prenait 10 minutes en JSON en prend 2

Le contexte

Chez Eventmaker, chaque participant d'un salon ou d'un congrès repart avec un badge. Ces badges sont générés par badge-core, un moteur C++ développé en interne qui en a produit des millions. Il est robuste et rapide, mais il ne lit qu'un format : trois fichiers JSON (contenu, vue, style).

Créer un badge revenait donc à écrire du JSON. Les clients ne pouvaient pas être autonomes, les chefs de projet mettaient du temps à se former, et les développeurs étaient régulièrement sollicités.

Avant le builder : le style d'un badge s'écrit en JSON, élément par élément

Un premier design en 2022

En 2022, la designer de l'équipe a conçu sous ma supervision un premier builder, sur le modèle de nos builders d'emails et de sites. Le design était validé, mais il n'avait pas été développé. Les éléments se positionnaient en saisissant des coordonnées X et Y, sans aperçu en temps réel.

Le design de 2022 : position, taille et police se règlent dans des champs

Le projet est ensuite resté en attente. Quand il est revenu sur la table début 2024, prototyper dans le code ne demandait plus des semaines grâce à l'IA : pour un objet aussi visuel qu'un badge, je pouvais montrer quelque chose qui fonctionne plutôt qu'une nouvelle maquette.

Un prototype codé

En mars 2024, j'ai développé un prototype avec Fabric.js, une bibliothèque canvas open source qui gère le drag and drop, la sélection multiple et l'aperçu en direct. On pouvait déplacer, redimensionner et aligner les éléments, et le canvas produisait du JSON.

Le prototype Fabric.js de mars 2024 : déplacer, redimensionner, aligner

Pour vérifier la compatibilité avec l'existant, j'ai converti les trois fichiers d'un badge réel au format Fabric. J'ai présenté le tout dans un pitch, en posant la question que je ne pouvais pas trancher seul : que faire du moteur de rendu ?

La question du rendu

La réponse du CTO a recentré le problème. La conversion du JSON n'était pas la difficulté principale ; le rendu l'était. badge-core produit un PDF prêt à imprimer, Fabric dessine dans un canvas. Remplacer un moteur éprouvé par une conversion canvas vers PDF présentait des risques : multi-pages, polices, performances.

Nous avons abouti à une architecture plus solide que nos deux propositions initiales : badge-core pour le rendu, sans modification, Fabric.js pour l'édition, et un convertisseur entre les deux. L'éditeur se limite à ce que le moteur sait imprimer : pas de rotation dans un premier temps, par exemple.

Le format de données restait inchangé : les badges existants continuaient de fonctionner, et pouvaient être ouverts dans le nouvel éditeur.

Une semaine plus tard, un développeur avait validé l'approche : un texte placé dans le canvas apparaissait au même endroit dans le PDF.

Le même texte dans le canvas…
…et dans le PDF généré par badge-core

Du prototype au produit

La même designer a ensuite réalisé les maquettes de l'interface. Nous avons étudié les éditeurs de référence, Canva et Figma en tête, pour reprendre les gestes que les utilisateurs connaissent déjà : alignement, grille magnétique, raccourcis clavier, historique. Pour accélérer le développement, j'ai rassemblé des exemples et des extensions open source de Fabric.js que l'équipe a pu adapter.

Le nouveau builder est sorti en septembre 2024

L'usage, deux ans après

L'objectif de départ était l'autonomie des clients. Sur cinq semaines de l'automne 2026 :

  • 137 utilisateurs clients ont ouvert le builder, sur 165 événements, soit six fois plus que l'équipe interne
  • 58 % des événements où un client consulte ses badges passent par le builder

Sur la durée, la tendance est la même. D'après les analytics, le nombre d'utilisateurs clients qui ouvrent le builder chaque mois a presque doublé d'une rentrée à l'autre, et il a rattrapé l'ancien formulaire à modèles en octobre 2026 :

Utilisateurs clients par mois : badge builder et formulaire à modèles, avril 2025 à octobre 2026020406080100120140avr. 25juil. 25oct. 25janv. 26avr. 26juil. 26oct. 26Formulaire à modèles, avr. 2025 : 99 utilisateursFormulaire à modèles, mai 2025 : 96 utilisateursFormulaire à modèles, juin 2025 : 112 utilisateursFormulaire à modèles, juil. 2025 : 65 utilisateursFormulaire à modèles, août 2025 : 46 utilisateursFormulaire à modèles, sept. 2025 : 114 utilisateursFormulaire à modèles, oct. 2025 : 107 utilisateursFormulaire à modèles, nov. 2025 : 97 utilisateursFormulaire à modèles, déc. 2025 : 68 utilisateursFormulaire à modèles, janv. 2026 : 96 utilisateursFormulaire à modèles, févr. 2026 : 86 utilisateursFormulaire à modèles, mars 2026 : 89 utilisateursFormulaire à modèles, avr. 2026 : 81 utilisateursFormulaire à modèles, mai 2026 : 75 utilisateursFormulaire à modèles, juin 2026 : 105 utilisateursFormulaire à modèles, juil. 2026 : 55 utilisateursFormulaire à modèles, août 2026 : 54 utilisateursFormulaire à modèles, sept. 2026 : 121 utilisateursFormulaire à modèles, oct. 2026 : 95 utilisateursBadge builder, avr. 2025 : 17 utilisateursBadge builder, mai 2025 : 17 utilisateursBadge builder, juin 2025 : 27 utilisateursBadge builder, juil. 2025 : 22 utilisateursBadge builder, août 2025 : 19 utilisateursBadge builder, sept. 2025 : 58 utilisateursBadge builder, oct. 2025 : 81 utilisateursBadge builder, nov. 2025 : 67 utilisateursBadge builder, déc. 2025 : 46 utilisateursBadge builder, janv. 2026 : 44 utilisateursBadge builder, févr. 2026 : 50 utilisateursBadge builder, mars 2026 : 60 utilisateursBadge builder, avr. 2026 : 57 utilisateursBadge builder, mai 2026 : 49 utilisateursBadge builder, juin 2026 : 78 utilisateursBadge builder, juil. 2026 : 51 utilisateursBadge builder, août 2026 : 57 utilisateursBadge builder, sept. 2026 : 111 utilisateursBadge builder, oct. 2026 : 95 utilisateursBadge builderFormulaire à modèles
━ Badge builder   ━ Formulaire à modèles
Utilisateurs clients (hors équipe interne) qui ouvrent chaque outil dans le mois. Source : analytics produit, avril 2025 à octobre 2026.

Le JSON n'a pas disparu pour autant : l'équipe interne s'en sert encore pour les badges les plus complexes de grands salons ou de festivals, que le builder ne sait pas encore produire. C'est la limite que nous avions choisie au départ, et la suite logique du projet.

Ce que j'en retiens

Ce projet m'a confirmé qu'un prototype fonctionnel fait avancer une discussion plus vite qu'une maquette : le débat est passé de « est-ce faisable ? » à « comment le rendre fiable ? ». Et c'est en exposant ouvertement ce que je ne savais pas que nous avons trouvé la bonne architecture.

Équipe

  • Robin Monjo, CTO : badge-core et la question du rendu
  • David Huveau et Elena Verona, développement du builder
  • Nadia Tefridj, design du builder, de 2022 à la version livrée