Landing estática para CodeLabs con App Router, Tailwind 4 y export estático. Incluye secciones de servicios, clientes, AWS, casos, contacto, políticas legales y botón flotante de WhatsApp.
- Node 20.19.6 (Volta fijada en package.json)
- npm
npm run dev— modo desarrollonpm run build— build de producción (export estático habilitado)npm run start— serve (no necesario si usasnext export)npm run lint— ESLintcd infra && npm run synth -- -c stage=prod --profile codelabs— sintetiza la infraestructura CDK
app/(site)/page.tsx— landing principalapp/(site)/sections/— secciones (hero, clientes, capacidades, AWS, fundador, casos, stack, contacto-info, contacto, navbar, footer)app/ui/— componentes compartidos (logo, whatsapp-button)app/data/— datos de clientes, capacidades, casos y stackapp/(legal)/— privacidad, tratamiento de datos, términos, desuscripciónpublic/logos/— logos de clientes y AWS; favicon e íconos PWA enpublic/infra/— AWS CDK v2 para S3 privado, CloudFront, ACM, Route 53 y role OIDC de GitHub Actions.github/workflows/pipeline.yml— pipeline único con detección de cambios, quality gates y deploy web.github/actions/— acciones compuestas para setup web e infra
next.config.tsconoutput: "export"yimages.unoptimized: true- Metadatos y dominio apuntan a
https://codelabsecuador.com - Manifest y apple-touch-icon referenciados en
app/layout.tsx
- Infraestructura: AWS CDK en
infra/, stackCodelabsWebProdStack. - Hosting: S3 privado + CloudFront con Origin Access Control.
- Dominio:
codelabsecuador.comywww.codelabsecuador.comvia Route 53. - CI/CD: GitHub Actions con OIDC hacia AWS, sin access keys estáticas.
- Pipeline: detecta cambios, valida solo las capas afectadas, publica artefacto web y despliega contenido a S3/CloudFront cuando corresponde.
- Antes de
cdk deploy, confirmar perfil AWS; para este proyecto el esperado escodelabs. - Antes de
git push, confirmar que el remote apunta aFrancisU20/CodelabsWeb.
- Formulario de contacto abre WhatsApp con los datos capturados.
- Enlaces legales:
/privacidad,/tratamiento-datos,/terminos,/desuscripcion. - Ajusta emails/teléfono/dirección en
app/(site)/sections/footer.tsxsi cambian. - El deploy productivo requiere configurar variables de GitHub con los outputs de CDK:
AWS_ROLE_TO_ASSUME,AWS_REGION,SITE_BUCKET_NAME,CLOUDFRONT_DISTRIBUTION_ID.