- Incluye funciones para generar planes de entrenamiento, seguir el progreso y ofrecer una amplia base de datos de ejercicios
- Nació a partir de la experiencia del fracaso previo de workout.lol, con el objetivo de convertirse en un proyecto evolutivo y sostenible para la comunidad open source
- Usa una arquitectura basada en los principios de Feature-Sliced Design y Next.js, poniendo énfasis en la independencia por funcionalidad, la escalabilidad y la mantenibilidad del código
- La base de datos de ejercicios se puede importar fácilmente desde archivos CSV e incluye información detallada como distintas características del ejercicio, videos y músculos objetivo principales
- En adelante, planea ampliar continuamente sus funciones con base en la participación de la comunidad, incluyendo app móvil, insignias/gamificación, integración con wearables y foros comunitarios
Resumen y valor de Workout-Cool
- Workout-Cool es una plataforma moderna de coaching fitness de código abierto que permite a los usuarios crear planes de entrenamiento personalizados, registrar su progreso y aprovechar ampliamente una rica base de datos de ejercicios (incluyendo descripciones, videos y más)
- Un desarrollador que vivió de primera mano el abandono y cierre del proyecto workout.lol lo relanza como una plataforma fitness open source más sostenible y moderna para la comunidad de entrenamiento
Inicio del proyecto y motivación
- Como uno de los principales contribuidores del proyecto workout.lol, enfrentó dificultades por el fracaso de la colaboración con un socio de videos y por los costos de licencias de video
- Después de que el proyecto fue vendido a otra persona, fue descartado rápidamente, y aunque intentó comunicarse con el nuevo propietario durante más de 9 meses, no obtuvo respuesta
- Decidió no dejar perder el valor del proyecto anterior y construir una nueva plataforma moderna mejorada de forma integral
- Este proyecto no tiene un fin comercial. Representa una evolución que promete mantenimiento y desarrollo confiables para la comunidad open source
Filosofía operativa basada en la comunidad
- Como desarrollador y al mismo tiempo usuario real, refleja directamente las funciones y experiencias que la comunidad necesita
- Si fuiste usuario de workout.lol, eres bienvenido; si eres nuevo, puedes experimentar el valor de una plataforma fitness orientada al futuro
- Cualquiera puede contribuir directamente y enviar propuestas de mejora
Base de datos de ejercicios e importación
- El proyecto incluye una amplia base de datos de ejercicios
- Mediante un formato CSV de ejemplo, es posible importar de forma personalizada información diversa de cada ejercicio, como id, nombre, descripción, URL de video, imagen, músculo objetivo principal y atributos
- Ejemplos de columnas principales: id, name, name_en, description, description_en, full_video_url, full_video_image_url, introduction, slug, attribute_name, attribute_value, etc.
- Ejemplos de tipos de atributos: TYPE(fuerza/cardio/pliometría/estiramiento), PRIMARY_MUSCLE, SECONDARY_MUSCLE, EQUIPMENT, MECHANICS_TYPE, etc.
- Los datos pueden importarse de inmediato con un solo comando, lo que ofrece gran escalabilidad de datos
Arquitectura del proyecto
- Basado en Next.js App Router con principios de Feature-Sliced Design (FSD)
- Implementa una estructura independiente por funcionalidad y fácil de reutilizar
- Separación clara de capas de dominio: shared → entities → features → widgets → app
- Mantiene la consistencia entre la UI, la lógica de negocio y la capa de datos
- Ejemplo de separación de archivos:
app/ - rutas y layouts de Next.js
processes/ - flujos de negocio compuestos
widgets/ - UI componible (por ejemplo, Sidebar, Header)
features/ - unidades principales (autenticación, gestión de ejercicios, etc.)
entities/ - usuario, ejercicio, workout, etc.
shared/ - código y tipos comunes
styles/ - CSS global/tema
Desarrollo y despliegue
- Requiere Node.js 18+, PostgreSQL (con Docker o instalación directa) y pnpm o npm
- Después de clonar, se instalan las dependencias, se configuran las variables de entorno, se prepara la base de datos (automática o manualmente) y se accede a http://localhost:3000 desde el navegador
- También es posible ejecutar directamente las migraciones de base de datos y el servidor de desarrollo
- Compilación de imagen Docker y ejecución del contenedor (próximamente)
Funciones previstas
- Agregar ejercicios/videos
- App móvil (basada en React Native)
- Gamificación (sistema de insignias, etc.)
- Estadísticas avanzadas de progreso y visualización
- Integración con wearables (relojes/rastreadores)
- Soporte multilingüe
- Autenticación OAuth (Google, Apple, etc.)
- Foro comunitario integrado
1 comentarios
Comentarios en Hacker News
Se la vendí a una persona, pero luego la dejó totalmente abandonada
Le mandé varios mensajes diciendo que si necesitaba soporte me contactara, pero nunca recibí respuesta
Aun así, me da muchísimo gusto ver que la están manteniendo otra vez
La mejora del UI también está excelente, gran trabajo
No te imaginas lo feliz que me puse al ver tu nombre aparecer
Yo también pasé por esa sensación de ver un proyecto detenerse sin sacar nada de eso y que se te rompa un poco el corazón
Eso fue justo lo que al final me empujó a rehacerlo todo desde cero, manteniendo la mentalidad abierta que mostraste cuando lo empezaste
Gracias por elogiar el UI, viniendo de ti significa mucho
Si alguna vez quieres volver, eres bienvenido cuando quieras
Tus ideas, opiniones o simplemente tu presencia ya significan mucho
Estoy trabajando en una API de calendarización automática que se integra con Apple CalDAV(iCal)
Estoy construyendo funciones de gestión de agenda centradas en objetivos (usando Google ORTools para calcular muy rápido un modelo gigantesco de restricciones CP-SAT; incluso un año completo se procesa en menos de 5 segundos)
También incluye una función de alimentación alineada con objetivos de nutrición
La verdad es que quería incluir sí o sí un sistema así de planes de ejercicio/entrenamiento, pero ni idea tenía de qué usar
Ahora ya tengo clarísimo qué usar
Gracias por crear este proyecto
Me dan ganas de ver qué futuro le espera a este proyecto
También me da curiosidad saber qué opinan del proyecto wger
https://github.com/wger-project es una plataforma autohospedada de fitness/ejercicio/nutrición basada en FLOSS con licencia AGPL
Debe tener como casi 10 años; está basada en una app de Django y también tiene app oficial en Flutter, así que se puede usar en Android/iOS/Windows/Linux/macOS
Soporta varios usuarios, incluso puede servir para administrar un gimnasio
body.build es un proyecto FLOSS más reciente, basado en navegador y enfocado en construir programas de entrenamiento con pesas
El autor de body.build también contribuye a wger
Después de muchos intentos y errores, yo ya uso wger con buenos resultados en mi homelab
Hay bastantes cosas que considerar en el proceso de autohospedaje, pero funciona bien
La desventaja más grande es lo limitado de la base de datos de ejercicios, aunque por suerte los contribuidores la van ampliando poco a poco
Si alguien puede aportar datos de ejercicios (y material multimedia de ejercicios), seguro se lo agradecerían mucho en este proyecto AGPL
La UX del sitio web es pésima y la app móvil (en iOS) está llena de bugs
Cada vez que intento iniciar un ejercicio, cambiar el peso o registrar una sesión, se cae o se congela, y además me cierra la sesión constantemente
Ahora estoy usando LiftLog, que sí soporta todo lo que quiero y además es FOSS
https://github.com/LiamMorrow/LiftLog
Me sorprende que, aunque fitness y entrenamiento con pesas son hobbies tan comunes hoy en día, casi no haya apps no comerciales que sean buenas y estén bien mantenidas
Esa es la conclusión a la que llegué después de probar personalmente decenas de proyectos en Github
Cuando ya tienes experiencia, más importante que las funciones de la app es qué tan constante eres registrando todo para manejar la sobrecarga progresiva
Esta app es una buena opción para que un principiante empiece
Pero para que se use más ampliamente, sí o sí necesita dos cosas
https://json-schema.app/view/#?url=https%3A%2F%2Fgist.githubusercontent.com%2Fgavmor%2Fb74c4746aa9f3f63b0f50863a5e62d52%2Fraw%2F01318d1107f67ac83387a905d6556736fa7797ff%2Flifting.json
No estoy de acuerdo con que esta app sea una buena elección para principiantes
Aplaudo el esfuerzo, pero la lista de ejercicios recomendados me preocupa un poco
Por ejemplo, si eliges “espalda/bíceps”, salen 9 ejercicios sin ningún orden
No se nota consideración por el orden o la organización del entrenamiento; un compound lift aparece en medio, o hasta sale chin-up tres veces
No hay cálculo de 1RM para repeticiones/series/peso
Y recomienda bro splits poco ortodoxos, haciéndolo todo todavía más disperso
Me da la impresión de que una app PPL mínima basada en equipamiento podría salir mucho mejor que esto
A mí me pasa igual: con el tiempo lo importante de verdad termina siendo la constancia y registrar el progreso (en mi caso, más por salud mental, así que ahora me enfoco más en revisar mi estado que en el rendimiento)
Guardar rutinas y hacer seguimiento a largo plazo está en el roadmap
Por eso la arquitectura de "workout session" está diseñada completamente distinto a la app anterior
Quiero que los usuarios puedan crear bloques de entrenamiento individuales y que la experiencia de reutilizarlos, compartirlos, analizarlos y hacerlos evolucionar sea la mejor posible
También me gustaría escuchar cómo abordaste la gestión de rutinas en el PWA que hiciste
Parece que recorrimos caminos parecidos, así que de verdad me interesaría que lo compartieras
https://wrkout.xyz/ (API abierta de base de datos de ejercicios con imágenes/videos)
https://github.com/wrkout/exercises.json (dataset open source de ejercicios)
Te recomiendo aprovecharlos si los necesitas
Esta vez, para evitar con claridad cualquier problema de licencia relacionado con los videos, armé el dataset completamente desde cero con un socio
Así tengo control total sobre los datos para ajustar atributos, traducciones y todo lo que haga falta
Aun así, me da muchísimo gusto ver que están saliendo varios proyectos abiertos en este espacio
Y si ambas comunidades pueden crecer, me encantaría explorar sinergias
Los DM son bienvenidos
No solo aventaste una idea: ya reuniste el dataset para que hasta un principiante pueda empezar de inmediato
De verdad, muchas gracias
Lo que yo quisiera es una función que recomiende peso/número de repeticiones por ejercicio
Podrían tomar como referencia el programa de fitness llamado '100 Pushups'
Si te interesa, también con gusto puedo hablar sobre el UI
Todos los datos del usuario se guardarían en su PDS, así que no haría falta un servidor aparte
Aunque el proyecto vuelva a quedar abandonado, los datos seguirían funcionando para siempre
Conozco esa app; es súper simple y su progresión adaptativa de verdad motiva muchísimo a los principiantes
Me encantaría discutir el UI para implementar rutinas autorreguladas y progresivas
Primero voy a pensar algún algoritmo (aunque sea tosco), así que mándame DM
0:{"a":"$@1","f":"","b":"eETmgndxtv4Ar0i8Wync1"}
1:{"serverError":"An unexpected error occurred."}
También comparto el código de la solicitud (con encabezados detallados e información)
El aumento repentino de tráfico de HN dejó el servidor destruido más de lo esperado
Pronto haré estabilización y corrección de bugs
Gracias otra vez por probarlo y por el feedback
Pero en lo fundamental, el sistema de recomendación de ejercicios no está considerando los principios clave del diseño de programas de fitness
En su estado actual, me cuesta recomendarlo para diseñar programas de entrenamiento
Creo que sería mejor enfocarse menos en generar rutinas y más en importar registros o plantillas de rutinas ya consolidadas (vi que ya mostraste interés por eso)
Lista de los principales problemas que encontré
El UI y las explicaciones están realmente bien, pero la selección de ejercicios (cuando sí aparece) es ambigua o poco razonable
¿Qué tal si metes primero en la base de datos todos los ejercicios estándar primarios/secundarios (barra, mancuernas, máquina) y dejas que los usuarios armen sus propias rutinas?
También estaría bien tener opciones para sustituir ejercicios concretos
Solo después de tener todo eso listo implementaría la generación de rutinas, y estaría genial que entrenadores reales pudieran dar feedback
El equipamiento disponible debería ser simple/estándar, evitando en lo posible máquinas de marca
Este tipo de opiniones detalladas ayudan muchísimo, sobre todo en una etapa tan temprana
La lógica del programa de ejercicios ahorita es realmente muy básica
Todavía falta incorporar principios de entrenamiento como volumen, patrones de movimiento, ciclos de recuperación y la diferencia entre compound e isolation
La versión actual de verdad es más para "descubrir" cosas, no es para nada un coach inteligente
Definitivamente tengo que dejar eso claro en el UI
Respondiendo a tus puntos concretos
Entiendo perfectamente la necesidad de decir “tengo mancuernas y barra de dominadas, pero no quiero cables ni máquinas”, así que voy a hacer ese UI más específico
(Por ahora hay que repetirlo 2 veces, es un problema de renderizado)
Quiero mejorarlo siguiendo buenos principios, y si puedes, me encantaría contar aunque sea con tus ideas para orientar la dirección
Me interesaría todavía más si fuera una solución que pueda desplegarse y usarse directamente en hardware de consumo
Por ejemplo, yo tengo una barra de dominadas, pero no sé qué músculos puedo entrenar con eso
Tal vez sería mejor un enfoque de filtros tipo “fácil para principiantes”
Otras personas también me dieron feedback parecido
Voy a volver opcionales los filtros y planeo agregar recomendaciones como "amigable para principiantes", "ejercicios populares" y "calistenia"
Gracias por mencionarlo
En el onboarding inicial es obligatorio elegir músculos, y para un novato que no sabe qué rutina trabaja qué músculos, eso se vuelve una barrera de entrada
Más o menos entiendo "push", "pull" y "legs", pero los nombres concretos de los músculos se sienten ajenos
Al final, parece una app hecha solo para gente que va a estudiar anatomía
Hace falta pensar en una forma de que entrar sea un poco más fácil
Por ejemplo: grupos musculares recomendados o presets
El onboarding actual asume demasiado conocimiento (más del que imaginaba)
Los principiantes no quieren saber de "deltoides posteriores" o "dorsal ancho"; solo quieren ponerse fuertes y verse mejor
En la próxima actualización
La meta es crear una experiencia amigable que te deje empezar de inmediato sin tener que estudiar anatomía desde el inicio
Tu feedback ayuda muchísimo de verdad
Te deseo lo mejor en tu camino fitness