Skip to content
12Étude de casSW · 12 sur 10

Un site de marque maintenu quatre ans sans réécriture, pour une OSC sans équipe web.

Une OSC humanitaire européenne a explosé du jour au lendemain début 2022. Nous avons bâti leur site public en deux semaines, puis passé quatre ans à n'y toucher presque pas. Cette retenue était le vrai travail.

ClientConfidentiel
Année2022 — 2026
Durée5 yrs
StackTypeScript · Next.js · React · Vercel
Hero image for humanitarian-aid-brand-siteFig 01 · Hero

Un site pour une organisation dont le métier n'est pas le site.

Le client est une petite OSC humanitaire européenne qui, après février 2022, est passée d'un réseau de la diaspora à une opération d'aide active. Au moment où nous avons commencé, elle coordonnait la livraison de fournitures, l'hébergement de personnes déplacées et l'équipement des intervenants de première ligne. Le site web était le dernier des soucis de tous — et c'était exactement la bonne priorité.

Pas d'équipe web. Pas de chef de produit. Personne dont le métier était d'écrire des tickets, de valider la copie ou de piloter un CMS. Le brief n'était pas un brief produit. C'était un brief d'infrastructure : donnez-nous une vitrine publique qui réponde à la question « qui êtes-vous et comment puis-je aider ? », puis ne nous obligez plus jamais à y penser.

Cette contrainte a façonné chaque décision qui a suivi.

Deux semaines. Bilingue. Sans CMS.

Nous avons livré le site initial en deux semaines environ, calé sur l'effort opérationnel de mi-2022. Next.js sur Vercel, Tailwind CSS, React. Bilingue dès le premier jour — anglais et la langue native de l'organisation — via le routage i18n natif de Next.js, sans bibliothèque tierce.

Le choix de contenu était délibéré : pas de CMS. Pas de Sanity, pas de Contentful, pas de Strapi. Tout le contenu — descriptions de projets, listes de partenaires, domaines d'action, paliers de don — vit dans des objets TypeScript typés sous /data/<locale>/, versionnés aux côtés du code. Mettre à jour la copie est un commit git. Il n'y a pas de connexion, pas d'interface d'édition, pas de pipeline de déploiement sur lequel il faudrait former l'équipe.

Nous avons aussi laissé de côté : bibliothèques d'animation, routes API, base de données à l'exécution, couche de limitation de débit, surface d'authentification sur mesure. Rien de tout cela n'était nécessaire. Le flux de don part hors site vers des rails de don dédiés. Le rôle du site est d'informer et d'orienter, pas de transiger.

Génération statique de bout en bout. Le build produit du HTML. Vercel le sert. La seule chose qui puisse mal tourner, c'est un build qui échoue — et les builds ne réveillent personne à 3 h du matin.

F · 01Site statique bilingue
Anglais et langue native de l'organisation dès le premier jour. Routage i18n natif de Next.js, parité complète du contenu, aucune bibliothèque i18n tierce.
F · 02Le contenu comme code
Toute la copie vit dans des objets TypeScript typés sous /data/<locale>/, versionnés. Pas de connexion CMS, pas d'interface d'édition, pas de pipeline de déploiement à apprendre.
F · 03Génération statique de bout en bout
Chaque page pré-rendue au moment du build. Pas de routes API, pas de base de données à l'exécution, pas d'astreinte pour l'infrastructure.
F · 04Deux majeures de Next.js traversées
La base de code est passée de Next.js 12 à 14 à 16 sans réécriture. Des choix de stack qui vieillissent bien.
F · 05Mode sombre via classe CSS
Zustand garde l'état du basculement ; localStorage le persiste. Pas de clignotement au rechargement. Aucune bibliothèque de thème tierce.
F · 06Zéro réécriture en quatre ans
L'architecture esquissée lors du sprint initial est l'architecture en production aujourd'hui.

Douze mois de silence, puis un unique commit.

Après le sprint initial : le silence. D'août 2022 à mai 2023, la base de code n'a reçu aucune modification. Le site a tenu. L'organisation acheminait de l'aide. C'était l'état des choses correct.

Juin 2023 : un commit. Analytics. Juillet 2024 : neuf commits. Un petit sprint de maintenance — mise à niveau de Next.js, remplacement d'une bibliothèque de carrousel, hygiène des dépendances. Rien de structurel.

Mars-avril 2026 : la refonte actuelle. Rafraîchissement du design, passe complète sur mobile, migration vers Tailwind v4, améliorations SEO. La base de code a traversé deux majeures de Next.js — de la 12 à la 14 à la 16 — sans réécriture.

240 commits sur quatre ans. Le motif en rafales est honnête : l'essentiel du travail a eu lieu au début, puis à la fin. Le long milieu, c'était le site qui fonctionnait.

La juste dose d'ingénierie pour une OSC est celle qui disparaît.

Le site n'a pas été un problème auquel l'organisation a dû penser. C'est ça, le résultat. Pas un taux de conversion, pas un taux de rebond — l'absence du site en tant que source de friction.

La même base de code livrée en 2022 est celle en production aujourd'hui. La même équipe qui l'a construite la maintient. Pas de traumatisme de migration, pas de conversation du type « il faut reconstruire ça sur une stack moderne », parce que la stack a été choisie avec assez de soin pour rester moderne sans intervention constante. Bun a remplacé Node comme runtime. Biome a remplacé ESLint et Prettier. Tailwind v4 a remplacé la v3. Tout cela a été additif — aucune dette architecturale à démêler.

Quatre ans. Deux majeures de Next.js traversées (12 → 14 → 16). Zéro réécriture. 240 commits. Une seule équipe.

Citation / 04
Le site n'a pas été un problème auquel nous avons dû penser.
DirecteurOSC humanitaireEurope
Outcome
Initial sprint
~2 weeks
Years in production
4
Next.js majors crossed
2 (12 → 14 → 16)
Commits over four years
240
NEXTÉtude de cas 13SW · 13 sur 10
E-commerce2026

Le commerce sur mesure pour un marché qui exige sa propre stack.