portfolio-blog

3 de maio de 2026 (há 1m)

portfolio-blog

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:

  1. uma página inicial apresentável,
  2. uma lista de projetos,
  3. 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:

  1. Estrutura base: scaffold do tema Starfolio adaptado ao meu conteúdo
  2. Sistema de design: theme colors em OkLch, tipografia com Outfit Variable e Geist Mono, dark/light mode com tokens CSS
  3. Seções de conteúdo: skills com ícones via @icons-pack/react-simple-icons, projetos, referências
  4. Blog com MDX: configuração do rehype-pretty-code, frontmatter tipado, paginação
  5. 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.