ichisieben.dev · portafolio · Astro estático

Arquitectura de la Landing

Un sitio estático que se construye solo en cada push, lee el contenido de otros repos sin copiarlo a mano y delega las pruebas pesadas a una segunda máquina. Cuatro vistas: contenedores, flujos, despliegue y decisiones. Haz clic en cualquier caja; reproduce un flujo para ver el recorrido.

este repo herramienta propia de otro repo servicio externo tráfico
Detalle

Haz clic en un contenedor

Cada caja es una pieza que corre por separado: una sesión de trabajo, un script, un servicio o el navegador de quien visita. Las líneas son llamadas reales: protocolo y qué viaja.

Por qué estático

No hay servidor de aplicación: el visitante recibe HTML ya hecho. Lo único que corre en su navegador son islas pequeñas (el buscador carga su índice de 3,5 KB recién al primer foco). Menos piezas que mantener, nada que pueda caerse a las tres de la mañana y una factura de hosting fija.

Por qué importadores

La Academy y estas páginas de arquitectura viven en los repos de cada proyecto. Dos scripts de Python las leen, auditan la privacidad con fallo duro y escriben la colección de contenido. Añadir un proyecto a la serie es escribir tres archivos en su repo y nada aquí.

Por qué dos máquinas

El PC edita, revisa y fusiona. Las capturas, Lighthouse y las pruebas con Playwright corren en la Mac mini a través de enjambre, en un worktree limpio, y vuelven como una rama de git. El PC nunca queda saturado por un navegador sin cabeza.

Secuencias · una por flujo · los mismos pasos que reproduce el C4
Despliegue · lo que hay y lo que cambiaría

Hoy hosting compartido con build por git. Mañana lo mismo detrás de un CDN, sin tocar el código.

El sitio es un directorio de archivos. Eso es lo que permite moverlo a cualquier hosting estático cambiando solo el destino del build. Las demos no viven aquí: cada una tiene su subdominio y su propio docroot, y se despliega desde su repo.

Hoy · Hostinger (hosting compartido)

build Node.js en cada push a mainnpm run build
astro build → dist/ (EN en la raíz, ES en /es/)estático
public-audit + recibo del buildfalla duro
.htaccess: CSP, cabeceras, 301 de rutas viejasApache
un docroot por demo (metal., radar., …)subdominios
pruebas pesadas en la Mac mini por enjambrefuera del build

Lighthouse móvil (mediana de 5, sitio en vivo): rendimiento 100, accesibilidad 96, SEO 100.

→ mismo dist/ →

Al escalar · CDN delante

mismo build, destino distinto (Pages, bucket + CDN)sin cambios de código
cabeceras de .htaccess pasan a la config del CDNCSP igual
importadores y auditoría siguen antes del buildverify.sh
gates de Playwright como paso de CIhoy: carril gates

Qué gana: caché en el borde y despliegues atómicos. Qué no gana: velocidad de página, que ya depende del peso, no del servidor.

Decisiones · con la alternativa descartada

Cada decisión dice qué se eligió, qué se dejó y por qué

DecisiónPor quéDescartado
Astro 4 estático, sin SSRHTML hecho en el build; el visitante no espera a un servidor y no hay nada que mantener corriendoSSR o una SPA: más JS en el cliente y un proceso vivo en el hosting
Un subdominio por demoCada demo tiene su docroot y su deploy; la Landing solo enlaza. Un demo roto no rompe el hubCopiar cada demo en una subcarpeta del sitio: un repo Astro de cientos de MB con toolchains mezclados
Deploy automático por gitCada push a main reconstruye; no hay zip ni subida manual que olvidarSubir dist/ a mano por API: un paso humano en cada publicación
Importadores que leen otros reposLa lista vive en los datos: un manifiesto nuevo aparece en el índice sin tocar la LandingEditar el índice a mano: alguien tiene que acordarse cada vez
Privacidad por auditoría con fallo duroUn nombre o una ruta personal detiene la importación y el build con archivo y líneaRevisión a ojo antes de publicar
Recibo del build medido, no escritoPeso, peticiones y rastreadores se miden sobre el archivo final; si no cuadran, el build fallaCifras escritas a mano en el pie, que envejecen sin avisar
Pruebas pesadas en la Mac miniPlaywright, Lighthouse y grabaciones saturaban el PC; en la Mac corren en un worktree limpio y vuelven como ramaCorrer todo en Windows, de a uno
Páginas de arquitectura copiadas, sin iframeHTML estático en pestaña nueva: no hereda la CSP del sitio ni mide dos veces en LighthouseIncrustarlas con iframe en la página del proyecto