Todos os docs

DOC/ Atualizado em 2026-09-19

Deploy

Build, hospedagem, domínio e configuração de analytics.

O site é construído como HTML estático no build pelo Next.js:

pnpm build

O Next.js pré-renderiza a home, as páginas de documentação, o sitemap e os assets estáticos para os sete idiomas. Não há runtime de servidor, então qualquer host estático funciona.

A hospedagem de produção é a Vercel:

  • framework preset: Next.js
  • root directory: apps/web
  • build command: pnpm build

O domínio é ella.yuricunha.com, configurado em apps/web/src/data/site.ts e na metadata do app, que dirige as URLs canônicas, o Open Graph e o sitemap.

  • /docs índice das páginas de documentação, por idioma;
  • /docs/<slug> página individual de documentação, por idioma.

Ambas são rotas estáticas geradas no build. O idioma padrão (inglês) não tem prefixo de URL; os outros idiomas carregam o prefixo, por exemplo /pt/docs ou /ja/docs.

  • Inglês padrão: https://ella.yuricunha.com
  • Outros idiomas: https://ella.yuricunha.com/<locale>

Cada página declara alternates hreflang para os sete idiomas, e o sitemap lista cada variante.

Umami está preparado, mas inerte por padrão. O componente Analytics só renderiza quando ambas as variáveis de ambiente estão presentes no build:

NEXT_PUBLIC_UMAMI_SRC=https://seu-host-umami/script.js
NEXT_PUBLIC_UMAMI_WEBSITE_ID=seu-website-id

Sem elas, o site entrega zero JavaScript de analytics. Nenhum ID de placeholder é commitado.

O pipeline do GitLab roda em main. Ele é criado com um profile GitLab que tem verificação de identidade, porque o GitLab.com se recusa a rodar jobs de CI sem ela. Dispare com:

glab api --method POST \
  "projects/isyuricunha%2Fella-mizuki/pipeline" -f "ref=main"

Verifique se o pipeline criado chega a success: quality, build, SAST e secret detection devem passar antes de considerar o deploy verde.

  • metadata, Open Graph, Twitter cards, canonical e JSON-LD no layout do locale;
  • robots.txt e o sitemap são gerados no build;
  • o social card é public/og.png (1200x630, gerado com as fontes Geist a partir de um template HTML renderizado);
  • cada idioma ganha sua própria metadata e alternates hreflang.