Dev Tools
Dezessete utilitários que eu cansei de procurar no Google toda semana, reunidos num painel só. Não pede cadastro e não tem limite de uso.
O problema
Converter um PNG pra WebP, tirar o fundo de uma imagem, formatar um JSON, gerar um QR, ler texto de um print. Coisa de dois minutos que sempre acaba no mesmo lugar: um site coberto de anúncio, com marca d'água na saída e um botão de assinar plano no meio do caminho. Nenhuma dessas tarefas é difícil, e mesmo assim todas cobram pedágio.
A decisão
Fazer as dezessete de uma vez, num painel único, e deixar no ar de graça. A decisão que sustenta o resto foi de escopo: cada ferramenta faz uma coisa só e não pede nada em troca. Não existe conta pra criar nem plano pra assinar.
Dezessete ferramentas, uma rota
O caminho óbvio seria dezessete pastas, dezessete páginas e dezessete cópias da mesma casca. Funciona até a hora de mexer no layout: aí é a mesma correção dezessete vezes, e a décima sétima é a que fica esquecida.
Então o painel inteiro é uma rota dinâmica só, a /[tool], servida por um registro central. Cada ferramenta se declara ali com nome, categoria, descrição e componente; a barra lateral, a busca e os cartões da home leem desse mesmo registro. Adicionar a décima oitava é escrever a ferramenta e registrar uma linha. A navegação se atualiza sozinha, e a busca nunca discorda do menu porque os dois leem a mesma lista.
O arquivo não sai da sua máquina
O processamento acontece na aba, não num servidor meu. Isso resolve junto o custo de infraestrutura, a espera do upload e a questão da privacidade, porque um arquivo que nunca sobe não precisa de política de retenção.
Copiar e colar até o padrão aparecer
Aqui eu aprendi a diferença entre repetir e generalizar cedo demais. As três primeiras ferramentas eu escrevi copiando e colando de propósito, sem abstrair nada. Só quando a terceira ficou pronta o formato comum apareceu sozinho, e aí o registro central virou consequência de uma coisa que eu já tinha visto três vezes acontecer. Se eu tivesse abstraído na primeira, teria acertado a casca por sorte.