J’arrive sur Orient Express en août 2024, pendant que le lead dev est en vacances. Je pose l’architecture et je démarre seul. Quand il revient, il est pris sur d’autres projets et me laisse la place. Je ne serai jamais lead sur le papier ; je le serai en pratique jusqu’à mon départ en 2025, avec trois développeurs front dont je répartis le travail et relis le code.
La reprise
La plateforme réunit trois univers sous un même système : les trains, les hôtels, les yachts. Chacun a son identité et ses parcours de réservation, et tout tient sur une seule base de composants.



Pour la construire, nous avons repris l’architecture du Louvre. Un front headless, une API qui renvoie un arbre de composants, des gabarits composables côté contribution. Je venais de passer quatre ans dedans ; je savais ce qui marchait, et je savais surtout ce qui coûtait cher.
- Next.js
- Drupal headless
- TypeScript
- JSON Schema
- Storybook
Ce que j’ai enlevé
Sur le Louvre, on pouvait imbriquer sans limite. Un dropdown dans un drawer, un drawer dans un dropdown, aussi profond que la contribution le voulait. C’était la fonctionnalité, et c’était puissant. C’était aussi une charge mentale considérable pour l’équipe qui devait tenir tout ça en tête.
Sur Orient Express, j’ai plafonné la composition à un seul niveau. Un enfant dans un enfant, pas plus.
Contrat component.schema.json
{ "properties": { "type": { "enum": ["page", "section", "card", "dropdown"] }, "children": { "type": "array", "items": { "$ref": "#/$defs/leaf" } }une feuille. Elle n'a pas d'enfants.} }
API
{ "type": "page", "children": [{ "type": "section", "children": [{ "type": "card", "children": [{ "type": "dropdown" }refusé]}]}]}
Front
C’est la décision dont je suis le plus content, et c’est une décision de retrait. Refaire le système illimité était à ma portée ; j’ai choisi de ne pas le faire.La flexibilité a un prix. Il est payé par les gens qui maintiennent, et il ne se voit pas dans une démo.
Ce que j’ai automatisé
J’avais écrit un script de génération de composants. Sur Orient Express, il est en place dès le premier jour. Chaque nouveau composant naît donc conforme : schéma, story Storybook, structure. Personne n’a à se rappeler la convention, elle est produite par l’outil.
Nous avons aussi repris les layouts et les formulaires, correctement typés cette fois. Un front piloté par les données a toujours le même point faible, et c’est le formulaire.
Ma place dans l’équipe
L’équipe comptait deux développeurs back, deux chefs de projet, le lead dev et moi, puis trois développeurs front. Je passais autant de temps avec les back et la gestion de projet qu’avec le front, parce que les décisions qui coûtent cher se prennent à la frontière entre les couches, rarement à l’intérieur.
Ce n’était pas un rôle et personne ne me l’a confié. C’est là que j’étais utile.
Ce que ça prouve
Le site a continué d’évoluer un an après mon départ. C’est le seul test qui compte pour une architecture : est-ce qu’elle survit à celui qui l’a posée.
Je n’ai jamais été lead sur le papier. L’architecture, le plafond sur la composition, l’outillage qui rend chaque nouveau composant conforme d’office : rien de tout ça n’a eu besoin de mon titre, et au bout du compte rien n’a eu besoin de moi.

