- Enthält Funktionen zur Erstellung von Trainingsplänen, Fortschrittsverfolgung und eine umfangreiche Trainingsdatenbank
- Baut auf den Erfahrungen mit dem Scheitern von workout.lol auf und verfolgt das Ziel eines nachhaltigen, sich weiterentwickelnden Projekts für die Open-Source-Community
- Nutzt eine auf den Prinzipien von Feature-Sliced Design und Next.js basierende Architektur und betont die Unabhängigkeit einzelner Funktionen, Skalierbarkeit und Wartbarkeit des Codes
- Die Trainingsdatenbank lässt sich einfach per CSV-Datei importieren und enthält detaillierte Informationen wie verschiedene Übungsmerkmale, Videos und primär angesprochene Muskeln
- Künftig sollen Funktionen wie Mobile App, Badges/Gamification, Wearable-Integration und Community-Forum auf Basis der Community-Beteiligung kontinuierlich erweitert werden
Überblick und Nutzen von Workout-Cool
- Workout-Cool ist eine moderne Open-Source-Fitness-Coaching-Plattform, mit der Nutzer individuelle Trainingspläne erstellen, ihren Fortschritt dokumentieren und eine umfangreiche Trainingsdatenbank mit Beschreibungen, Videos und mehr breit nutzen können
- Ein Entwickler, der die Vernachlässigung und Einstellung des früheren Projekts workout.lol selbst erlebt hat, hat es als nachhaltigere und modernere Open-Source-Fitness-Plattform für die Fitness-Community neu ins Leben gerufen
Projektstart und Motivation
- Als zentraler Mitwirkender am Projekt workout.lol hatte der Entwickler mit Problemen wie einer gescheiterten Zusammenarbeit mit einem Partner für Videobereitstellung und den Kosten für Videolizenzen zu kämpfen
- Nachdem das Projekt an Dritte verkauft worden war, wurde es schnell eingestellt; trotz mehr als neun Monaten Kommunikationsversuchen mit dem neuen Eigentümer gab es keine Antwort
- Um den Wert des bisherigen Projekts nicht verloren gehen zu lassen, fiel die Entscheidung, eine insgesamt verbesserte und moderne Plattform neu aufzubauen
- Dieses Projekt verfolgt keine kommerziellen Ziele. Es steht für eine Weiterentwicklung mit dem Versprechen verlässlicher Wartung und kontinuierlicher Verbesserung für die Open-Source-Community
Community-getragene Betriebsphilosophie
- Als Entwickler und gleichzeitiger aktiver Nutzer fließen die von der Community benötigten Funktionen und Erfahrungen direkt ein
- Ehemalige workout.lol-Nutzer sind willkommen, und neue Nutzer können den Wert einer zukunftsorientierten Fitness-Plattform erleben
- Jede und jeder kann direkt beitragen und Verbesserungsvorschläge einreichen
Trainingsdatenbank und Import
- Das Projekt verfügt über eine umfangreiche Trainingsdatenbank
- Über ein beispielhaftes CSV-Format lassen sich vielfältige Informationen zu jeder Übung individuell importieren, darunter id, Name, Beschreibung, Video-URL, Bild, primär angesprochener Muskel und weitere Attribute
- Beispiele wichtiger Spalten: id, name, name_en, description, description_en, full_video_url, full_video_image_url, introduction, slug, attribute_name, attribute_value usw.
- Beispiele für Attributtypen: TYPE(Kraft/Cardio/Plyometrics/Stretching), PRIMARY_MUSCLE, SECONDARY_MUSCLE, EQUIPMENT, MECHANICS_TYPE usw.
- Mit einem Ein-Zeilen-Befehl lassen sich Daten direkt importieren, was eine hohe Erweiterbarkeit der Daten ermöglicht
Projektarchitektur
- Basierend auf dem Next.js App Router unter Anwendung der Prinzipien von Feature-Sliced Design (FSD)
- Für jede Funktion wird eine unabhängige und leicht wiederverwendbare Struktur umgesetzt
- Klare Trennung der Domain-Schichten: shared → entities → features → widgets → app
- Wahrung der Konsistenz zwischen UI-, Business-Logik- und Datenebene
- Beispiele für die Dateiaufteilung:
app/ - Next.js-Routen und Layouts
processes/ - komplexe Business-Flows
widgets/ - zusammensetzbare UI (z. B. Sidebar, Header)
features/ - zentrale Einheiten (Authentifizierung, Trainingsverwaltung usw.)
entities/ - Benutzer, Übungen, Workouts usw.
shared/ - gemeinsamer Code und Typen
styles/ - globale CSS/Themes
Entwicklung und Deployment
- Erforderlich sind Node.js 18+, PostgreSQL (Docker oder direkte Einrichtung) sowie pnpm oder npm
- Nach dem Klonen: Abhängigkeiten installieren, Umgebungsvariablen setzen, Datenbank einrichten (automatisch oder manuell) und im Browser http://localhost:3000 aufrufen
- Datenbankmigrationen können direkt ausgeführt und der Entwicklungsserver gestartet werden
- Build des Docker-Images und Ausführung des Containers (geplant)
Geplante Funktionen
- Übungen/Videos hinzufügen
- Mobile App (auf React Native basierend)
- Gamification (Badge-System usw.)
- Erweiterte Fortschrittsstatistiken und Visualisierung
- Wearable-Integration (Uhren/Tracker)
- Mehrsprachige Unterstützung
- OAuth-Authentifizierung (Google, Apple usw.)
- Integriertes Community-Forum
1 Kommentare
Hacker-News-Kommentare
Ich hatte die App an jemanden verkauft, und dann erlebt, wie sie einfach liegen gelassen wurde
Ich habe mehrmals per SMS geschrieben, dass man sich melden soll, falls Support nötig ist, aber nie eine Antwort bekommen
Umso glücklicher bin ich jetzt, zu sehen, dass sie wieder gepflegt wird
Auch die UI-Verbesserungen sind großartig, wirklich tolle Arbeit
Du kannst dir gar nicht vorstellen, wie sehr ich mich gefreut habe, deinen Namen zu sehen
Ich kenne dieses Gefühl auch, wenn man zusieht, wie ein Projekt ohne großen Ertrag zum Stillstand kommt und es einem das Herz bricht
Genau das hat mich letztlich dazu gebracht, alles komplett neu aufzuziehen und dabei die Offenheit beizubehalten, die du ganz am Anfang gezeigt hast
Danke für das Lob zur UI, das bedeutet aus deiner Perspektive besonders viel
Falls du irgendwann zurückkommen willst, bist du jederzeit willkommen
Schon Ideen, Meinungen oder einfach nur deine Anwesenheit wären viel wert
Ich arbeite gerade an einer automatischen Kalender-Scheduling-API mit Integration in Apple CalDAV(iCal)
Ich baue eine zielorientierte Planungsfunktion (mit Google ORTools wird ein riesiges CP-SAT-Constraint-Modell sehr schnell berechnet, selbst ein ganzes Jahr in unter 5 Sekunden)
Dazu kommt auch eine Ernährungsfunktion, die auf Nährstoffziele abgestimmt ist
Ich wollte unbedingt auch so ein Trainings-/Workout-Plan-System einbauen, hatte aber nicht die geringste Ahnung, was ich dafür nutzen sollte
Jetzt ist endlich klar, was ich verwenden werde
Danke, dass du dieses Projekt gebaut hast
Jetzt bin ich gespannt, welche Zukunft dieses Projekt haben wird
Mich würde interessieren, was du vom wger-Projekt hältst
https://github.com/wger-project ist eine selbst hostbare Fitness-/Workout-/Ernährungsplattform auf FLOSS-AGPL-Basis
Scheint es schon seit fast 10 Jahren zu geben, basiert auf einer django-App und hat auch offizielle flutter-Apps, nutzbar auf Android/iOS/Windows/Linux/macOS
Es unterstützt mehrere Nutzer und kann sogar für den Betrieb eines Fitnessstudios verwendet werden
body.build ist ein neueres FLOSS-Projekt, browserbasiert und auf den Aufbau von Krafttrainingsprogrammen fokussiert
Der Autor von body.build trägt ebenfalls zu wger bei
Nach viel Ausprobieren nutze ich wger inzwischen erfolgreich in meinem Homelab
Beim Self-Hosting gibt es einiges zu beachten, aber es funktioniert gut
Der größte Nachteil ist die geringe Vollständigkeit der Übungsdatenbank, aber zum Glück bauen Mitwirkende sie nach und nach aus
Falls jemand Übungsdaten (und Übungsmedien) beitragen kann, wäre dieses AGPL-Projekt dafür sicher sehr dankbar
Die UX der Website ist furchtbar, und die mobile App ist (unter iOS) voller Bugs
Egal ob Trainingsstart, Gewichtsänderung oder Sitzungsprotokollierung, ständig stürzt etwas ab oder friert ein, dazu werde ich immer wieder ausgeloggt
Ich nutze jetzt LiftLog, das unterstützt alles, was ich möchte, und ist FOSS
https://github.com/LiamMorrow/LiftLog
Erstaunlich, dass es trotz der heutigen Verbreitung von Fitness und Krafttraining als Hobby so wenige brauchbare und gut gepflegte nichtkommerzielle Apps gibt
Das ist mein Fazit, nachdem ich dutzende Github-Projekte selbst ausprobiert habe
Sobald man etwas Erfahrung hat, sind die App-Features am Ende weniger wichtig als konsequentes Logging, um progressive Überlastung zu steuern
Für Einsteiger ist diese App ein guter Start
Damit sie breiter genutzt wird, braucht sie aber unbedingt zwei Dinge
https://json-schema.app/view/#?url=https%3A%2F%2Fgist.githubusercontent.com%2Fgavmor%2Fb74c4746aa9f3f63b0f50863a5e62d52%2Fraw%2F01318d1107f67ac83387a905d6556736fa7797ff%2Flifting.json
Aber ich kann nicht zustimmen, dass so eine App für Anfänger eine gute Wahl ist
Respekt für die Mühe, aber die Anordnung der empfohlenen Übungen macht mir Sorgen
Zum Beispiel: Wenn man „Rücken/Bizeps“ auswählt, bekommt man neun Übungen ungeordnet angezeigt
Es gibt keinerlei Überlegung zur Reihenfolge oder Struktur, Compound Lifts tauchen mitten drin auf, oder Chin-ups gleich dreimal
Es gibt keine 1RM-Berechnung für Wiederholungen/Sätze/Gewichte
Empfohlen werden unübliche Bro-Splits, was alles eher noch unübersichtlicher macht
Ich glaube, man könnte mit einer minimalistischen PPL-App auf Basis vorhandener Ausrüstung deutlich besser fahren
Ich sehe das genauso: Mit wachsender Erfahrung zählt am Ende vor allem echte Konsequenz und das Festhalten des Fortschritts (bei mir inzwischen mehr fürs Mentale als für Leistung, also eher Zustandskontrolle)
Das Speichern von Routinen und langfristiges Tracking stehen bereits auf der Roadmap
Deshalb ist die Architektur der "workout session" auch völlig anders aufgebaut als in der alten App
Ich möchte es so aufziehen, dass Nutzer einzelne Trainingsblöcke erstellen und sie optimal wiederverwenden, teilen, analysieren und weiterentwickeln können
Mich würde interessieren, wie du dieses Routine-Management in deiner PWA angegangen bist
Es klingt, als wären wir einen ähnlichen Weg gegangen, deshalb würde ich das sehr gern hören
https://wrkout.xyz/ (offene Übungsdatenbank-API mit Bildern/Videos)
https://github.com/wrkout/exercises.json (Open-Source-Übungsdatensatz)
Kannst du bei Bedarf vielleicht nutzen
Diesmal habe ich den Datensatz zusammen mit einem Partner komplett von Grund auf neu aufgebaut, um Lizenzprobleme rund um Videos klar zu vermeiden
So haben wir volle Kontrolle über die Daten und können Eigenschaften, Übersetzungen usw. nach Belieben anpassen
Trotzdem freue ich mich sehr darüber, dass in diesem Bereich so viele offene Projekte entstehen
Wenn sich für beide Communities eine Weiterentwicklung ergibt, würde ich gern nach Synergien suchen
DMs sind willkommen
Nicht nur Ideen in den Raum werfen, sondern schon einen Datensatz zusammentragen, mit dem Einsteiger direkt loslegen können
Wirklich vielen Dank
Was ich mir wünschen würde, wäre eine Funktion, die Gewichte/Wiederholungen pro Übung empfiehlt
Das Fitnessprogramm "100 Pushups" wäre dafür ein gutes Vorbild
Wenn du Interesse hast, diskutiere ich auch gern über die UI
Alle Nutzerdaten würden dann im PDS gespeichert, ein separater Server wäre nicht nötig
Selbst wenn das Projekt wieder aufgegeben würde, würden die Daten dauerhaft weiter funktionieren
Ich kenne diese App, sie ist wirklich simpel, und gerade ihr adaptiver Fortschrittsansatz motiviert Anfänger hervorragend
Ich würde die UI für so eine selbstregulierende, progressive Routine sehr gern mit dir besprechen
Ich denke zuerst über einen (groben) Algorithmus nach, also schick mir gern eine DM
0:{"a":"$@1","f":"","b":"eETmgndxtv4Ar0i8Wync1"}
1:{"serverError":"An unexpected error occurred."}
Es wurden sogar der Request-Code (mit detaillierten Headern und Informationen) geteilt
Der plötzliche HN-Traffic hat den Server unerwartet komplett überrollt
Stabilisierung und Bugfixes folgen in Kürze
Danke nochmals fürs Testen und für das Feedback
Grundsätzlich berücksichtigt das Übungsempfehlungssystem aber nicht die Kernelemente des Fitness-Programmdesigns
Im aktuellen Zustand würde ich die Nutzung zur Trainingsplanung daher nicht empfehlen
Statt Routinegenerierung wäre es vermutlich besser, sich auf solides Workout-Logging und den Import bestehender Routinenvorlagen zu konzentrieren (ich habe gesehen, dass daran bereits Interesse besteht)
Hier die wichtigsten Probleme, die ich erlebt habe
UI und Beschreibungen sind wirklich gut, aber die Übungsauswahl ist, selbst wenn sie überhaupt auftaucht, fragwürdig oder unlogisch
Wie wäre es, zunächst einfach alle Standardübungen der primären/sekundären Kategorien (Langhantel, Kurzhantel, Maschine) in die Datenbank aufzunehmen und die Nutzer ihre Routinen selbst bauen zu lassen
Dazu noch Ersatzoptionen für bestimmte Übungen
Erst wenn das steht, dann Routinegenerierung — und es wäre großartig, wenn echte Trainer dazu Feedback geben könnten
Die verfügbaren Geräte sollten schlicht und standardisiert sein, gebrandete Maschinen möglichst vermeiden
Solche detaillierten Hinweise sind gerade in dieser frühen Phase besonders wertvoll
Die Logik des Trainingsprogramms ist derzeit wirklich noch sehr einfach
Trainingsprinzipien wie Volumen, Bewegungsmuster, Erholungszyklen und Compound-/Isolationsverhältnis sind noch nicht ausreichend berücksichtigt
Die aktuelle Version ist wirklich eher zum „Entdecken“ gedacht und ganz sicher noch kein intelligenter Coach
Das sollte ich in der UI deutlicher kommunizieren
Zu deinen konkreten Punkten
Ich verstehe den Bedarf vollkommen: Hanteln und Klimmzugstange sind okay, aber Kabelzüge/Maschinen sollen raus; das muss in der UI konkreter werden
(Aktuell muss man es zweimal wiederholen, ein Render-Problem)
Ich möchte das entlang guter Prinzipien verbessern und würde mich freuen, wenn du, wenn möglich, schon bei der Richtungsfindung mit Ideen hilfst
Noch interessanter wäre eine Lösung, die sich direkt auf Consumer-Hardware deployen und nutzen lässt
Zum Beispiel habe ich eine Klimmzugstange, weiß aber nicht, welche Muskeln ich damit trainieren kann
Wie wäre stattdessen ein Filter wie „einsteigerfreundlich“
Ähnliches Feedback kam auch von anderen
Ich werde die Filter optional machen und Empfehlungen wie „einsteigerfreundlich“, „beliebte Übungen“ und „Calisthenics“ hinzufügen
Danke für den Hinweis
Wenn die Muskelauswahl schon im Onboarding verpflichtend ist, entsteht für Anfänger eine Einstiegshürde, weil sie gar nicht wissen, welche Routinen welche Muskeln ansprechen
„Push“, „Pull“ und „Legs“ kenne ich ungefähr, aber konkrete Muskelnamen sagen mir kaum etwas
Am Ende ist diese App damit eher auf Leute zugeschnitten, die Anatomie lernen wollen
Es braucht einen Weg, den Einstieg etwas leichter zu machen
Zum Beispiel: empfohlene Muskelgruppen, Presets
Das aktuelle Onboarding setzt wirklich viel zu viel Wissen voraus (mehr als erwartet)
Anfänger wollen nicht wissen, was der „hintere Deltamuskel“ oder der „Latissimus“ ist — sie wollen einfach stärker werden und besser aussehen
Im nächsten Update werde ich
Ziel ist eine einsteigerfreundliche Erfahrung, bei der man loslegen kann, ohne zuerst Anatomie lernen zu müssen
Dein Feedback hilft wirklich sehr
Viel Erfolg auf deiner Fitnessreise