Site de portfólio pessoal. Além da landing page (hero, sobre, stack, contato), tem uma página de detalhe por projeto com navegador de arquivos e visualizador de conteúdo (syntax highlight + Markdown com GFM e diagramas Mermaid), tudo lido direto do GitHub via API — sem duplicar conteúdo entre o repositório do projeto e este site.
portifolio. Adicionar ou remover um projeto da
vitrine é só editar as topics do repo no GitHub — sem tocar em código nem fazer deploy
aqui./projetos/[repo]/[[...file]] — catch-all opcional,
então /projetos/[repo] sozinho já funciona e cai no README) que busca a árvore de
arquivos do repositório (GitHub Trees API) e renderiza o conteúdo do arquivo
selecionado — com highlight de sintaxe (Shiki) para código, e Markdown (GFM +
diagramas Mermaid, carregados sob demanda) para .md.Visão geral (System Context) em docs/architecture/context.md: o site é uma aplicação única (Next.js) que conversa com a API REST do GitHub — sem banco, worker ou serviços adicionais.
Next.js (App Router) · React · TypeScript · Tailwind CSS · shadcn/ui · Shiki (highlight) · react-markdown + remark-gfm · Mermaid · Biome
Abre em http://localhost:3000. O fetch de projetos usa a API
pública do GitHub sem autenticação (limite de 60 req/hora por IP) — suficiente para uso
local, já que as respostas ficam em cache (revalidate: 3600).
Outros scripts úteis: bun run build (build de produção — necessário para reproduzir o
comportamento de code-splitting descrito no deep-dive acima, que não aparece em bun dev),
bun run lint, bun run check-types.
revalidate: 3600); um
webhook do GitHub disparando updateTag deixaria a atualização automática quase
instantânea em vez de esperar até 1h. Hoje existe um caminho manual pro mesmo problema
(botões de "Atualizar" na home e na página de cada projeto — contexto em
docs/decisions/001-fonte-e-atualizacao-de-dados-dos-projetos.md),
mas nada automático ainda.bun install
bun dev