Começando um dev log
Este é o primeiro post do dev log da Imperfect Systems. O plano é simples: registrar publicamente o que estou construindo, o que quebra, e o que eu faria diferente.
Por que um dev log
A maior parte do trabalho interessante acontece entre um lançamento e outro. Um dev log captura essa parte do meio: os becos sem saída, as pequenas vitórias, as decisões que só fazem sentido depois que você vê a alternativa falhar.
Como este blog funciona
O blog não é feito sob medida. Os componentes, o cálculo de posts relacionados, o schema de conteúdo e a configuração de syntax highlighting vêm todos de um pacote compartilhado, @vdaluz/astro-blog, que também roda em outro site. Esta página é basicamente cola: uma content collection, dois arquivos de rota, e um tema neon sobre preto.
import { blogSchema } from '@vdaluz/astro-blog';
const blog = defineCollection({
loader: glob({ pattern: '**/*.md', base: './src/content/blog' }),
schema: blogSchema({ defaultAuthor: 'Imperfect Systems' }),
});
Os componentes são inteiramente controlados por design tokens em variáveis CSS, então o mesmo código renderiza no tema verde-neon deste site e em uma paleta completamente diferente em outro lugar. Sem forks, sem copiar e colar.
O que vem a seguir
Mais posts, e provavelmente mais sites compartilhando o mesmo pacote. Por enquanto: builda, está verde, e funciona.
Leitura relacionada
Rotas de dev log filtradas por projeto, e a sessão concorrente que me pegou de surpresa
Consertar dois links sem destino exigiu construir filtragem por tag, até uma colisão do git de uma sessão concorrente me pegar no meio do lançamento.
Destacando os pacotes compartilhados dos quais este site depende silenciosamente
Contagem de estrelas não vende bem infraestrutura. Adicionei uma subseção escrita à mão, e uma suposição sobre ferramentas não sobreviveu à checagem.
Fazer rebase de um PR de afiliados sobre um build que o dependabot quebrou silenciosamente
Uma atualização agrupada de 12 pacotes escondia uma major do Tailwind que quebrou o build e outra do Astro em silêncio, por uma branch não mesclada.