Boilerplate Next.js + Strapi optimisé SSR

Je vous partage ce boilerplate Next.js + Strapi optimisé SSR pour coder vos projets SEO beaucoup plus rapidement.

placeholder
DIY29-05-2025

Boilerplate Next.js + Strapi TS + Postgres : une base solide pour vos projets SSR

Après avoir partagé un boilerplate orienté temps réel (Vite, React, TypeScript, Supabase), je vous propose aujourd’hui un nouveau starter kit, cette fois pour des projets qui nécessitent du server-side rendering (SSR). On part donc sur une stack Next.js 15 + Strapi 5 + PostgreSQL, le tout dans un monorepo PNPM avec Docker Compose pour faciliter le setup.

🔗 Lien vers le repo

Pourquoi ce boilerplate ?

Parce que dans la vraie vie, tout n’est pas temps réel. Quand on monte un blog, un e-commerce ou n’importe quel site SEO-friendly, on a besoin de SSR. Ce boilerplate vous permet de démarrer vite avec une structure claire, une base Strapi propre en TypeScript, et une bonne séparation front/back.

📌 Stack technique :

  • Next.js 15 (App Router, React Query)
  • Strapi 5 (TypeScript ready)
  • PostgreSQL + PGAdmin via Docker
  • Auth + CRUD avec tokens JWT
  • Monorepo PNPM + Docker Compose

Monorepo, PGAdmin et Docker : setup rapide

Tout est pensé pour aller vite : vous clônez le repo, vous lancez le Docker Compose (Postgres + PGAdmin), vous configurez vos variables d’environnement (.env pour le front, .env pour le back), et c’est parti. J’ai documenté chaque étape dans le README, donc pas de galère.

Le backend : Strapi TS minimaliste

On est sur du Strapi TypeScript, pas de JavaScript ici. Le backend expose une simple collection task avec un user system. Vous pouvez évidemment étendre facilement le modèle avec le backoffice Strapi (création de nouveaux types, champs, etc.).

Bonus : Je fournis les commandes pour générer les clés nécessaires avec OpenSSL. Pas de prise de tête.

Le frontend : Next.js comme gateway

Le front est un app Next.js qui agit comme une passerelle vers Strapi. L’objectif : ne jamais exposer directement les endpoints Strapi.

Toutes les requêtes passent par des routes API Next (comme /api/login), qui elles-mêmes appellent le backend Strapi. C’est utile pour cloisonner, protéger, et vous préparer à un éventuel déploiement en prod avec une gateway privée.

✅ Auth avec token JWT

✅ Stockage du token en localStorage

✅ Hooks custom pour login, tâches, etc.

CRUD, React Query et cache automatique

La todo-list de base vous permet de faire du CRUD complet. On utilise React Query pour le fetch et le cache. Résultat : une UX fluide, pas besoin de tout refetch à la main, le cache se met à jour tout seul grâce à l’invalidation.

Organisation du code

  • components/ pour vos UI
  • hooks/ pour toutes les fonctions réutilisables (login, getTasks, etc.)
  • types/ pour vos modèles Strapi
  • lib/ pour le QueryClient et autres outils globaux
  • pages/ : un login, un logout, et une page de tâches

Un projet modulaire et évolutif

Ce boilerplate est pensé pour évoluer. Besoin d’un modèle Product ? Ajoutez-le dans Strapi, définissez vos champs, et vous avez instantanément un nouveau backend prêt à consommer. Le frontend suit, vous avez déjà les hooks et la structure pour le faire proprement.

En résumé

Si vous bossez sur un projet SEO (blog, vitrine, shop), ce boilerplate est une base clean, modulaire, prête à l’emploi. Je m’en sers moi-même pour le blog dev-freelance.fr.

C’est une sorte de Create React App nouvelle génération, mais pour des projets Next.js modernes.

🔗 Lien vers le repo


💡 Téléchargez le boilerplate, testez, adaptez, shippez.


Restez informé

Abonnez-vous à ma newsletter pour recevoir les derniers articles et mises à jour

Votre vie privée

Nous utilisons des cookies pour améliorer votre expérience sur notre site, analyser notre trafic et personnaliser les publicités. En cliquant sur "Accepter", vous consentez à l'utilisation de tous les cookies. Vous pouvez également choisir de refuser en cliquant sur le bouton "Refuser".