Portfólio
Pessoal & Blog
Esse portfólio roda em arquitetura de ilhas (Astro Islands): pouco JavaScript no cliente, nada da complexidade desnecessária de SPA. Os números aí embaixo (Performance e SEO no Lighthouse) são do site que você está usando agora.
100/100
Performance
100
SEO Score
Saiba mais sobre a arquitetura técnica
Quer entender como isso foi construído por baixo do capô? Abra o mergulho técnico abaixo.
expand_more
Saiba mais sobre a arquitetura técnica
Quer entender como isso foi construído por baixo do capô? Abra o mergulho técnico abaixo.
Visão Técnica
Portfólio pensado como demonstração de engenharia web, não só currículo. Eliminei o JavaScript desnecessário do lado do cliente — comum em SPAs tradicionais — com uma abordagem Multi-Page App moderna e hidratação parcial.
Tecnologias Principais
O Desafio
Portfólio construído em React ou Next.js puro costuma sofrer com 'Hydration Mismatch' e payload de JS grande demais para páginas que são, na prática, quase todas estáticas. O desafio era:
- / Garantir pontuação máxima no Lighthouse (Performance e SEO).
- / Criar um CMS 'Headless' local fácil de manter sem depender de banco de dados externo.
- / Manter a tipagem forte (TypeScript) nos dados de conteúdo.
A Solução
Resolvi usando Astro Content Collections: todo dado de conteúdo (experiências, projetos) vira um JSON validado por um schema Zod rígido em tempo de build — se eu errar um campo, o build quebra antes de ir pro ar, não em produção.
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()
})
}); Infraestrutura
Deploy & CI/CD
Hospedado na Cloudflare Pages com edge caching, com deploy automático a cada push na branch main.