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?
- O SEO é melhor. O Google rastreia páginas estáticas instantaneamente. Não há atrasos de hidratação (hydration).
- A velocidade é maior. Os usuários acessam as ferramentas imediatamente. Eles não precisam esperar o carregamento de grandes pacotes (bundles) de JavaScript.
- 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.
