CMS Next.js pour sites clients
Un CMS Next.js pour les sites clients que votre agent écrit
jtakeit est un CMS Next.js basé sur git pour sites clients : votre agent builde un export statique dans votre dépôt, le propriétaire modifie le texte sur la page, et la plateforme gère formulaires, réservations, hébergement et domaine.
$ npx create-next-app@latest client-site --ts --app
$ cd client-site
# next.config.mjs: output 'export', basePath from SITE_URL
$ npm run build
$ ls dist
404.html _meta.json _next index.html robots.txt sitemap.xml
$ git push origin main
# then, over MCP: validate_catalogue → commit_and_build01/ ce qu’il lui faut
Ce qu’il faut à un CMS Next.js pour des sites clients
Un site client construit avec Next.js a besoin de plus qu’un endroit où ranger des textes. Le propriétaire doit pouvoir changer ses propres textes sans vous appeler, et le site doit quand même recevoir des demandes, prendre des réservations et laisser le client partir avec ses données.
Des modifications qui ne cassent pas le design
Le propriétaire touche le texte sur la page et ne remplit que les champs que le catalogue déclare. Pas de bouton pour ajouter une page ou un bloc, et c’est voulu.
Le contenu dans votre dépôt
Les textes publiés sont du JSON dans le dépôt git que vous détenez. Chaque enregistrement est un commit.
Formulaires de contact
Les formulaires sont protégés contre le spam, et les demandes arrivent dans Telegram, par e-mail ou dans la boîte de réception du panneau.
Réservations payées
Le module réservations envoie les réservations payées directement sur le compte Stripe de l’entreprise.
Un aperçu avant de payer
Le client valide le vrai site, sur un aperçu, avant sa mise en ligne.
Une porte de sortie
Demandes et réservations s’exportent en CSV et en JSON. L’export ne demande jamais d’abonnement actif.
02/ git ou api
Basé sur git, ou un CMS headless pour Next.js ?
Un CMS headless garde le contenu dans sa propre base de données et le sert via une API — un bon choix quand une équipe de contenu publie sur un site, une application et plus encore. Un site client a un seul propriétaire et un seul site : jtakeit garde donc ses textes dans le dépôt, à côté du code.
| Un CMS headless classique | jtakeit | |
|---|---|---|
| Contenu publié | Dans la base de données du CMS, récupéré via son API | Du JSON dans votre dépôt |
| Comment le build le récupère | Un appel d’API depuis le build ou depuis le serveur | Un fichier que la plateforme assemble pour chaque build |
| Un enregistrement | Une mise à jour d’enregistrement | Un commit ; les brouillons restent dans la base de données de la plateforme |
| Où le propriétaire modifie | Une application d’administration séparée | Sur la page elle-même, en touchant son texte |
| Formulaires, réservations, hébergement | Hors du CMS, ajoutés séparément | Gérés par la plateforme, avec la facturation, les sauvegardes et le domaine |
| Le site tel qu’il était en mars | Dépend de l’historique du CMS | Une commande dans git |
03/ export statique
L’export statique Next.js sur jtakeit
La plateforme builde chaque site de la même manière : elle lance le build du projet, puis sert le dossier que ce build écrit. Next.js s’y intègre en export statique — du HTML écrit au moment du build, sans aucun serveur qui tourne quand quelqu’un visite le site.
// next.config.mjs
const site = new URL(process.env.SITE_URL ?? 'http://localhost:3000/');
export default {
output: 'export', // static HTML, no server at request time
basePath: site.pathname.replace(/\/$/, ''), // '' live, '/p/<slug>' in preview
trailingSlash: true, // /about/index.html, not /about.html
images: { unoptimized: true },
};
// package.json — the platform runs `npm run build` and serves dist/
"scripts": { "build": "next build && rm -rf dist && cp -R out dist" }
// public/_meta.json — copied into dist/ with the rest of public/
{ "immutable": ["/_next/static/"] }// lib/jtk.ts — runs at build time, never in the browser
import { readFileSync } from 'node:fs';
const file = process.env.JTK_CONTENT_FILE;
export const published = file ? JSON.parse(readFileSync(file, 'utf8')) : null;
// data-jtk-path only when the platform asks for it
export const tap = (path: string) =>
process.env.PUBLIC_JTK_ANNOTATE ? { 'data-jtk-path': path } : {};
// app/page.tsx
<h1 {...tap('blocks[0].title')}>{hero.title}</h1>
// app/robots.ts
export const dynamic = 'force-static';
const site = process.env.SITE_URL!.replace(/\/?$/, '/');
export default function robots() {
return { rules: { userAgent: '*', allow: '/' },
sitemap: new URL('sitemap.xml', site).href };
}Définies pour chaque build
SITE_URLl’adresse du site : l’hôte de l’URL canonique et du sitemapPUBLIC_JTK_ANNOTATEsi elle est définie, marquer chaque champ que le propriétaire peut modifierJTK_CONTENT_FILEl’endroit où le contenu publié a été assemblé pour être lu par ce build
Ce que le build doit contenir
- Une page à part pour chaque adresse — chaque page dans son propre dossier, pas un fichier HTML isolé à côté des autres.
- Des assets qui fonctionnent sous l’adresse de l’aperçu. Un aperçu est servi sous un chemin qui lui est propre : le chemin de base vient donc de l’adresse du site que définit la plateforme.
- Une page 404, que l’export statique écrit pour vous.
- Un robots.txt qui laisse entrer les robots d’indexation, et un sitemap sur l’adresse du site.
- Une URL canonique sur cet hôte sur chaque page, et aucun noindex nulle part — la plateforme refuse un build qui en contient un.
- Une indication de cache qui marque les assets hachés de Next comme immuables, pour qu’ils restent en cache définitivement.
- Le catalogue de ce que le propriétaire peut modifier, écrit à la main ou par votre propre outil et vérifié par la plateforme. Les formulaires envoient leurs demandes à la plateforme.
04/ écrit par votre agent
Next.js, avec votre agent qui met en place le contrat
Astro est le modèle de départ que fournit jtakeit. Sur Next.js, il n’y a pas de starter à cloner : vous — ou votre agent IA, Claude Code par exemple, via le serveur MCP de jtakeit — organisez le projet selon le contrat documenté, et la plateforme le vérifie comme n’importe quel autre site.
| Modèle Astro | Export statique Next.js | |
|---|---|---|
| Point de départ | Le modèle Astro de jtakeit | Votre propre projet Next.js |
| Catalogue | Généré et vérifié par l’outil de catalogue du modèle | Écrit à la main ou par votre propre outil |
| Formulaires et spécimens | Inclus | À construire vous-même ; les formulaires envoient les demandes à la plateforme |
| Dépendances | Préinstallées | Installées par votre build |
| Un build | Moins d’une minute | Environ 90 secondes |
Comment le flux fonctionne avec Claude Code →
Comment l’édition est déclarée sur le modèle Astro →
05/ choisir
Choisir le meilleur CMS pour des sites clients Next.js
Partez de ce que le site doit faire quand quelqu’un le visite. S’il a besoin du serveur au moment de la requête — régénération statique incrémentale, routes d’API, middleware, server actions ou pages rendues à chaque requête —, jtakeit n’est pas le bon outil : il ne sert que de la sortie statique, quel que soit le framework.
Si le site peut être construit à l’avance, la question devient : qui le modifie ? jtakeit s’adresse aux développeurs dont les clients doivent pouvoir changer leurs propres textes — et rien d’autre — sans vous appeler, et qui préfèrent ne pas faire tourner eux-mêmes formulaires, réservations, facturation, sauvegardes, hébergement et domaine.
Pas attaché à Next.js ? Le CMS Astro pour sites clients est le modèle de départ fourni et builde en moins d’une minute. Le fonctionnement de l’édition basée sur git, quel que soit le générateur, est décrit sur la page CMS statique pour sites clients.
06/ questions
Questions sur le CMS Next.js
- jtakeit prend-il en charge Next.js ?
- Oui, en export statique. La plateforme lance le build du projet et sert le dossier qu’il écrit : un site Next.js convient donc s’il est construit à l’avance en export statique et copié dans ce dossier. Astro est le modèle de départ que fournit jtakeit ; sur Next.js, c’est vous qui organisez le projet selon le même contrat documenté.
- Puis-je utiliser l’App Router ?
- L’App Router peut produire un export statique tant que rien dans le site n’a besoin d’un serveur au moment de la requête : pas de régénération statique incrémentale, pas de route handlers ni de server actions exécutés à chaque requête, pas de middleware et aucun rendu qui dépend de la requête. C’est une limite de l’export statique de Next.js lui-même : vérifiez donc votre application avec la documentation de Next.js sur l’export statique.
- Existe-t-il un starter Next.js officiel ?
- Non. Il n’existe ni starter, ni plugin, ni SDK Next.js. Le modèle de départ fourni par jtakeit est Astro. Sur Next.js, c’est vous — ou votre agent IA — qui mettez en place le contrat documenté : le build écrit dans le dossier que sert la plateforme, il lit les textes publiés depuis un fichier que prépare la plateforme, et le catalogue de ce que le propriétaire peut modifier est écrit à la main ou par votre propre outil, puis vérifié par la plateforme.
- Combien de temps prend un build ?
- Environ 90 secondes pour un site qui n’est pas sur le modèle Astro, car le build installe vos propres dépendances. Le modèle Astro a ses dépendances préinstallées et builde en moins d’une minute.
- Comment le client modifie-t-il un site Next.js ?
- En touchant le texte sur la page. Le catalogue du site déclare les champs que le propriétaire peut remplir, et quand la plateforme le demande, vos pages marquent ces champs. Chaque enregistrement est un commit dans votre dépôt, et le build suivant lit les textes publiés depuis le fichier que prépare la plateforme.
- Combien ça coûte ?
- L’inscription, la création et l’aperçu sont gratuits. Une fois un site en ligne, vous payez un prix de gros par site en ligne, au mois ou à l’année, et vous facturez votre client à votre propre prix — sur Next.js comme sur Astro. Les chiffres sont sur la page des tarifs.
07/ essai gratuit
Essayez-le sur un vrai site client
Inscrivez-vous dans le panneau et créez votre premier site client — sur le modèle Astro ou en export statique Next.js. Vous ne payez un prix de gros que lorsqu’un site passe en ligne.
Essai gratuitadmin.jtakeit.com
- Gratuit jusqu’à la mise en ligne d’un site
- Ensuite, un prix de gros par site en ligne, à partir de €5 par mois
- Le code reste dans votre dépôt git