Next.js CMS para sites de clientes
CMS para Next.js em sites de clientes que o seu agente escreve
O jtakeit é um CMS para Next.js baseado em git: o seu agente gera um export estático em um repositório seu, o dono edita tocando no texto da página e a plataforma cuida de formulários, reservas, hospedagem e domínio.
$ 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/ o que ele precisa
Do que um CMS para Next.js precisa em sites de clientes
Um site de cliente feito em Next.js precisa de mais do que um lugar para guardar textos. O dono precisa mudar o próprio texto sem ligar para você, e o site ainda precisa receber contatos, aceitar reservas e deixar o cliente sair levando os dados dele.
Edições que não quebram o design
O dono toca no texto da página e preenche só os campos que o catálogo declara. Sem botão de adicionar página ou bloco, de propósito.
Conteúdo no seu repositório
Os textos publicados são JSON no repositório git que você tem. Cada salvamento é um commit.
Formulários de contato
Os formulários são protegidos contra spam, e os contatos chegam no Telegram, por email ou na caixa de entrada do painel.
Reservas pagas
O módulo de reservas envia as reservas pagas direto para o Stripe do próprio negócio.
Uma prévia antes do pagamento
O cliente aprova o site de verdade, em uma prévia, antes de ele entrar no ar.
Uma porta de saída
Contatos e reservas são exportados em CSV e JSON. A exportação nunca exige assinatura ativa.
02/ git ou api
Baseado em git, ou um headless CMS para Next.js?
Um headless CMS guarda o conteúdo no próprio banco de dados e o entrega por uma API — uma boa escolha quando uma equipe de conteúdo publica para um site, um app e mais. Um site de cliente tem um dono e um site, então o jtakeit guarda os textos no repositório, ao lado do código.
| Um headless CMS típico | jtakeit | |
|---|---|---|
| Conteúdo publicado | No banco de dados do CMS, buscado pela API dele | JSON no seu repositório |
| Como o build o recebe | Uma chamada de API a partir do build ou do servidor | Um arquivo que a plataforma monta para cada build |
| Um salvamento | Uma atualização de registro | Um commit; os rascunhos ficam no banco de dados da plataforma |
| Onde o dono edita | Um app de administração separado | Na própria página, tocando no texto |
| Formulários, reservas, hospedagem | Fora do CMS, adicionados à parte | Operados pela plataforma, com cobrança, backups e o domínio |
| O site como estava em março | Depende do histórico do CMS | Um comando no git |
03/ export estático
Export estático do Next.js no jtakeit
A plataforma faz o build de todo site do mesmo jeito: roda o build do projeto e depois serve a pasta que o build grava. O Next.js se encaixa como export estático — HTML gerado no build, sem nenhum servidor rodando quando alguém visita.
// 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 };
}Definidas em todo build
SITE_URLo endereço do site: o host do canonical e do sitemapPUBLIC_JTK_ANNOTATEquando definida, marque cada campo que o dono pode editarJTK_CONTENT_FILEonde o conteúdo publicado foi montado para este build ler
O que o build precisa conter
- Uma página própria para cada endereço — cada página na sua própria pasta, não um arquivo HTML solto ao lado dos outros.
- Assets que funcionam no endereço da prévia. Uma prévia é servida em um caminho próprio, então o caminho base vem do endereço do site que a plataforma define.
- Uma página 404, que o export estático gera para você.
- Um robots.txt que deixe os rastreadores entrarem, e um sitemap no endereço do site.
- Um canonical nesse host em cada página, e nenhum noindex em lugar nenhum — a plataforma recusa um build que tenha um.
- Uma nota de cache que marca os assets com hash do Next como imutáveis, para ficarem em cache para sempre.
- O catálogo do que o dono pode editar, escrito à mão ou pela sua própria ferramenta e verificado pela plataforma. Os formulários enviam os contatos para a plataforma.
04/ escrito pelo seu agente
Next.js, com o seu agente montando o contrato
O Astro é o scaffold que o jtakeit oferece. No Next.js não há starter para clonar: você — ou o seu agente de IA, o Claude Code, por exemplo, pelo servidor MCP do jtakeit — organiza o projeto seguindo o contrato documentado, e a plataforma o verifica do mesmo jeito que verifica qualquer outro site.
| Scaffold Astro | Export estático do Next.js | |
|---|---|---|
| Ponto de partida | O scaffold Astro do jtakeit | O seu próprio projeto Next.js |
| Catálogo | Gerado e verificado pela ferramenta de catálogo do scaffold | Escrito à mão ou pela sua própria ferramenta |
| Formulários e specimens | Incluídos | Por sua conta; os formulários enviam os contatos para a plataforma |
| Dependências | Pré-instaladas | Instaladas pelo seu build |
| Um build | Menos de um minuto | Cerca de 90 segundos |
Como o fluxo funciona com o Claude Code →
Como a edição é declarada no scaffold Astro →
05/ como escolher
Como escolher o melhor CMS para sites de clientes em Next.js
Comece pelo que o site precisa fazer quando alguém o visita. Se ele precisa do servidor no momento da requisição — incremental static regeneration, API routes, middleware, server actions ou páginas renderizadas a cada requisição —, o jtakeit não é a ferramenta: ele serve apenas saída estática, em qualquer framework.
Se o site pode ser gerado antecipadamente, a pergunta passa a ser quem o edita. O jtakeit é para desenvolvedores cujos clientes devem mudar as próprias palavras — e nada mais — sem ligar para você, e que preferem não operar formulários, reservas, cobrança, backups, hospedagem e o domínio por conta própria.
Não está preso ao Next.js? O Astro CMS para sites de clientes é o scaffold oferecido e faz o build em menos de um minuto. Como a edição baseada em git funciona em qualquer gerador está na página do CMS estático para sites de clientes.
06/ perguntas
Perguntas sobre o CMS para Next.js
- O jtakeit suporta Next.js?
- Sim, como export estático. A plataforma roda o build do projeto e serve a pasta que ele grava, então um site Next.js funciona quando é gerado antecipadamente como export estático e copiado para essa pasta. O Astro é o scaffold que o jtakeit oferece; no Next.js, você mesmo organiza o projeto seguindo o mesmo contrato documentado.
- Posso usar o App Router?
- O App Router consegue gerar um export estático desde que nada no site precise de servidor no momento da requisição: sem incremental static regeneration, sem route handlers ou server actions executados a cada requisição, sem middleware e sem renderização que dependa da requisição. Esse é um limite do próprio static export do Next.js, então confira o seu app na documentação de static export do Next.js.
- Existe um starter oficial para Next.js?
- Não. Não existe starter, plugin nem SDK para Next.js. O scaffold que o jtakeit oferece é o Astro. No Next.js, você — ou o seu agente de IA — monta o contrato documentado: o build grava na pasta que a plataforma serve, lê os textos publicados de um arquivo que a plataforma prepara, e o catálogo do que o dono pode editar é escrito à mão ou pela sua própria ferramenta e verificado pela plataforma.
- Quanto tempo leva um build?
- Cerca de 90 segundos para um site que não está no scaffold Astro, porque o build instala as suas próprias dependências. O scaffold Astro já vem com as dependências pré-instaladas e faz o build em menos de um minuto.
- Como o cliente edita um site Next.js?
- Tocando no texto da página. O catálogo do site declara quais campos o dono pode preencher, e, quando a plataforma pede, as suas páginas marcam esses campos. Cada salvamento é um commit no seu repositório, e o build seguinte lê os textos publicados do arquivo que a plataforma prepara.
- Quanto custa?
- Cadastrar-se, criar e ver a prévia são grátis. Quando um site entra no ar, você paga um preço de atacado por site no ar, por mês ou por ano, e cobra do cliente o seu próprio preço — igual no Next.js e no Astro. Os valores estão na página de preços.
07/ teste grátis
Teste em um site de cliente de verdade
Cadastre-se no painel e crie o seu primeiro site de cliente — no scaffold Astro ou como export estático do Next.js. Você paga um preço de atacado só quando um site entra no ar.
Teste grátisadmin.jtakeit.com
- Grátis até um site entrar no ar
- Depois, um preço de atacado por site no ar, a partir de €5 por mês
- O código fica no seu repositório git