Ir para o conteúdo principalIr para projetos
<jgbriel.dev/>
Voltar

QuickToolbox — Hub de Ferramentas Online

QuickToolbox — Hub de Ferramentas Online

Comecei como um toolkit de 13 operações de imagem/PDF numa SPA única, sem SEO por ferramenta e sem identidade própria. Reescrevi como hub multi-ferramenta: 33 ferramentas em 5 categorias, cada uma com página, título e meta description próprios, geradas em boot a partir de um catálogo central — sem Next.js, sem Astro, sem bundler. O mesmo princípio dos scripts de imagem/PDF originais (funções puras, sem I/O) virou a espinha dorsal de todo o site: cada ferramenta client-side também é uma função pura testada por node:test, e o mesmo código testado é o que roda em produção.

O Desafio

Escalar de 13 operações fixas pra dezenas de ferramentas sem duplicar HTML por página nem adicionar framework/build step — e ainda assim ter title/meta/H1 únicos por URL, essencial pra qualquer chance de tráfego orgânico.

A Solução

Um catálogo central (nome, slug, categoria, descrição) alimenta nav, home e sitemap.xml ao mesmo tempo. Um script Node injeta esse catálogo em partials de header/footer/layout e regenera todas as páginas no boot — editar um partial nunca fica desatualizado numa página já gerada. Adicionar ferramenta nova é uma função pura + um teste + uma entrada no catálogo, nada mais.

Resultados

33 ferramentas no ar em 5 categorias, partindo de 13 operações fixas na versão anterior
102 testes automatizados (node:test) cobrindo toda lógica de ferramenta
Zero framework/bundler no frontend — HTML gerado + ES modules puros
CI roda a suíte inteira + checagem estrutural de SEO (sem title/meta duplicado) a cada push

Funcionalidades Principais

13 operações de imagem/PDF via API Express protegida por rate-limit e CSP
9 dev tools 100% client-side (JSON formatter, Base64, UUID, regex tester...) — nada sai do navegador
7 geradores de teste: CPF/CNPJ/cartão com dígito verificador válido, senha, hash MD5/SHA
4 conversores: unidades, base numérica, case, slugify
Script Node gera cada página a partir de partials compartilhados no boot do servidor
sitemap.xml e verificação de meta duplicado rodando no CI a cada push
Privacy policy e banner de consentimento prontos pra AdSense

Galeria