Problema
A maioria dos aplicativos de dieta e treino falha por causa do atrito diário: registrar cada alimento manualmente em tabelas extensas ou montar progressões de treino exige tempo e disciplina que o usuário comum abandona nas primeiras semanas.
A proposta do Fit Tracker foi reduzir esse atrito usando IA multimodal — permitindo que o usuário registre uma refeição por foto, áudio ou texto livre e receba treinos personalizados — sem transformar o app em um produto inviável financeiramente por causa do custo variável de chamadas a LLMs.
Restrições
- Unit economics de IA: chamadas multimodais (especialmente análise de imagem e modelos mais capazes) têm custo variável por uso; um plano único com modelo pesado ilimitado quebraria a margem do produto.
- Experiência mobile sem dobrar a base de código: era preciso estar disponível tanto na web quanto na Google Play Store mantendo um único ciclo de entrega rápido.
- Confiabilidade de dados nutricionais e financeiros: o app lida com contas de usuários, histórico de treinos/dietas, assinaturas e webhooks de pagamento em produção.
Decisão
Chosen
Next.js PWA empacotado com Android TWA (Bubblewrap) + escolha explícita de modelo por plano
Discarded alternative
Apps nativos separados (Kotlin/Swift) com modelo de IA fixo no backend
O TWA elimina a duplicação de UI e regras de negócio mantendo Google Play Billing e notificações push, e o seletor de modelo alinha margem e expectativa de latência.
- Entrada (Foto, Áudio ou Texto)
- Seleção de Tier (Haiku / Sonnet / Opus)
- Claude API (Análise estruturada)
- Persistência Prisma + Supabase
- Web + Android TWA (Google Play)
- Stack única e produtiva: aplicação full-stack construída em Next.js 16 + React 19 + TypeScript, estilizada com Tailwind CSS, persistência com Prisma + PostgreSQL (Supabase) e deploy na Vercel.
- Nível de raciocínio escolhido pelo usuário: em vez de esconder o modelo, o produto permite ao usuário escolher o nível de "pensamento" da IA (Haiku, Sonnet ou Opus via Claude API), alinhando diretamente a profundidade da análise e o custo do modelo ao plano contratado.
- Entrega mobile via Android TWA (Trusted Web Activity): empacotamento do PWA com Bubblewrap e integração com Google Play Billing, permitindo publicar na Play Store com recursos nativos (atalhos e notificações push) sem manter um segundo código em Kotlin/Swift.
- Cobertura de testes de ponta a ponta: suíte com Vitest (unitário e integração) e Playwright (E2E) para proteger fluxos críticos antes de cada release.
Resultado
- Produto em produção em fittracker.com.br e publicado na Google Play Store.
- Fluxo multimodal funcional em produção (registro de refeições por foto, áudio ou texto e geração/acompanhamento de treinos).
- Modelo de custo previsível por tier de uso, conectando a escolha de modelo de IA diretamente à receita do assinante.
O que aprendi
- Em produtos com IA, arquitetura também é modelo de negócio: expor a escolha de capacidade (Haiku/Sonnet/Opus) resolve simultaneamente expectativa do usuário e controle de margem.
- Distribuição importa tanto quanto código: publicar via TWA exigiu lidar com assinatura de chaves, manifestos, validação de origem e fluxo real de loja — experiência que muda a forma como se projeta um produto web desde o início.
- Testes automatizados dão velocidade a quem trabalha solo: com uma suíte de integração e E2E confiável, é possível iterar diariamente em produção com segurança.