---
title: "ZEvent 2026 : d'un dossier vide à une LAN vivante en 48 heures"
subtitle: "107 commits, 19 pull requests, 4 mises en production et 32,9 M€ collectés — le récit reconstitué depuis le dépôt Git"
date: 2026-09-10
time: "10:45"
author: Synthèse VFG
status: pub
tags: ["zevent", "universe", "three-js", "temps-reel", "non-technique"]
---

Le 5 septembre 2026 à 10h21, le dépôt de code du ZEvent — le marathon caritatif Twitch — ne contient qu'un fichier de présentation et quelques documents de projet. À côté, sur le disque, trois maquettes qui ne se parlent pas entre elles : un tableau de bord de données, une vue « classe et piste », une scène 3D. Chacune sait faire une chose ; aucune ne sait faire les autres. L'événement commence dans deux jours.

Le 7 septembre à 2h45 du matin, l'événement caritatif s'achève sur un total de **32 891 874 €** collectés — soit **197,4 % du record de l'édition précédente**. Entre les deux dates : 107 commits, 19 propositions de modification, 4 mises en ligne successives, et une application unique — baptisée **Universe** — qui a tenu la charge du direct jusqu'au bout.

## La première décision n'était pas graphique

Avant même de dessiner quoi que ce soit à l'écran, la toute première ligne de code du projet répond à un problème purement statistique : comment équilibrer un flux d'événements entre des centaines de participants qui n'ont rien de comparable en taille ? Si l'on affiche tout dans l'ordre d'arrivée pur, les plus gros noient les autres. Ce mécanisme d'équilibrage, écrit avant même l'interface, a survécu à toutes les refontes qui ont suivi — c'est aujourd'hui l'un des morceaux les plus stables du projet, et il a fini par rejoindre le socle réutilisable *vfg-kit*.

## Trois plans, une seule décision

Fait rare : au lieu de choisir une direction dès le départ, le projet a démarré avec trois plans de fusion concurrents, rédigés en parallèle sous trois angles différents, puis comparés. Aucun n'a été jeté — les trois sont conservés dans le dépôt. Ce qui en est ressorti a structuré tout le reste : une seule source de vérité pour l'interface, un contrat clair entre le serveur et l'application, et une règle simple — les anciennes maquettes s'archivent, elles ne se suppriment jamais. Cette dernière règle a un coût (le projet garde un peu de poids mort), mais elle a évité une perte de travail à deux reprises dans les 48 heures qui ont suivi.

## Le jour où les raccourcis ont sauté

En milieu de premier jour, l'équipe réalise que l'application va chercher ses données via des services tiers gratuits, pensés pour contourner des restrictions techniques en phase de test. Ça fonctionne très bien en démonstration. Ça ne tiendrait pas un samedi soir de ZEvent, quand des centaines de personnes rechargent la page en même temps. Ces raccourcis sont retirés et remplacés par une vraie connexion directe au serveur, avec un principe qui s'est révélé décisif pour la suite : l'application sait fonctionner en **mode démonstration autonome**. Serveur éteint, elle continue d'afficher une scène crédible et animée. Grâce à ce filet de sécurité, chaque évolution graphique a pu être testée et affinée sans dépendre d'un serveur toujours actif.

## Le bug qui a failli tout noyer

La veille de la bascule finale en production, un test dans le vrai navigateur — et non une simple relecture de code — révèle un problème sérieux : un pourcentage utilisé pour dimensionner les effets visuels de la scène n'était pas correctement plafonné. Au lieu de rester borné, il pouvait légèrement dépasser sa limite. Conséquence concrète : des halos lumineux et des effets censés mesurer quelques unités atteignaient parfois plus de deux cents unités de taille — l'équivalent d'un voile ambre opaque recouvrant toute la scène. Le correctif a été identifié et vérifié directement dans le navigateur, avec les bonnes proportions mesurées avant la mise en ligne définitive.

## La mise en production

Une fois la bascule effectuée, toutes les vérifications sont passées au vert : la page d'accueil répond normalement, les anciennes versions restent accessibles en secours, l'application servie correspond bit pour bit à celle validée en test. Une commande de retour arrière était prête, au cas où — elle n'a pas eu besoin de servir.

L'application finale, **Universe**, affiche une scène 3D vivante — une montagne dont la hauteur suit les dons en temps réel, des rangées d'étoiles représentant les centaines de participants, un salon de discussion public, un flux des dernières contributions — le tout mis à jour en direct pendant les 72 heures du direct, sans interruption majeure.