Pitch: Transformei um script Python num SaaS de Tradução por Atalho de Teclado (FastAPI, Firebase, OTA) — Em busca de Beta Testers!
Fala, comunidade do TabNews!
Quero compartilhar com vocês a jornada de construção do meu primeiro SaaS, os desafios técnicos que enfrentei para sair do ambiente local para a nuvem, e convidar quem quiser quebrar o sistema para ser meu beta tester.
💡 A Origem do Problema
Como técnico de audiovisual, operador de live streaming e jogador assíduo de títulos competitivos nas horas vagas, eu tinha uma dor constante: fazer Alt+Tab é um pecado mortal.
Seja com os painéis de LED e o vMix rodando, ou no meio de uma partida, sair da tela principal para ir ao navegador traduzir um texto quebrava completamente o meu fluxo. Eu precisava de algo que traduzisse qualquer texto instantaneamente, direto na tela, apenas selecionando e apertando um atalho no teclado.
Foi assim que nasceu o TradutorPro.
🛠️ A Jornada e o Stack Tecnológico
O que começou como um script simples em Python no meu PC precisou evoluir para virar um produto comercial. A arquitetura atual ficou assim:
O Cérebro (Backend): FastAPI rodando na nuvem (Render), responsável por receber os textos, conectar com a API do Google Gemini para traduções super contextuais e devolver o resultado.
A Segurança: Firebase Authentication. Bloqueei a porta para evitar fraudes: o backend só processa a tradução se o token bater e o e-mail do usuário estiver confirmado (nada de contas fakes gastando a cota gratuita). Banco de dados no Firestore para gerenciar os créditos do plano Free e PRO.
O Cliente (Frontend): Uma interface web HTML/JS/CSS embutida com PyWebview.
O Empacotamento: Usei o PyInstaller para compilar tudo e o Inno Setup para criar aquele assistente de instalação clássico do Windows.
🦇 O Desafio do OTA (Over-The-Air)
O maior obstáculo foi: como atualizar o .exe na máquina do cliente sem pedir para ele baixar um novo instalador a cada correção?
Como um .exe em execução não pode se auto-deletar no Windows, implementei uma técnica de "Bat Swap". O programa checa um versao.json no meu GitHub. Se houver versão nova, ele baixa o binário silenciosamente no background, cria um script .bat temporário, fecha o app principal, o .bat substitui o .exe antigo pelo novo e reabre o programa em questão de milissegundos. Magia negra, mas funciona lindamente!
⚠️ O Elefante na Sala (Disclaimer)
Quero deixar algo muito frisado aqui: este é apenas o nosso MVP (Versão 1.2).
O que construí até agora é a fundação. Muita, mas muita coisa vai mudar e melhorar. A interface vai evoluir, novos atalhos e idiomas serão adicionados, a infraestrutura vai migrar para servidores mais robustos, e o código vai ser refatorado. Estamos no degrau zero de uma escada bem alta.
🧪 Convite para Beta Testers
É aqui que vocês entram. Preciso de pessoas para testar o fluxo completo: criar a conta, validar o e-mail (vejam se cai no spam!), gastar os créditos gratuitos e tentar achar brechas.
🔗 https://github.com/lopesc73-oss/tradutor-atualizacoes/releases
🎁 Bônus para a comunidade: Os primeiros 20 que criarem conta, testarem e deixarem um comentário aqui no post com um feedback (seja um bug, uma crítica de UI ou uma sugestão de feature), eu vou entrar no painel e ativar uma licença PRO vitalícia manualmente como agradecimento.(Assim que disponivel)
O que acham da arquitetura? Como vocês costumam lidar com falsos positivos do Windows Defender em apps Python compilados? Todo feedback é ouro!