- Inclui recursos de criação de planos de treino, acompanhamento de progresso e uma ampla base de dados de exercícios
- Foi iniciado com base na experiência do fracasso anterior do workout.lol e tem como objetivo ser um projeto evolutivo sustentável para a comunidade open source
- Usa uma arquitetura baseada nos princípios de Feature-Sliced Design e em Next.js, enfatizando independência por funcionalidade, escalabilidade e facilidade de manutenção do código
- A base de dados de exercícios pode ser importada facilmente por arquivos CSV e inclui detalhes como várias características do exercício, vídeos e músculos-alvo principais
- No futuro, pretende expandir continuamente os recursos com base na participação da comunidade, incluindo aplicativo mobile, badges/gamificação, integração com wearables e fórum da comunidade
Visão geral e valor do Workout-Cool
- Workout-Cool é uma plataforma moderna open source de coaching fitness que permite ao usuário criar planos de treino personalizados, registrar seu progresso e usar amplamente uma rica base de dados de exercícios (com descrições, vídeos etc.)
- Um desenvolvedor que vivenciou diretamente o abandono e encerramento do projeto workout.lol o recriou como uma plataforma open source de fitness mais sustentável e moderna para a comunidade de treino
Início do projeto e motivação
- Como principal contribuidor do projeto workout.lol, enfrentou dificuldades como falha na colaboração com parceiros de fornecimento de vídeos e problemas com custos de licenciamento de vídeos
- Depois que o projeto foi vendido a outra pessoa, ele foi rapidamente descontinuado; por mais de 9 meses houve tentativas de comunicação com o novo proprietário, sem resposta
- Decidiu construir uma nova plataforma moderna, com melhorias em todo o conjunto, para não deixar o valor do projeto anterior se perder
- Este projeto não tem objetivo comercial. Ele representa uma evolução que promete manutenção e desenvolvimento confiáveis para a comunidade open source
Filosofia de operação baseada na comunidade
- Como desenvolvedor e também usuário real, reflete diretamente as funcionalidades e experiências de que a comunidade precisa
- Quem já usou o workout.lol é bem-vindo, e novos usuários podem experimentar o valor de uma plataforma fitness voltada para o futuro
- Qualquer pessoa pode contribuir diretamente e enviar sugestões de melhoria
Base de dados de exercícios e importação
- O projeto vem com uma rica base de dados de exercícios
- Em formato CSV de exemplo, é possível importar de forma personalizada várias informações de cada exercício, como id, nome, descrição, URL de vídeo, foto, músculo-alvo principal e atributos
- Exemplos de colunas principais: id, name, name_en, description, description_en, full_video_url, full_video_image_url, introduction, slug, attribute_name, attribute_value etc.
- Exemplos de tipos de atributo: TYPE (força/cardio/pliometria/alongamento), PRIMARY_MUSCLE, SECONDARY_MUSCLE, EQUIPMENT, MECHANICS_TYPE etc.
- Os dados podem ser importados imediatamente com um comando de uma linha, oferecendo grande escalabilidade para expansão da base
Arquitetura do projeto
- Baseado em Next.js App Router com aplicação dos princípios de Feature-Sliced Design (FSD)
- Implementa uma estrutura independente por funcionalidade e fácil de reutilizar
- Separação clara das camadas de domínio: shared → entities → features → widgets → app
- Mantém a consistência entre UI, lógica de negócio e camada de dados
- Exemplo de separação de arquivos:
app/ - rotas e layouts do Next.js
processes/ - fluxos de negócio complexos
widgets/ - UI componível (ex.: Sidebar, Header)
features/ - unidades principais (autenticação, gerenciamento de exercícios etc.)
entities/ - usuário, exercício, workout etc.
shared/ - código e tipos compartilhados
styles/ - CSS global/tema
Desenvolvimento e deploy
- Requer Node.js 18+, PostgreSQL (via Docker ou instalação direta) e pnpm ou npm
- Após clonar, instalar as dependências, configurar variáveis de ambiente, preparar o banco de dados (automático ou manual) e acessar http://localhost:3000 no navegador
- Também é possível executar manualmente as migrações do banco de dados e iniciar o servidor de desenvolvimento
- Build da imagem Docker e execução de contêiner (planejado)
Recursos planejados
- Adição de exercícios/vídeos
- Aplicativo mobile (baseado em React Native)
- Gamificação (sistema de badges etc.)
- Estatísticas avançadas de progresso e visualização
- Integração com wearables (relógios/trackers)
- Suporte multilíngue
- Autenticação OAuth (Google, Apple etc.)
- Fórum da comunidade integrado
1 comentários
Comentários do Hacker News
Vendi o app para uma pessoa, mas ela acabou simplesmente abandonando tudo
Mandei várias mensagens dizendo para entrar em contato se precisasse de suporte, mas nunca recebi uma resposta sequer
Mesmo assim, fico realmente muito feliz em ver que ele está sendo cuidado de novo
As melhorias na UI também ficaram excelentes, trabalho incrível
Você nem imagina o quanto fiquei feliz ao ver seu nome aparecer
Eu também senti aquele aperto de ver o projeto parado sem ir a lugar nenhum
No fim, foi isso que me levou a jogar tudo fora e reconstruir, mantendo a abertura que você mostrou quando começou
Valeu pelo elogio à UI, vindo de você isso significa muito
Se algum dia quiser voltar, será sempre bem-vindo
Suas ideias, opiniões ou simplesmente sua presença já têm muito valor
Estou trabalhando numa API de agendamento automático de calendário integrada com Apple CalDAV (iCal)
Estou criando um recurso de gestão de agenda orientado por metas (usando Google ORTools para calcular muito rápido um modelo enorme de restrições CP-SAT, processando até 1 ano em menos de 5 segundos)
Também inclui uma função de dieta alinhada a metas nutricionais
Na verdade, eu queria muito colocar um sistema de plano de treino assim, mas não fazia ideia do que usar
Agora finalmente ficou claro o que usar
Obrigado por criar este projeto
Agora quero acompanhar para ver que futuro este projeto vai ter
Também queria saber sua opinião sobre o projeto wger
https://github.com/wger-project é uma plataforma FLOSS self-hosted de gestão de fitness/exercícios/nutrição sob licença AGPL
Acho que já existe há quase 10 anos; é baseada em um app Django e também tem app oficial em Flutter, então pode ser usada em Android/iOS/Windows/Linux/macOS
Suporta múltiplos usuários e pode até ser usada para administrar academias
body.build é um projeto FLOSS mais novo, baseado no navegador e focado em montar programas de musculação
O autor do body.build também contribui para o wger
Depois de muita tentativa e erro, hoje uso o wger com sucesso no meu homelab
Há vários pontos a considerar no self-hosting, mas funciona bem
A maior desvantagem é a abrangência do banco de dados de exercícios, mas felizmente os contribuidores vêm expandindo isso aos poucos
Se alguém puder contribuir com dados de exercícios (e mídia de exercícios), esse projeto AGPL certamente vai agradecer
A UX do site é péssima e o app mobile (no iOS) está cheio de bugs
Toda vez que tento começar um exercício, ajustar peso ou registrar uma sessão, ele trava, fecha ou me desloga repetidamente
Agora estou usando o LiftLog, que tem tudo o que eu quero e é FOSS
https://github.com/LiamMorrow/LiftLog
É curioso como fitness e musculação são hobbies tão comuns hoje em dia e, ainda assim, quase não existem apps não comerciais realmente bons e bem mantidos
Essa foi a conclusão a que cheguei depois de testar pessoalmente dezenas de projetos no Github
Depois que você ganha experiência, o mais importante não é tanto o que o app faz, mas o quão consistentemente você registra tudo para gerenciar a sobrecarga progressiva
Este app é uma boa escolha para iniciantes começarem
Para ter adoção mais ampla, duas coisas são indispensáveis
https://json-schema.app/view/#?url=https%3A%2F%2Fgist.githubusercontent.com%2Fgavmor%2Fb74c4746aa9f3f63b0f50863a5e62d52%2Fraw%2F01318d1107f67ac83387a905d6556736fa7797ff%2Flifting.json
Não concordo que este app seja uma boa opção para iniciantes
Aplaudo o esforço, mas a forma como os exercícios são recomendados me preocupa
Ex.: se você escolhe "costas/bíceps", aparecem 9 exercícios de forma desordenada
Não há cuidado com a ordem nem com a organização dos exercícios; um compound lift pode aparecer no meio, ou chin-up surgir três vezes
Não há cálculo de 1RM ligado a repetições/séries/peso
Também recomenda bro split em vez de algo mais sólido, o que deixa tudo ainda mais disperso
Fiquei com a impressão de que um app PPL mínimo, baseado em equipamento, poderia ficar bem melhor que isso
Também acho que, com o tempo, o que realmente importa é consistência e registro de progresso (no meu caso, mais para cuidar do mental do que para desempenho, então hoje foco mais em acompanhar meu estado)
Salvar rotinas e fazer acompanhamento de longo prazo já estão no roadmap
Por isso a arquitetura de "workout session" foi desenhada de forma totalmente diferente do app antigo
Quero permitir que o usuário crie blocos de treino individuais e ter a melhor experiência possível para reutilizar, compartilhar, analisar e evoluir isso
Se puder, adoraria ouvir como você abordou esse gerenciamento de rotinas no PWA que fez
Parece que seguimos caminhos parecidos, então eu realmente gostaria de ouvir como você fez
https://wrkout.xyz/ (API aberta de banco de dados de exercícios com imagens/vídeos)
https://github.com/wrkout/exercises.json (dataset open source de exercícios)
Recomendo usar se for útil
Desta vez, para evitar com clareza qualquer problema de licença ligado a vídeos, eu e meu parceiro montamos o dataset completamente do zero
Assim temos controle total dos dados para ajustar atributos, traduções etc. do jeito que quisermos
Mas fico muito feliz em ver vários projetos abertos surgindo nessa área
E, se der para as duas comunidades crescerem, eu adoraria buscar alguma sinergia
DMs são bem-vindas
Não é só jogar ideias, você já reuniu um dataset inteiro para que até iniciantes possam começar de imediato
Muito obrigado mesmo
O que eu gostaria é de um recurso que recomendasse carga/repetições por exercício
Pode valer a pena olhar o programa de fitness "100 Pushups" como referência
Se tiver interesse, também topo discutir a UI
Todos os dados do usuário ficariam armazenados no PDS, sem necessidade de servidor separado
Mesmo que o projeto volte a ser abandonado, os dados continuariam funcionando para sempre
Conheço esse app, ele é realmente simples, e essa progressão adaptativa é especialmente ótima para motivar iniciantes
Quero muito discutir a UI para implementar uma rotina autorregulada e progressiva
Primeiro vou pensar em um algoritmo (meio tosco) e então me manda DM
0:{"a":"$@1","f":"","b":"eETmgndxtv4Ar0i8Wync1"}
1:{"serverError":"An unexpected error occurred."}
Também compartilho o código da requisição (incluindo cabeçalhos detalhados e informações)
Com o pico de tráfego vindo do HN, o servidor foi destruído além do esperado
Vou estabilizar tudo e corrigir os bugs em breve
Obrigado mais uma vez por testar e pelo feedback
Mas, no fundo, o sistema de recomendação de exercícios não considera os fundamentos de design de programas de treino
No estado atual, é difícil recomendar o uso para montar programas de treino
Talvez fosse melhor focar menos em geração de rotina e mais em registro de treino já consolidado/importação de templates de rotina (também vi que você já demonstrou interesse nisso)
Principais problemas que encontrei
A UI e as explicações estão realmente muito boas, mas a seleção de exercícios, quando aparece, é vaga ou pouco racional
Que tal colocar no banco de dados todos os exercícios padrão primários/secundários (barra, halter, máquina) e deixar os usuários montarem as próprias rotinas?
Também seria bom ter opções para substituir exercícios específicos
Depois que isso estiver pronto, aí sim implementar geração de rotina, e seria ótimo se treinadores de verdade pudessem dar feedback
Os equipamentos disponíveis deveriam ser simples/padrão, evitando ao máximo máquinas de marca
Esse tipo de opinião detalhada ajuda especialmente muito nessa fase inicial
A lógica de programação de treino ainda está realmente muito básica
Ainda falta incorporar princípios de treino como volume, padrões de movimento, ciclo de recuperação, compound/isolation
A versão atual é mesmo para "descoberta", não é nem de longe um coach inteligente
Preciso deixar isso claro na UI
Respondendo aos pontos específicos
Entendo perfeitamente a necessidade de quem tem halteres e barra fixa, mas não quer usar cabo nem máquina; vou detalhar melhor essa parte da UI
(No momento precisa repetir 2 vezes, problema de renderização)
Quero melhorar isso com base em bons princípios e, se possível, adoraria contar com suas ideias para ajudar a definir a direção
Tenho ainda mais interesse se for uma solução que possa ser implantada e usada diretamente em hardware de consumo
Por exemplo, eu tenho uma barra fixa, mas não sei quais músculos posso treinar com ela
Talvez um filtro do tipo "fácil para iniciantes" funcione melhor
Outras pessoas também deram feedback parecido
Vou tornar as opções de filtro opcionais e adicionar recomendações como "iniciante", "exercícios populares", "calistenia" etc.
Obrigado por apontar isso
No onboarding inicial, a seleção de músculos é obrigatória, e para um iniciante que não sabe quais rotinas trabalham quais músculos, isso vira uma barreira de entrada
Eu até entendo por alto "push", "pull" e "legs", mas nomes específicos de músculos já me soam estranhos
No fim, este app parece feito só para quem está disposto a estudar anatomia
Vale pensar em formas de facilitar um pouco mais a entrada
Ex.: grupos musculares recomendados, presets
O onboarding atual pressupõe conhecimento demais (mais do que eu imaginava)
Quem está começando não quer saber de "deltoide posterior" ou "latíssimo do dorso", só quer ficar mais forte e ter um corpo melhor
Na próxima atualização vou incluir
O objetivo é criar uma experiência amigável em que a pessoa possa começar na hora, sem precisar estudar anatomia antes
Seu feedback ajuda muito mesmo
Torço pela sua jornada no fitness