Todas las docs

DOC/ Actualizado el 2026-09-19

Despliegue

Build, hosting, dominio y configuración de analytics.

El sitio se construye como HTML estático en tiempo de build con Next.js:

pnpm build

Next.js prerenderiza la home, las páginas de documentación, el sitemap y los assets estáticos para los siete idiomas. No hay runtime de servidor, así que cualquier host estático funciona.

El hosting de producción es Vercel:

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

El dominio es ella.yuricunha.com, configurado en apps/web/src/data/site.ts y en la metadata de la app, que dirige las URLs canónicas, el Open Graph y el sitemap.

  • /docs índice de páginas de documentación, por idioma;
  • /docs/<slug> página individual de documentación, por idioma.

Ambas son rutas estáticas generadas en el build. El idioma por defecto (inglés) no tiene prefijo de URL; los otros idiomas llevan su prefijo, por ejemplo /pt/docs o /ja/docs.

  • Inglés por defecto: https://ella.yuricunha.com
  • Otros idiomas: https://ella.yuricunha.com/<locale>

Cada página declara alternates hreflang para los siete idiomas, y el sitemap lista cada variante.

Umami está preparado pero inerte por defecto. El componente Analytics solo se renderiza cuando ambas variables de entorno están presentes en el build:

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

Sin ellas, el sitio envía cero JavaScript de analytics. No se commitean IDs de placeholder.

El pipeline de GitLab corre en main. Se crea con un perfil GitLab que tiene verificación de identidad, porque GitLab.com se niega a correr jobs de CI sin ella. Dispara con:

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

Verifica que el pipeline creado llegue a success: quality, build, SAST y secret detection deben pasar antes de considerar verde el despliegue.

  • metadata, Open Graph, Twitter cards, canonical y JSON-LD en el layout del locale;
  • robots.txt y el sitemap se generan en el build;
  • la social card es public/og.png (1200x630, generada con las fuentes Geist a partir de una plantilla HTML renderizada);
  • cada idioma recibe su propia metadata y alternates hreflang.