Eu demorei mais para decidir o formato deste portfolio do que para colocar a primeira versão no ar.
O problema não era código. Era decidir o suficiente para começar: Astro ou outro framework, site estático ou SSR, MDX ou outra coisa, Tailwind ou CSS mais simples.
Usei o Claude Code para discutir essas escolhas e ir testando no projeto. Isso tirou bastante atrito.
Escopo
Eu queria três coisas:
- uma página inicial apresentável,
- uma lista de projetos,
- um blog simples em MDX.
Isso ajudou a não inventar mais do que precisava. O site não precisava de CMS, banco, painel admin ou um monte de fluxo interno. Precisava ser fácil de editar e publicar.
Stack
Escolhi Astro v6 com output estático, React 19 para os componentes interativos, shadcn/ui + Tailwind v4 para a interface e MDX para os posts.
O deploy roda na Cloudflare Pages via GitHub Actions. A infra fica em Terraform.
Nada muito exótico. Eu queria uma stack que deixasse o conteúdo perto do código e não exigisse manutenção demais.
Uma decisão chata foi o highlight de código. Acabei desabilitando o syntax highlighting nativo do Astro e usando rehype-pretty-code direto. Foi o tipo de detalhe em que o Claude Code ajudou bem, porque dava para testar a hipótese ali mesmo.
Como fui fazendo
Construí em sessões curtas pelo CLI. Cada sessão tinha uma tarefa pequena:
- Estrutura base: scaffold do tema Starfolio adaptado ao meu conteúdo
- Sistema de design: theme colors em OkLch, tipografia com Outfit Variable e Geist Mono, dark/light mode com tokens CSS
- Seções de conteúdo: skills com ícones via
@icons-pack/react-simple-icons, projetos, referências - Blog com MDX: configuração do rehype-pretty-code, frontmatter tipado, paginação
- Infra: Terraform para Cloudflare Pages, GitHub Actions para CI/CD
O Claude Code entrou principalmente para acelerar execução e revisar escolhas. Eu ainda precisei decidir o que fazia sentido, cortar coisa desnecessária e conferir o resultado.
No fim, o site ficou pequeno. Isso era o objetivo. Agora a parte difícil é manter o conteúdo com a mesma honestidade.