100 Dias, 87 Ferramentas, Zero Servidores

Passei 100 dias construindo o ToolKnit. É uma suíte de 87 ferramentas baseadas no navegador.

A maioria dos sites de ferramentas funciona assim:

  • Você faz o upload de um arquivo.
  • Um servidor o processa.
  • Você baixa o resultado.

Isso significa que seus PDFs e fotos sensíveis ficam no servidor de outra pessoa. Eu queria um jeito diferente. Cada ferramenta no ToolKnit roda inteiramente no seu navegador. Nenhum arquivo sai do seu dispositivo.

Aqui está o que aprendi sobre construir sem um backend.

A Stack

  • HTML e Tailwind CSS.
  • Vanilla JavaScript.
  • PHP apenas para estatísticas simples.
  • Zero frameworks. Sem React. Sem Vue.

Por que HTML Estático?

  1. O SEO é melhor. O Google rastreia páginas estáticas instantaneamente. Não há atrasos de hidratação (hydration).
  2. A velocidade é maior. Os usuários acessam as ferramentas imediatamente. Eles não precisam esperar o carregamento de grandes pacotes (bundles) de JavaScript.
  3. Os custos são baixos. Eu quase não utilizo poder de processamento do servidor.

Os Desafios

Construir 87 páginas sem componentes é difícil. Se eu mudar um link no rodapé, tenho que editar 87 arquivos. Tive que escrever scripts em Python para gerenciar isso.

Aprendi os limites do navegador:

  • Compressão de PDF é difícil. Requer manipulação complexa de streams para evitar a corrupção de arquivos.
  • Síntese de áudio é profunda. Criar um som de piano realista requer múltiplos osciladores e harmônicos personalizados.
  • Vídeo é pesado. Usar ffmpeg.wasm funciona, mas o download de 32 MB é um fardo para conexões lentas.

Minha Maior Lição

Mate as funcionalidades que "quase" funcionam.

Eu construí uma ferramenta para Live Photos do iPhone. Ela tinha três falhas principais:

  • O cálculo para cantos arredondados estava incorreto na Canvas API.
  • A transcodificação de vídeo demorava muito.
  • Aplicativos como o WeChat removiam os dados de que eu precisava.

Uma ferramenta que é 90% funcional corrói a confiança. Se não for excelente, não a lance.

O que vem a seguir?

Agora estou construindo um aplicativo desktop usando Tauri e Rust. Ele seguirá a mesma regra: todo o processamento permanece local.

Resumo da construção de 100 dias: • 87 ferramentas lançadas. • 3 ferramentas descartadas. • 0 dependências de frameworks. • Mais de 3.000 usos totais.

Você está construindo ferramentas client-side? Conte-me sobre sua arquitetura nos comentários.

Fonte: https://dev.to/dngzihng114379/100-days-87-tools-zero-servers-what-i-learned-building-a-fully-client-side-utility-suite-1bh0