Next.js ou React : entre quoi choisissez-vous vraiment ?
Next.js ou React n'est pas un choix entre deux bibliothèques concurrentes. Next.js est un framework construit sur React : chaque page Next.js est composée de composants React. La vraie décision se joue entre une application React monopage classique, généralement construite avec Vite, qui affiche tout dans le navigateur, et Next.js, qui peut générer les pages sur le serveur ou au moment du build et ajoute par-dessus le routage, le cache et un runtime serveur.
Cette différence décide de trois choses pour votre produit : si les moteurs de recherche et les assistants IA voient votre contenu, la rapidité ressentie lors de la première visite sur un téléphone de milieu de gamme, et la quantité d'infrastructure que vous exploitez. Nous construisons les deux chaque semaine. Nos travaux de développement Next.js couvrent les sites publics, les marketplaces et les catalogues ; nos travaux de développement React couvrent les dashboards, les espaces de travail SaaS et les plateformes internes. Ce guide explique comment nous choisissons entre les deux, et quand nous utilisons les deux dans un même produit.
En bref :
- Choisissez Next.js pour tout ce qui doit être trouvé et paraître instantané dès la première visite : sites marketing, annonces, catalogues, profils publics, documentation.
- Choisissez une application React classique pour tout ce qui se trouve derrière une connexion : dashboards, CRM, outils d'administration, espaces de travail SaaS.
- Utilisez les deux lorsqu'un produit a une partie publique et une partie privée, ce qui est le cas de la plupart des marketplaces et de nombreux produits SaaS.
Comment une SPA React et Next.js se comparent-elles point par point ?
Le tableau résume les différences qui comptent pour une décision produit.
| Critère | Application React classique (Vite) | Next.js |
|---|---|---|
| Où les pages sont générées | Dans le navigateur | Sur le serveur, au build ou dans le navigateur, page par page |
| Ce que reçoit un robot d'indexation | Une coquille HTML presque vide et du JavaScript | Un HTML complet avec le contenu et les métadonnées |
| Vitesse de la première visite | Plus lente sur les téléphones modestes ; attend le JavaScript | Plus rapide ; le contenu arrive avec le HTML |
| Navigation après chargement | Très rapide, entièrement dans le navigateur | Très rapide, navigation côté client après la première page |
| Hébergement | Fichiers statiques sur n'importe quel CDN ou serveur web | Runtime Node.js ou plateforme managée ; export statique possible |
| Coût d'infrastructure au départ | Très faible | Plus élevé lorsque le rendu côté serveur est utilisé |
| Complexité conceptuelle | Faible : un seul runtime, le navigateur | Plus élevée : composants serveur et client, cache, revalidation |
| Routage | Bibliothèque de votre choix | Intégré, basé sur les fichiers |
| Récupération des données | Depuis votre API, dans le navigateur | Sur le serveur ou dans le navigateur, avec cache intégré |
| Usage idéal | Produits accessibles après connexion, outils internes | Pages publiques, critiques pour le SEO et riches en contenu |
En quoi le rendu diffère-t-il, et pourquoi est-ce important ?
Une application React classique envoie au navigateur un petit fichier HTML et un bundle JavaScript ; la page n'apparaît qu'une fois le bundle téléchargé et exécuté et les données récupérées. Next.js peut envoyer un HTML finalisé pour chaque page, généré à l'avance ou à chaque requête, puis l'hydrater en application React interactive.
Next.js propose plusieurs modes de rendu et vous laisse choisir page par page :
- Génération statique au moment du build, pour les pages qui changent rarement : pages marketing, documentation, articles de blog.
- Régénération incrémentale, pour les pages qui changent de temps en temps : fiches de catalogue, annonces, profils publics. Les pages sont reconstruites à intervalle régulier ou lorsque les données changent.
- Rendu côté serveur à chaque requête, pour les pages qui dépendent du visiteur ou de données fraîches.
- Rendu côté client, pour les parties très interactives qui n'ont pas besoin de SEO.
Avec les React Server Components, Next.js peut aussi garder des parties d'une page entièrement sur le serveur, de sorte que le navigateur télécharge moins de JavaScript. C'est un vrai gain pour les pages de contenu, et un nouveau modèle mental que votre équipe doit apprendre : quel code s'exécute sur le serveur, lequel dans le navigateur, et ce qui est mis en cache où.
Lequel est le meilleur pour le SEO et la recherche par IA ?
Pour les pages qui doivent se positionner, Next.js est le meilleur choix. Un robot qui demande une page Next.js reçoit dès la première réponse un HTML complet avec le titre, la description, les données structurées et le contenu. Un robot qui demande une application monopage reçoit une coquille presque vide et doit exécuter du JavaScript pour voir quoi que ce soit.
Google exécute bien le JavaScript, mais plus tard et de façon moins fiable que la lecture du HTML, et beaucoup de robots d'IA qui alimentent les assistants ne lisent que le HTML initial. Si vos clients vous trouvent via Google, ChatGPT ou Perplexity, les pages sur lesquelles ils arrivent ne doivent pas dépendre du rendu côté client.
Next.js ne suffit pas à faire positionner un site. Il faut toujours construire des métadonnées uniques par page, des balises canonical et hreflang, des sitemaps à partir des routes réelles, des données structurées, un maillage interne et de bons Core Web Vitals. Nous les mettons en place dans le cadre du développement de chaque projet Next.js. Pour les pages accessibles après connexion, rien de tout cela ne compte, et c'est pourquoi une application React classique y est le bon outil.
Lequel coûte le plus cher à développer et à exploiter ?
Next.js coûte généralement un peu plus cher à mettre en place et à exploiter, et ne fait économiser de l'argent que lorsque le trafic issu de la recherche ou la vitesse de la première visite comptent. Le surcoût vient de la mise en place du rendu côté serveur, d'une stratégie de cache par type de page, d'un runtime Node.js en production et de davantage de décisions sur ce qui s'exécute où.
| Poste de coût | Application React classique | Next.js |
|---|---|---|
| Mise en place initiale | Simple | Plus de travail : modes de rendu, cache, runtime serveur |
| Hébergement | Fichiers statiques, souvent quelques dollars par mois | Serveur Node.js ou plateforme managée ; augmente avec le trafic |
| Mise en place du SEO | Inutile derrière une connexion | Intégrée au développement des pages publiques |
| Mises à jour | Mises à jour de React et des bibliothèques | Next.js sort souvent de nouvelles versions ; rester à jour demande un travail régulier |
| Compétences de l'équipe | N'importe quel développeur React | React plus la maîtrise des composants serveur et du cache |
Chez nous, une application web ou un site public avec back end coûte généralement de 10 000 à 15 000 USD dans les deux options, et la plupart des MVP se situent entre 10 000 et 20 000 USD. L'écart entre les deux représente généralement une part modeste du budget, pas un multiple. Pour les fourchettes par type de projet et une comparaison avec les agences américaines et britanniques, consultez notre guide sur le coût du développement React.
Quelle complexité pour votre équipe ?
Une application React classique n'a qu'un seul runtime : le navigateur. Les données viennent de votre API, l'état vit côté client, et n'importe quel développeur React peut y travailler dès le premier jour. Cette simplicité est un vrai avantage pour les dashboards et les outils internes, où chaque écran est interactif et où rien ne doit être indexé.
Next.js ajoute une partie serveur au front end. Votre équipe doit comprendre les composants serveur et client, l'endroit où les données sont récupérées, comment et quand les pages sont mises en cache et revalidées, et comment les sessions fonctionnent entre serveur et navigateur. Rien de tout cela n'est difficile pour une équipe senior, mais il est facile de se tromper : des pages en cache obsolètes, des secrets envoyés par erreur au navigateur, ou un composant serveur qui récupère plusieurs fois les mêmes données. Nous gardons la logique métier dans le back end, généralement Symfony ou Node.js, et laissons Next.js gérer uniquement ce qui relève de la couche web : le rendu, les données des pages et les sessions.
Un même produit peut-il utiliser les deux ?
Oui, et pour les marketplaces et de nombreux produits SaaS, c'est la meilleure organisation. La partie publique, avec les annonces, les catégories, les profils, les tarifs et le contenu, est construite en Next.js pour se positionner et se charger vite. L'espace de travail où les utilisateurs gèrent leur compte, leurs annonces, leurs réservations ou leurs données est construit comme une application React ou dans la même application Next.js, selon la taille et l'équipe. Les deux partagent un design system et la même API.
Deux exemples publiés illustrent chaque côté :
- Plateforme d'experts freelances : nous avons reconstruit l'expérience web publique d'une marketplace française de consultants IT après un changement d'identité, avec le design system, les landing pages, la recherche de freelances, les profils publics et les parcours d'authentification, en versions desktop et mobile pour chaque écran. Les pages publiques qui doivent être trouvées sont précisément là où Next.js est rentable.
- ERP sur mesure pour une société américaine de maintenance aéronautique : un développement de six mois en Symfony/PHP et React avec Mercure pour les mises à jour en temps réel, couvrant les commandes, la planification des interventions, les équipes, le stock d'entrepôt et la conformité. Tout se trouve derrière une connexion et est utilisé par le personnel toute la journée : une application React sur une API Symfony était donc le bon choix, et le rendu côté serveur aurait ajouté du coût sans bénéfice.
Comment migrer une application React vers Next.js ?
Ne migrez que les pages qui en ont besoin. Le déclencheur habituel est une application React rendue côté client dont les pages publiques ne se positionnent pas, ou un thème de CMS lent et difficile à modifier.
Notre démarche : inventorier chaque URL publique et son trafic ; choisir le mode de rendu par type de page ; reconstruire ces gabarits et les composants partagés en Next.js ; conserver les URL ou les rediriger une à une ; puis basculer le trafic par étapes en surveillant Search Console et les Core Web Vitals. L'application React accessible après connexion peut rester en place sur la même API. Migrer tout l'espace de travail vers Next.js en vaut rarement la peine en soi.
Quand choisir Next.js, et quand choisir React seul ?
Choisissez selon l'endroit où se trouve la page et qui doit la voir, pas selon la mode.
| Votre situation | Notre recommandation |
|---|---|
| Site marketing, hub de contenu, documentation | Next.js avec génération statique |
| Marketplace avec annonces publiques et espace de travail privé | Next.js pour les pages publiques ; application React ou Next.js pour l'espace de travail |
| SaaS dont seuls l'inscription et les tarifs sont publics | Application React avec Vite, plus un petit site marketing en Next.js ou statique |
| Catalogue avec des changements fréquents de prix ou de stock | Next.js avec régénération incrémentale |
| Dashboard interne, CRM ou outil d'administration | Application React avec Vite |
| Chat ou assistant IA au sein d'un produit | Application React ; le streaming vient du back end |
| Application React existante dont les pages publiques ne se positionnent pas | Passer les pages publiques à Next.js, garder l'application |
| Les applications mobiles font partie du produit | Ajouter React Native, en partageant les types et la logique avec le web |
Notre verdict : par défaut, une application React classique pour tout ce qui se trouve derrière une connexion, et Next.js pour tout ce qui doit être trouvé. Lorsqu'un produit a les deux, construisez les deux et partagez le design system et l'API. Si le mobile figure aussi dans votre feuille de route, lisez notre comparaison React Native ou Flutter.
Comment nous choisissons la stack front end avec nos clients
Nous commençons par un court appel de cadrage sur le produit, l'audience et la façon dont vos clients vous trouvent aujourd'hui. À partir de là, nous convenons des parties publiques et privées, du modèle de rendu de chacune, du back end et du premier jalon avec un devis forfaitaire. La réalisation avance par jalons avec des démos hebdomadaires, dans vos dépôts et vos comptes d'hébergement, la mise en place du SEO étant incluse pour les pages publiques. Consultez nos services de développement Next.js et de développement React, ou notre service de développement SaaS si vous construisez un produit par abonnement. Vous pouvez aussi nous contacter directement.