Voltar para as análises
Registros de desenvolvimento9 min de leitura

Construindo o BJJ Buddy ao vivo: uma sessão de treino Speediance e desenvolvimento com IA

Uma sessão real de domingo: enviando autenticação do Supabase para o BJJ Buddy, depurando problemas de offload do GLM 4.7 e treinando séries de Speediance enquanto reviso dados do Whoop e Garmin.

Toby 21 de setembro de 2026

A resposta para como é uma construção assistida por IA na prática é: bagunçada, paralela e significativamente mais útil do que uma demo polida. No último domingo, transmiti uma sessão cujo objetivo era duplo: migrar o backend do BJJ Buddy de um protótipo puramente local para uma realidade sincronizada na nuvem, e manter meu volume de treino usando um template Speediance Warrior One. O resultado foi uma sessão em que o cérebro nunca desliga de verdade — você faz uma série de rosca pesada, dá três passos até a mesa, e faz engenharia de prompt para corrigir um fluxo de autenticação do Supabase que falhou antes do cronômetro de descanso expirar.

A Construção Técnica: Conectando o BJJ Buddy à Nuvem

O BJJ Buddy está evoluindo. Até agora, era um experimento local-first. Esta sessão foi sobre torná-lo real para os usuários integrando o Supabase de ponta a ponta. A transição para um backend sincronizado na nuvem nunca é tão simples quanto apertar um botão de "deploy"; ela exige uma rearquitetura sistemática de como os dados fluem pelo aplicativo.

As principais conquistas durante a live incluíram:

  • Reformulação da Autenticação: Implementação completa de autenticação por e-mail e senha. Encontramos um problema logo no início: os e-mails de criação de conta não estavam sendo disparados; a integração inicial estava silenciosa, o que nos levou a alguns minutos depurando a transição do SMTP antes de perceber que o listener não havia sido inicializado corretamente.
  • Row Level Security (RLS): Em um aplicativo de fitness, a privacidade dos dados é fundamental. Dediquei uma parte significativa da sessão escrevendo e testando políticas de RLS para as tabelas de sessões de treino, biometria e do diário de treino principal. Isso garante que, mesmo com os dados na nuvem, um usuário só possa interagir com as suas próprias linhas.
  • O Loop da Interface: Construí uma tela inicial funcional, uma tela de registro de treino simplificada e uma tela de histórico de sessões. O destaque aqui foi a funcionalidade de edição no local para sessões antigas, permitindo que os usuários corrijam peso ou número de repetições sem sair da lista de histórico.
  • O Modo Demo Híbrido: Era importante manter um modo demo. Isso permite que usuários em potencial explorem a interface e registrem sessões de teste sem precisar se cadastrar. Construir a lógica que alterna entre estado local e estado do Supabase com base no status de autenticação foi uma grande vitória da noite.

A parte mais interessante da construção não foi o código em si, mas o fluxo de trabalho. Depois de adicionar um fluxo de salvamento ao diário de treino, notei que faltava um botão de "fechar" no modal de sucesso. Em vez de mexer no CSS eu mesmo, usei meu stack de IA para resolver a micro-tarefa. Pedi para a ARIA (minha agente de IA principal) passar a tarefa para a Clarity (um sub-bot local).

Clarity iniciou uma sessão local do Qwen 3 Coder, identificou o div e aplicou o patch. Toda a transferência levou um único prompt em linguagem natural e cerca de quinze segundos de tempo de execução.

A Pilha de Orquestração de IA: ARIA, Clarity e Nova

Meu ambiente de desenvolvimento atual usa um sistema que chamo de OpenClaw, estruturado como um bot controlador principal com sub-bots especializados. Essa arquitetura é guiada por uma restrição muito prática: custo e eficiência de tokens. Eu estava em aproximadamente 47% do uso mensal da minha assinatura. Se eu pedisse a um modelo de alto nível como Claude 3.5 Sonnet para realizar cada correção trivial de CSS ou caça a bugs menores, eu esgotaria meu orçamento no meio do mês.

Em vez disso, uso modelos locais para o 'trabalho braçal':

  • ARIA (A Orquestradora): O modelo remoto de alto raciocínio que entende a arquitetura do projeto e delega tarefas.
  • Clarity (A Codificadora): Um sub-bot local rodando Qwen 3 Coder. Ela lida com as edições reais de arquivos e com a sintaxe.
  • Nova (A Pesquisadora/Debugger): Um bot local rodando GLM 4.7 Flash, usado para vasculhar documentação ou raciocinar sobre logs de erro.

Encontrei uma limitação de hardware fascinante durante a stream: a Nova continuava falhando ao carregar. Como o GLM 4.7 Flash é um modelo novo e maior, ele deveria caber na memória unificada junto com o Qwen. No entanto, um modelo Qwen 3 menor que eu tinha rodando para tarefas cron em segundo plano era o culpado. Toda vez que uma tarefa cron era disparada, ela roubava uma fatia da VRAM, fazendo o sistema despejar o modelo GLM maior do pool para abrir espaço. Remover completamente os modelos 'pequenos' para qualquer coisa que não fosse trabalho da Nova resolveu os problemas de estabilidade imediatamente. A lição: em sistemas de memória unificada, dois modelos locais grandes podem coexistir, mas um terceiro modelo 'minúsculo' é frequentemente o catalisador de uma falha.

Speediance Ao Vivo: Treinando nas Lacunas

O treino da noite foi o Warrior One, um template personalizado que venho refinando. Meu benchmark atual é de aproximadamente 20 RM para aquecimentos, fazendo séries de 13 repetições. Mesmo com a mais nova atualização de software 3.1, o Speediance ainda tem um ponto persistente de fricção de UX: o cronômetro de descanso forçado. Embora seja pensado para mantê-lo em movimento, em uma sessão intensa de desenvolvimento, ele frequentemente me obriga a voltar andando até a mesa, digitar um prompt e então correr de volta até a máquina antes que ela avance para o próximo movimento.

Duas percepções específicas sobre o hardware e software do Speediance surgiram desta sessão:

1. O Problema do Padrão de Início Seguro: A Speediance introduziu recentemente um recurso de 'Início Seguro' para rosca em pé e outros exercícios.

Ele foi projetado para evitar que os punhos sejam puxados bruscamente para frente ou voltem rapidamente para dentro da máquina. No entanto, para um alongamento de cima para baixo (que eu uso para mobilidade dos ombros), o Safety Start mata a amplitude de movimento. Ele para o cabo antes que você consiga alcançar a extensão completa necessária para o alongamento. Minha série mais pesada nesse exercício não é sobre a carga; é sobre a profundidade. O Safety Start efetivamente transforma um exercício focado em mobilidade em uma rosca padrão de amplitude limitada. Esse é um recurso que precisa ser uma opção 'opt-in' por exercício, não um padrão global. Curiosamente, a Tonal nunca lançou um recurso semelhante exatamente por esse motivo — ele interfere na física do movimento.

2. Problemas de Retração do 2S: Notei que a retração do cabo no meu Speediance 2S parece mais 'amolecida' do que no Gym Monster original. Há um pequeno atraso na recolha que não estava presente no hardware anterior. A Speediance está voltando de um feriado na China, então estou otimista que uma atualização de firmware possa resolver a calibração do motor em breve.

Numa nota mais positiva, a durabilidade do hardware foi testada quando eu acidentalmente comecei uma série com os Smart Handles nos lados errados e derrubei um no meio do movimento. O hardware aguentou firme. É um equipamento robusto que sobrevive ao ocasional erro de 'cérebro de live'.

O Stack de Wearables: Garmin vs. Whoop

Durante o exercício, eu estava monitorando tanto o Garmin quanto o Whoop. Eles servem a propósitos diferentes no meu ecossistema. Embora as pessoas frequentemente perguntem qual é 'melhor', essa sessão destacou por que eu mantenho os dois nos meus pulsos.

Plataforma Métrica Principal Por que Importou Hoje à Noite
Whoop % de Recuperação & Carga O Whoop mostrou uma recuperação 35%. Isso me disse que eu não deveria buscar um recorde pessoal no Speediance. Eu fiquei na zona de volume de 'manutenção'.
Garmin Gráfico de Carga de Treino Eu usei isso para acompanhar a progressão da minha base aeróbica. Atualmente estou me preparando para uma prova enquanto carrego massa significativa, e o gráfico de carga de 4 semanas é minha bíblia.
Painel Personalizado Relatório Matinal Combinado Isso agrega ambos para sugerir se eu devo correr amanhã. Como a carga de hoje à noite foi moderada, amanhã é dia de ir.

O Garmin continua sendo um estudo em contradições. O gráfico 'Carga de Treino' é a tela mais importante para minha preparação atual para a prova, no entanto está enterrada cinco níveis de profundidade no aplicativo mobile (Estatísticas de Performance > Status de Treino > Carga). É um erro significativo de produto esse sinal estar escondido atrás de tanto ruído.

Além disso, o Garmin ainda não oferece uma forma de visualizar a 'Aderência aos Treinos Sugeridos' de relance, o que dificulta ver se você está realmente seguindo o plano ao longo de um mês.

Uma correção crítica que fiz no meio do processo: minha Frequência Cardíaca Máxima estava configurada incorretamente com base em dados de quase oito anos atrás. Isso fazia com que cada treino fosse registrado como 'baixo anaeróbico'. Atualizar isso para minha realidade fisiológica atual corrigiu imediatamente o gráfico de distribuição de carga, tornando os treinos sugeridos realmente utilizáveis novamente.

Treinando para uma Corrida no Meu Maior Peso

Atualmente, estou treinando para uma corrida estando no meu maior peso corporal até hoje. O feedback fisiológico é fascinante. Sete anos atrás, quando eu era puramente um corredor, minha curva de carga de treinamento disparava em duas semanas. Agora, são necessárias quase oito semanas de esforço consistente para ver a mesma 'linha verde' subir. Um corpo mais pesado e mais velho responde mais devagar, mas os dados confirmam que o progresso é mais estável. Esta é a melhor forma física em que estive desde antes de 2022, mesmo que a balança diga que estou 'fora de especificação' para um corredor tradicional.

Principais Conclusões da Sessão

  • Fluxos de Trabalho Agentes: Uma configuração de bot principal com sub-bots é a única maneira de escalar o desenvolvimento permanecendo dentro dos orçamentos de tokens de API. Modelos locais como Qwen 3 Coder agora são 'bons o suficiente' para 80% das tarefas de UI.
  • UX do Garmin: Os dados mais vitais são frequentemente os piores posicionados. Se você não está explorando os submenus de 'Carga', está perdendo o verdadeiro valor do ecossistema Garmin.
  • Segurança do Speediance: Os usuários devem ter cuidado com o novo 'Safety Start'. É ótimo para iniciantes, mas pode ativamente prejudicar movimentos avançados que exigem alongamento de amplitude completa de movimento.
  • O Cérebro Paralelo: Construir com IA enquanto se treina não é apenas sobre economizar tempo; é sobre fadiga de 'troca de contexto'. Usar IA para lidar com as micro-decisões permite que você economize sua energia cognitiva para as séries pesadas e a arquitetura de alto nível.

A sessão completa, incluindo o walkthrough do backend do BJJ Buddy e o drop das Smart Handles, está arquivada para assinantes. Se você quiser ver o fluxo não editado de prompts e repetições, o link está abaixo.

Assista à sessão completa ao vivo de Build BJJ Buddy mais a Sessão de Dev com IA do Speediance no YouTube.

#BJJ Buddy#Speediance#Supabase#OpenClaw#Whoop#Garmin