TL;DR
React est une librairie UI : le reste de la stack, c'est à toi de l'assembler. Next.js est un framework construit sur React qui ajoute le routing, le rendu serveur et une configuration de build prête à l'emploi. Pour la plupart des nouveaux projets, commence par Next.js.
C'est quoi React ?
React est une librairie JavaScript publiée en open source par Facebook en 2013. Elle fait une seule chose : construire des interfaces à partir de composants. Quand tu cliques sur un bouton et qu'une partie de la page se met à jour sans rechargement, c'est React qui re-rend les composants dont le state a changé.
Ce que React ne fournit pas, c'est tout ce qui entoure l'UI : le routing, les conventions pour charger les données, le rendu serveur, la chaîne de build. Tu choisis tout ça toi-même (React Router, une librairie de data fetching, Vite, etc.). Cette liberté a ses avantages, mais sur la plupart des projets elle se traduit par beaucoup de décisions et de code de liaison avant de livrer quoi que ce soit.
import { useState } from 'react';
// Un bouton qui compte les clics
function Counter() {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
Cliqué {count} fois
</button>
);
}
C'est quoi Next.js ?
Next.js est un framework construit au-dessus de React. Tu écris toujours des composants React, mais la structure du projet, le routing et la stratégie de rendu sont déjà définis.
Par défaut, tu as le routing basé sur les fichiers, le rendu côté serveur et la génération statique (importants pour le SEO), l'optimisation des images, et les API routes qui permettent de garder un petit backend dans le même projet.
Next.js tourne en production chez Netflix, TikTok ou Twitch. La documentation officielle de React recommande d'ailleurs de démarrer les nouvelles apps avec un framework comme Next.js plutôt qu'avec React seul.
Comparaison directe
- ✅ Contrôle total sur la stack
- ✅ API réduite, rapide à apprendre
- ❌ Pas de routing intégré
- ❌ SEO plus difficile avec une SPA rendue côté client
- ❌ Plus de configuration et de choix d'outils
- ✅ Routing basé sur les fichiers
- ✅ Bon SEO grâce au SSR/SSG
- ✅ Code splitting et optimisation des images par défaut
- ✅ API routes dans le même projet
- ❌ Plus de concepts à apprendre (composants serveur et client, cache)
Quand React seul suffit
React seul (en général avec Vite) convient bien aux dashboards internes et aux outils derrière un login : le SEO n'a pas d'importance et tout tourne de toute façon dans le navigateur. C'est aussi le bon choix sur un projet React existant, quand une migration coûterait plus qu'elle ne rapporte.
Quand utiliser Next.js
Pour tout ce qui est public et doit être bien référencé sur Google : site vitrine, blog, e-commerce, portfolio, pages marketing d'un SaaS. Les moteurs de recherche reçoivent du HTML déjà rendu, et le premier chargement est plus rapide parce que le serveur fait le rendu initial.
Pour une entreprise tunisienne qui veut être trouvée sur Google et attirer des clients, Next.js est le choix le plus sûr. Le rendu serveur donne un vrai avantage SEO par rapport à une SPA React classique rendue côté client.
Mon avis
Pour un nouveau projet, commence avec Next.js. Tu écris toujours du React, et tu ne passes pas le début du projet à assembler routing, rendu et outils de build.
Ce n'est pas vraiment l'un ou l'autre. Next.js, c'est React avec une structure autour, donc tout ce que tu apprends en React te sert directement.