Le commit de Noel
L’histoire de la première ligne de code et pourquoi personne n’a dit "attendons janvier".
25 décembre 2025. 23h47. Pendant que le reste de la maison débattait pour savoir si Die Hard est un film de Noël (il l'est, et ce point n'est pas négociable), quelqu'un a ouvert un terminal et tapé :
npx create-next-app@latest revend
Le premier commit a eu lieu à 23h52. Il contenait un squelette Next.js, un layout par défaut et une hero section qui disait "The Operating System for ITAD." La hero section serait réécrite le lendemain matin. Puis encore le jour suivant. Puis environ quarante-sept fois de plus dans les mois suivants. S'il y a une constante en développement logiciel, c'est que la première version de la hero section n'est jamais la dernière.
Pourquoi le jour de Noël
Pas par urgence. Pas à cause d'une deadline. Parce que l'idée tournait depuis des mois, et qu'à un moment soit vous commencez, soit vous ne commencez pas. Le jour précis compte moins que le fait d'avoir commencé. Le 25 décembre vaut bien n'importe quel autre jour. Mieux, en fait, parce que personne n'envoie d'e-mails à Noël, et cette absence crée une rare poche de concentration dans laquelle tout un scaffold projet peut naître.
L'idée derrière ReVend OS n'était pas compliquée : les opérations ITAD tournent sur des outils qui n'ont pas été construits pour l'ITAD. Des ERP qui ne comprennent pas les palettes. Des bases FileMaker qu'une seule personne peut modifier. Des feuilles Excel qui servent de colonne vertébrale à un marché secondaire de plusieurs milliards d'euros. Des groupes WhatsApp qui fonctionnent comme des trading floors. Tous les opérateurs ITAD le savent. Tout le monde au bar de la conférence est d'accord. Personne n'avait construit l'alternative.
L'écart entre "tout le monde est d'accord que cela devrait exister" et "quelqu'un le construit vraiment" se mesure en années et en excuses. Le Christmas commit a mis fin aux excuses.
Ce qui est venu après
Janvier était laid. Le prototype avait une sidebar, un dashboard et un dark mode. Il ressemblait à tous les autres templates SaaS d'internet. Il fonctionnait correctement. Il n'avait absolument aucune personnalité. Mais il prouvait le concept : on pouvait construire une seule interface qui suit les assets, gère les warehouses, prend en charge le grading et se connecte au flux commercial. Pas quatre outils séparés. Un seul.
Février fut le grand nettoyage. Nettoyage de code, mises à jour de dépendances, suppression de décisions prises à 2h du matin qui semblaient brillantes à 2h du matin mais ne l'étaient pas. La dette technique qui s'accumule dans les premières semaines d'un projet quand la vitesse compte plus que la structure. Février est le moment où la structure a rattrapé.
Mars est devenu réel. La base de données s'est éveillée. Les mock data ont cédé la place à de vraies tables, de vraies requêtes, de vraies relations de clés étrangères. Les assets ont reçu des numéros de série persistants. Les grades ont reçu de la structure. Les warehouses ont reçu des zones. La plateforme a cessé d'être une démo et a commencé à devenir du logiciel.
La philosophie de versioning
Chaque version a reçu un sous-titre. Pas parce que c'est nécessaire, mais parce que nommer les choses vous force à articuler ce qui a changé et pourquoi cela compte. "The Warehouse" (v0.2.0) concernait les premières vues terrain. "Assembly Line" (v0.3.0) concernait les workflows de test. "The Database Awakens" (v0.16.0) concernait la migration des mock data vers Postgres. "The Great Migration" (v0.20.0) concernait l'achèvement de ce que v0.16.0 avait commencé.
Le changelog se lit comme un roman. Pas parce que nous sommes précieux, mais parce qu'un changelog devrait raconter l'histoire d'un produit. Ce que nous avons construit. Pourquoi nous l'avons construit. Ce que nous avons appris en le construisant. Si vous ne pouvez pas expliquer votre changelog à un client, vous ne pouvez pas expliquer votre produit.
Ce que nous avons appris
Commencer est facile. Continuer est difficile. Le Christmas commit a pris cinq minutes. Les trois mois suivants ont pris tout le reste. L'engagement n'est pas dans la première ligne de code. Il est dans le 500e commit, quand le travail n'est plus nouveau ni excitant mais simplement nécessaire, et que vous le faites quand même parce que le problème que vous résolvez n'a pas disparu.
L'industrie ITAD tourne encore sur des spreadsheets. Les groupes WhatsApp ont encore 187 membres. Les stock lists sont encore obsolètes le jeudi. Les auditeurs arrivent encore pour trouver la documentation dans quatre systèmes différents. La FileMaker tax est encore payée. Rien dans le problème n'a changé. Ce qui signifie que tout dans la solution reste nécessaire.
25 décembre 2025. Un terminal. Une commande. Un message de commit disant "initial commit", parce que chaque projet commence par "initial commit" et personne n'a jamais trouvé de meilleur nom pour le début de quelque chose.
La hero section disait "The Operating System for ITAD." Elle a été réécrite le lendemain matin. Certaines choses ne changent jamais en logiciel. Commencer en fait partie.