Les coulisses du site
Sur cette page
Cette page est le colophon de pirmax.fr : comment ce site est construit, avec quels outils et par qui. Je dirige l’équipe d’agents d’IA qui construit ce site. Les versions citées plus bas datent du 28 octobre 2026.
Qui construit ce site
Je n’ai pas écrit le code de ce site moi-même : il n’est donc pas un échantillon de mon code. Pour voir mon travail de développeur, ouvrez plutôt mes projets.
Au 28 octobre 2026, l’équipe compte sept agents, chacun dans son rôle :
- un assistant, qui coordonne l’équipe et me transmet les questions ;
- un développeur fullstack et un développeur frontend ;
- un designer UI/UX ;
- un expert SEO et IA ;
- un agent QA, qui relit et teste le travail des autres ;
- un rédacteur-biographe, qui a écrit cette page.
Chaque tâche devient un ticket. L’agent qui la prend travaille sur sa propre branche et ouvre une pull request, qu’un autre agent relit avant qu’elle rejoigne le site. Les décisions me reviennent : j’ai choisi la direction artistique parmi trois pistes, j’ai fixé le ton et j’ai décidé de ce qui se dit ou non. Pour écrire les textes, les agents m’ont interviewé, et les textes des pages passent par moi avant d’être publiés.
Côté outils, AgentsRoom orchestre l’équipe, et la plupart des agents tournent sur Claude Code. J’utilise aussi Claude Code pour coder : il figure avec mes autres outils sur ma page Uses.
Les mentions légales le disent en une ligne : « Conception et direction : Maxence Rose, avec une équipe d’agents d’IA qu’il dirige. » Ce que je pense de cette façon de travailler, je l’ai écrit dans mon avis sur l’IA et le vibe coding.
La pile technique
| Rôle | Outil | Version |
|---|---|---|
| Framework | Next.js (App Router) | 16.4.2 |
| Interface | React | 19.3.1 |
| Langage | TypeScript | 7.0.2 |
| Styles | Tailwind CSS | 4.3.3 |
| Composants | shadcn/ui | 4.22.0 |
| Composants accessibles, sous shadcn/ui | Base UI | 1.9.0 |
| Icônes | Lucide | 1.59.0 |
| Traductions | next-intl | 4.14.9 |
| Contenus longs | MDX, validé par Zod | 16.4.2 (@next/mdx), 4.6.7 (Zod) |
| Lint et formatage | Biome | 2.5.15 |
| Images | sharp | 0.35.5 |
| Environnement | Node.js et pnpm | 24.x et 12.14.0 |
Les composants viennent de shadcn/ui : on les copie dans le projet au lieu de les installer, puis on les adapte. Ici, ils suivent la direction artistique du site, pensée pour le clavier : une palette de commandes sur l’accueil, des raccourcis, et une seule police, Recursive, hébergée sur le site. Ce que je fais moi-même avec shadcn/ui, sur mes propres projets, est sur ma page de développeur shadcn/ui.
Aucun texte n’est écrit en dur dans le code : tout passe par des fichiers de traduction, en français pour l’instant. Les contenus longs (projets, parcours, cimetière, articles et cette page) sont des fichiers MDX, vérifiés par un schéma à chaque construction du site.
Hébergement et domaine
Le site est hébergé chez Vercel, avec des fonctions dans la région de Paris. Le nom de domaine pirmax.fr existe depuis le 20 octobre 2011 ; il est enregistré chez OVHcloud. Le code source du site n’est pas public.
La mesure d’audience passe par Vercel Web Analytics, sans cookie. Le formulaire de contact envoie ses messages avec Resend et écarte les robots avec BotID, sans cookie non plus. Renovate propose les mises à jour des dépendances une fois par mois, et les correctifs de sécurité dès leur sortie.
Ce qui est vérifié avant chaque mise en ligne
Rien ne rejoint la branche de production sans une vérification automatique, sur GitHub Actions : Biome, les types TypeScript, le schéma des contenus, le contrôle des images, puis la construction complète du site. La règle « CI obligatoire sur main » de GitHub refuse la fusion tant que cette vérification manque ou échoue. Personne ne peut la contourner, moi compris. Vercel ne déploie que cette branche et refait le build à chaque mise en ligne.
Le reste tourne en local, avant chaque fusion intermédiaire :
- Les tests de bout en bout, avec Playwright 1.64.1 : chaque page répond et n’affiche aucune erreur dans la console ; au clavier, on voit toujours où est le focus ; aucune page ne défile en largeur sur un écran de 320 px ; aucun lien interne n’est cassé ; axe-core 4.14.0 analyse chaque page, en thème clair et en thème sombre.
- Lighthouse 0.15.1, sur mobile, dès que le code change : huit pages représentatives doivent atteindre 95 sur 100 en performance, en accessibilité, en bonnes pratiques et en référencement, avec 300 Ko d’images au plus. L’audit de toutes les pages se lance à la demande.
Les images
Chaque image du site passe par le même chemin. Toutes ses métadonnées sont retirées, coordonnées GPS comprises ; elle est réduite à 2 560 px au plus et convertie en WebP ; le site en tire ensuite des versions AVIF ou WebP à la bonne taille pour chaque écran. Une image sans texte alternatif, sans titre ou sans crédit bloque la construction du site.
Accessibilité
L’objectif est le niveau AA des WCAG 2.2. Le site se parcourt au clavier, avec un lien d’évitement et un focus toujours visible ; les raccourcis à une seule touche se coupent dans l’aide, et les animations respectent le réglage « réduire les animations » de votre système.
Le 23 octobre 2026, un audit RGAA 4.1 et WCAG 2.2 AA mené par l’agent QA n’a relevé aucun défaut bloquant, et quatre défauts mineurs, corrigés depuis. Un test avec un vrai lecteur d’écran reste à faire.
Référencement et IA
Chaque page a son titre, sa description, son image de partage et ses données structurées en JSON-LD. Le plan du site donne la date de la dernière modification réelle de chaque page, et les pages modifiées sont signalées aux moteurs par IndexNow.
Pour les assistants d’IA, le site publie un fichier /llms.txt, au format proposé par llmstxt.org, et sa version complète /llms-full.txt. La plupart des pages existent aussi en Markdown, à la même adresse suivie de .md.
Au moins treize versions avant celle-ci
pirmax.fr existe depuis 2011, et ce site en est au moins la quatorzième version. Les archives du Web gardent la trace d’au moins treize versions précédentes, dont :
- un Tumblr, en octobre 2011 ;
- le blog WordPress du Poulpe Rouge, de 2012 à 2015 ;
- en janvier 2015, un menu « Mes créations » dont les pages ne contenaient que du lorem ipsum ;
- une redirection vers YubiGeek, en juin 2015 ;
- un journal Paper.li, en septembre 2015 ;
- un agrégateur d’articles, puis une redirection vers RSSFlare, en 2016 et 2017 ;
- la page par défaut de l’hébergeur, en 2018 ;
- un portfolio en anglais, en août 2019 ;
- une page de liens, en octobre 2022 ;
- un blog Ghost, en mars 2023 ;
- un premier site en Next.js, en juillet 2024.
Le reste de l’histoire est dans mon parcours.