carneirofc

carneirofc // blog

Olá, mundo

1 min de leitura

Todo blog precisa de um primeiro post, e este é sobre o próprio blog.

A stack

Este site é intencionalmente "sem graça", no melhor sentido:

  • Next.js com output: "export" — tudo é pré-renderizado em HTML/CSS/JS puro no momento do build. Sem servidores, sem runtime, nada para corrigir às 3 da manhã.
  • Velite transforma content/blog/*.mdx em um índice de posts tipado e validado com Zod. Um campo malformado no frontmatter quebra o build em vez de publicar uma página quebrada.
  • @carneirofc/ui — um design system compartilhado, para que meus projetos falem uma única linguagem visual.
  • GitHub Pages via GitHub Actions: um job de checks (ESLint, Prettier, tsc, Gitleaks, auditoria de metadados de mídia) bloqueia o job de deploy. Check vermelho, sem deploy.

A parte paranoica

A parte com que eu realmente me importo: nenhuma imagem ou vídeo é commitado com seus metadados intactos. Um hook de pre-commit executa

exiftool -all= -overwrite_original <mídia em stage>

e refaz o stage do arquivo limpo, de modo que coordenadas de GPS, seriais de dispositivo e timestamps nunca cheguem ao histórico do git. Como hooks podem ser contornados com --no-verify, a CI roda um script de segurança que quebra o build se qualquer mídia rastreada ainda carregar tags sensíveis. Defesa em profundidade, mesmo para um blog.

O que vem por aí

Notas sobre engenharia de plataforma, DevSecOps e o que eu estiver construindo — sistemas de controle no passado, Backstage e pipelines de CI/CD no presente, ferramentas aumentadas por IA no futuro. Veja a página sobre para a história completa.