deltalog
Blog técnico com CMS baseado em arquivos, sem banco de dados
Conteúdo versionado no Git, publicação por pull request e site estático. O CMS edita arquivos do próprio repositório.

O problema
Eu queria um lugar meu para registrar decisão técnica com o contexto ainda fresco: por que escolhi uma ferramenta, o que quebrou no caminho, o que eu faria diferente. Blog hospedado resolve a publicação e cria dois problemas no lugar. O conteúdo passa a morar em um banco que não é meu, e cada post depende de um editor que eu não controlo.
O que eu escrevo ali é o que eu vivi: problema que apareceu no meu trabalho, decisão que eu tomei, resultado que eu medi. Conteúdo assim envelhece junto com o projeto, então precisa ser versionado do mesmo jeito que código: revisável em diff, com histórico e reversível. Daí a decisão de base, que sustenta todas as outras: conteúdo em arquivos no próprio repositório, CMS por cima deles, zero banco de dados.
Stack
Clique em qualquer item para ver o que é e onde eu uso
Arquitetura
App Router com quase tudo estático. Duas coleções em arquivo, lidas em Server Component, sem camada de dados no cliente.
- Posts em .mdoc e ferramentas em .yaml, versionados no Git e editados pelo Keystatic em modo GitHub, que abre pull request em branch própria.
- Um único leitor em escopo de módulo concentra as regras de listagem: filtro de rascunho, tempo de leitura, paginação e posts relacionados.
- Busca e filtros funcionam com formulário GET e links. A página inteira funciona com JavaScript desligado.
- Rota de admin e API do CMS devolvem 404 quando não existe GitHub App configurado.
- Favicon, apple icon e cards de compartilhamento são gerados por código. Nenhuma imagem binária versionada.


