Sortir de Next.js : le coût de sortie mesuré
Une méthode pour inventorier ce qui vous attache à Next.js, chiffrer la sortie en jours plutôt qu'en opinions, et garder ce coût bas sans quitter le framework.
Par Elias Varen6 min de lectureMembres
« On pourra toujours en sortir, c'est du React. » J'ai dit cette phrase. Elle est vraie pour à peu près la moitié du code d'une application Next.js, et la moitié pour laquelle elle est fausse porte le routage, les données et le déploiement.
Je n'ai pas l'intention de quitter Next.js, mais je veux connaître le prix de la porte. Une dépendance dont on ignore le coût de sortie relève de la situation subie plus que du choix. Et ce prix se négocie tous les jours, au moment d'écrire le code, bien avant le jour où l'on décide de partir.
Cinq niveaux d'adhérence au framework
Tout ce qu'on importe du framework n'attache pas de la même manière. Je classe en cinq niveaux, du plus léger au plus lourd.
| Niveau | Exemples | Ce que coûte le remplacement |
|---|---|---|
| 1. Composants utilitaires | Lien, image, polices, script | Mécanique : un composant équivalent, un rechercher-remplacer |
| 2. Conventions de fichiers | Arborescence de routes, layouts, pages d'erreur et de chargement, métadonnées | Réécriture de la table de routage, structure conservée |
| 3. API d'exécution | Lecture des cookies et headers, redirections, middleware, gestionnaires de routes | Réécriture ciblée, logique à re-tester |
| 4. Modèle de rendu | Server Components asynchrones, Server Functions, streaming | Changement d'architecture : il faut une API et un cache côté client |
| 5. Sémantique de cache et d'hébergement | Revalidation par tag, régénération incrémentale, optimisation d'images à la volée | Fonctionnalité à reconstruire ou à abandonner |
Les niveaux 1 à 3 se chiffrent en jours et se font par lots. Le niveau 4 se chiffre en semaines et touche chaque écran. Le niveau 5 ne se migre pas, il se remplace par une décision d'infrastructure.
À lire ensuite
Toute la rubrique WebWeb
Vite, Rolldown, Turbopack : migrer une grosse base
Les pièges qui n'apparaissent qu'au-delà de quelques milliers de modules quand on change de bundler, et la méthode pour basculer sans découvrir les différences en production.
7 minMembres
Web
Server Components : le modèle mental et la facture
Ce que la frontière serveur/client découpe réellement, ce qu'elle coûte en octets, en CPU et en couplage, et le critère pour savoir si votre application y gagne.
7 minLecture libre
Web
Sérialisation serveur : ce que le framework expose à votre place
Pourquoi le protocole entre composants serveur et client est une surface d'attaque située avant votre code, et les décisions de conception qui limitent ce qu'une faille du framework peut atteindre.
7 minMembres