Vercel a lancé Next.js 16.3, faisant passer Turbopack et le Partial Prerendering du rayon expérimental au mode prêt pour la production. La mise à jour promet des builds deux à cinq fois plus rapides pour les applications de taille moyenne et des vitesses de chargement de page réduisant le Time to Interactive de 40 à 60 % — un gain que toute équipe pressée de déployer des fonctionnalités remarquera.

Pourquoi ce changement est important maintenant

Next.js s'est longtemps appuyé sur Webpack, un bundler JavaScript écrit en JavaScript, pour les builds de développement et de production. Au cours de l'année écoulée, l'équipe de Vercel a perfectionné Turbopack, un remplaçant basé sur Rust qui réduit l'utilisation de la mémoire et accélère les builds. Parallèlement, ils ont testé le Partial Prerendering (PPR) comme moyen de mélanger du HTML statique avec du contenu dynamique à la volée, mais les développeurs devaient le traiter comme une « expérience optionnelle ». En les promouvant tous deux au statut stable, Vercel offre aux équipes de production une mise à niveau de performance prête à l'emploi, sans les tâtonnements habituels.

Turbopack passe en version stable

  • Vitesse : Les builds de production sur les dépôts de taille moyenne sont désormais deux à cinq fois plus rapides.
  • Mémoire : Il réduit la pression sur la mémoire des bases de code volumineuses.
  • Activation : Ajoutez turbo: true à next.config.js et le tour est joué.

Le compromis est un environnement plus strict. Turbopack nécessite Node 18.17 ou une version ultérieure, et les plugins Webpack personnalisés sur lesquels reposent les projets ne fonctionneront pas sous Turbopack. Les équipes disposant de pipelines de plugins étendus devront auditer ou réécrire ces extensions avant de faire le changement.

Les Server Actions bénéficient d'une expérience plus fluide

Les Server Actions — des fonctions qui s'exécutent sur le serveur mais sont appelées depuis le client — bénéficient désormais d'une intégration TypeScript plus étroite. Le compilateur infère les types automatiquement, ce qui permet aux développeurs de supprimer les annotations de type écrites à la main. Il comprend également les objets imbriqués et les schémas Zod de bout en bout, réduisant ainsi les incohérences au moment de l'exécution. De nouvelles conventions de système de fichiers rendent la résolution des actions explicite, aidant les développeurs à éviter les bugs subtils causés par des imports ambigus.

Le Partial Prerendering (PPR) est prêt pour la production

Le PPR permet à une seule page de servir du HTML statique pour les parties qui ne changent jamais, tout en hydratant les sections dynamiques séparément. Le marquage statique s'affiche instantanément ; une récupération en arrière-plan donne ensuite vie aux éléments interactifs. Cette approche améliore le Time to Interactive (TTI) de 40 à 60 %.

L'implémentation du PPR est simple : marquez les parties statiques avec l'API de génération statique existante, et laissez les éléments dynamiques basculer sur le rendu côté client. Comme le HTML statique arrive sous la forme d'un document complet, le navigateur peut commencer le rendu avant l'exécution de n'importe quel JavaScript, boostant ainsi la performance perçue sur les réseaux lents.

Autres ajustements notables

  • Optimisation des images : fetchPriority peut désormais être défini sur les images LCP (Largest Contentful Paint), garantissant que le navigateur récupère l'image principale en premier.
  • Gestion des polices : next/font crée automatiquement des sous-ensembles de caractères, réduisant la taille de la charge utile sans configuration supplémentaire.
  • Middleware : Le moteur de correspondance a été réécrit en Rust, offrant des vérifications de routes plus rapides. Le middleware peut également renvoyer des réponses HTML complètes, ouvrant la voie aux pages rendues à la périphérie (edge-rendered).

Étapes immédiates pour les équipes

  1. Activez Turbopack en développement ; il fonctionne de la même manière en production une fois le flag turbo configuré.
  2. Mettez à jour Node vers la version 20 ou supérieure.
  3. Examinez les Server Actions pour profiter de l'inférence de type ; supprimez toutes les annotations manuelles désormais redondantes.
  4. Pilotez le Partial Prerendering sur une seule route à fort trafic pour mesurer l'amélioration du TTI avant un déploiement sur l'ensemble du site.

Avertissements et contre-arguments

Les gains de performance dépendent du respect des nouvelles exigences d'exécution. Les projets bloqués sur d'anciennes versions de Node ou fortement dépendants de plugins Webpack personnalisés rencontreront des difficultés.

En résumé : Next.js 16.3 met à la disposition des développeurs un bundler de qualité production propulsé par Rust et une méthode éprouvée pour mélanger contenu statique et dynamique. Adoptez les nouvelles configurations par défaut dès maintenant, corrigez les écarts de compatibilité, et vous verrez des builds se terminer plus rapidement et des pages devenir nettement plus réactives pour les utilisateurs finaux.