Les React Server Components ont mis du temps à convaincre. En 2026, après un an de Next.js 15 stable et de patterns consolidés, je peux enfin dire : oui, ça marche, et oui, ça vaut le coup. Avec des nuances.
Ce qui change vraiment
Un Server Component s'exécute côté serveur, envoie du HTML + un payload RSC au client, et n'inclut aucun JS lui-même côté navigateur. Conséquences :
- Bundle JS radicalement plus petit (parfois 50-70 % de réduction).
- Accès direct à la DB ou aux APIs internes sans ping-pong réseau.
- Pas besoin de
fetchenuseEffect, pas de skeleton loading sur l'initial render.
Ce que les devs adorent
Composer directement avec l'ORM ou la DB :
// app/posts/page.tsx (Server Component)
export default async function PostsPage() {
const posts = await db.post.findMany({ where: { published: true } });
return (
<main>
{posts.map(p => <PostCard key={p.id} post={p} />)}
</main>
);
}Pas d'API à créer, pas de cache de fetch, pas de serialisation manuelle. Juste du JSX qui tourne sur le serveur.
Ce qui coince encore
- Frontière client/serveur mentale : il faut apprendre où mettre
'use client'et pourquoi. Source #1 de bugs chez les débutants. - Bibliothèques non compatibles : beaucoup d'anciennes libs supposent du client, cassent en RSC. Check avant d'adopter.
- Passage de callbacks serveur → client : subtil, nécessite Server Actions.
- Débogage : les erreurs côté serveur remontent moins bien que les erreurs client. Toujours un stack trace à déchiffrer.
Server Actions : la vraie killer feature
Pouvoir définir une fonction serveur et l'appeler directement depuis un composant client supprime 80 % du boilerplate d'API routes :
'use server';
export async function createPost(formData: FormData) {
const title = formData.get('title');
await db.post.create({ data: { title } });
revalidatePath('/posts');
}
// Dans un composant client :
<form action={createPost}>
<input name="title" />
<button>Créer</button>
</form>Progressive enhancement gratuit : le formulaire marche même sans JS. Impossible en SPA classique.
Les frameworks qui supportent RSC en 2026
- Next.js 15+ : la référence, App Router stable.
- Remix : supporte RSC depuis 3.0 (oct 2025).
- TanStack Start : alternative légère sans Vercel.
Quand NE PAS utiliser RSC
- App extrêmement interactive (éditeur collaboratif, dashboard temps-réel).
- App mobile (React Native n'a pas RSC).
- Équipe pas prête à comprendre la dichotomie serveur/client.
- Projet existant avec énormément de client-only logic.
Pour un site e-commerce, un blog, un dashboard à chargement lourd : foncez. Pour un éditeur type Figma : restez sur du CSR classique.