Portafolio
Personal y Blog
Este portafolio funciona con arquitectura de islas (Astro Islands): mínimo JavaScript en el cliente y nada de la complejidad innecesaria de una SPA. Los números que ves abajo (Performance y SEO en Lighthouse) corresponden al sitio que estás navegando ahora mismo.
100/100
Performance
100
SEO Score
Conozca más sobre la arquitectura técnica
¿Quiere entender cómo se construyó esto por debajo? Abra la inmersión técnica a continuación.
expand_more
Conozca más sobre la arquitectura técnica
¿Quiere entender cómo se construyó esto por debajo? Abra la inmersión técnica a continuación.
Visión Técnica
Un portafolio diseñado como una demostración de ingeniería web, no solo un currículum. Eliminé el JavaScript innecesario del lado del cliente — habitual en SPAs tradicionales — mediante un enfoque moderno de Multi-Page App e hidratación parcial.
Tecnologías Principales
El Desafío
Un portafolio construido con React o Next.js puro suele sufrir de 'Hydration Mismatch' y payloads de JS excesivos para páginas que son, en la práctica, casi totalmente estáticas. El desafío consistió en:
- / Garantizar la máxima puntuación en Lighthouse (Performance y SEO).
- / Crear un CMS 'Headless' local y fácil de mantener sin depender de una base de datos externa.
- / Mantener un tipado estricto (TypeScript) en todos los datos de contenido.
La Solución
Lo resolví usando Astro Content Collections: cada dato de contenido (experiencias, proyectos) se convierte en un archivo JSON validado por un esquema Zod estricto en tiempo de compilación — si cometo un error en un campo, el build falla antes de salir a producción.
const experience = defineCollection({
loader: glob({ pattern: "**/*.json", base: "./src/content/experience" }),
schema: z.object({
company: z.string(),
role: z.string(),
rotation: z.array(z.object({
project: z.string(),
stack: z.string()
})).optional()
})
}); Infraestructura
Deploy & CI/CD
Alojado en Cloudflare Pages con edge caching, con despliegue automático en cada push a la rama main.