Les coulisses du site
Ce site fait partie de mon dossier autant que son contenu. Son code, ses tests et ses décisions sont publics : voici comment il est construit, et ce qui l’empêche de se dégrader.
Mesuré à l’instant, dans votre navigateur
Ces chiffres ne viennent pas d’un laboratoire : votre navigateur les a mesurés en chargeant ce site.
- Premier affichage
- Mesure en cours
- Plus grand élément affiché
- Mesure en cours
- Seuil de la CI : 2 000 ms
- Décalage de la mise en page
- Mesure en cours
- Seuil de la CI : 0,050
- JavaScript téléchargé, compressé
- Mesure en cours
- Fichiers demandés
- Mesure en cours
Ce que la CI refuse
Chaque modification passe par une pull request, et la CI la bloque si l’un de ces contrôles échoue.
Un type approximatif
TypeScript strict : aucun « any », aucun « unknown », aucune assertion de type. Ce qui entre de l’extérieur (adresse, stockage, formulaire) passe par un schéma Zod.
Un avertissement
Oxlint puis ESLint avec le typage, sans un seul avertissement. L’architecture en features et le sens des imports sont imposés par le lint.
Du code mort
Knip sur tout le dépôt, puis sur le seul code livré : aucun fichier, export ou dépendance inutile.
Une régression
Tests unitaires dans Node, composants dans un vrai Chromium, parcours Playwright sur 5 appareils. Au moins 90 % des lignes et 85 % des branches couvertes.
Une barrière d’accessibilité
axe sur chaque page, dans les deux thèmes (WCAG 2.2 AA), et un score Lighthouse d’accessibilité de 100.
Du poids en trop
JavaScript initial sous 125 Ko et CSS sous 15 Ko, compressés. Lighthouse : performance d’au moins 95, plus grand affichage sous 2 s, blocage sous 150 ms.
Les décisions
35 décisions d’architecture, chacune avec son contexte, son choix et les alternatives écartées. Parmi elles :
- pré-rendre chaque page au build, pour que le contenu s’affiche sans attendre le JavaScript ;
- animer en CSS natif, sur le compositeur, sans bibliothèque ;
- mettre la langue dans l’adresse, une page par langue ;
- faire la course des deux cycles de calcul à l’échelle, plutôt qu’un faux calcul.