LS
Trainings-Apps rechnen mit 37,3 kg. Die Rudermaschine im Studio kann aber nur 35 oder 37,5, und die Langhantel nur das, was die Scheiben im Studio hergeben. LS kennt jedes Gerät so, wie es dasteht, und bietet nur Gewichte an, die du dort wirklich einstellen kannst. Auch im Funkloch. Die App ist gebaut und im Einsatz, aber noch nicht öffentlich, darum steht sie hier als klickbares Mockup.
Zum Ausprobieren: Workout starten, „+ Übung hinzufügen“, die Rudermaschine öffnen und mit ✓ den Satz vom letzten Mal übernehmen. Oder an der Langhantel auf das Gewicht tippen und 78,75 eingeben. Oder das Handy offline schalten und einen Satz speichern.
-
01
Dein Studio, dein Handy
Beim Start steht dein Fitnesstudio schon da, heute woanders wechselst du mit „Anderes Studio“. Mit dem Workout liegen die Geräte dieses Studios auf dem Handy, auch ohne Netz. Die Geräte pflegen die Betreiber, die App liest sie nur.
-
02
Das Workout im Blick
Oben laufen Uhr, Gesamtgewicht und Sätze mit, darunter steht jede Übung von heute als Tabelle, daneben der Wert vom letzten Mal. „+ Übung hinzufügen“ sucht über Geräte und Übungen, auch englisch oder als Kürzel wie RDL, deine Favoriten zuerst, ohne Suchwort die zuletzt gemachten. Bei Maschinen zählt das einzelne Gerät, bei freien Gewichten die Übung, über alle Studios.
-
03
Nur Gewichte, die du einstellen kannst Der Clou
An der Rudermaschine springt das + von Platte zu Platte, 35, 40, 45 kg, das Zusatzgewicht von 2,5 kg stellst du daneben ein. Oben steht die Summe, die gespeichert wird: 37,5 kg. Tippst du eine Zahl, rundet die App auf die nächste Platte, bei Gleichstand auf die leichtere. Mit ±5 und ±10 kg geht es schneller.
-
04
Scheiben pro Seite
An der Langhantel ist alles frei, aber nicht alles auflegbar. Wer 78,75 kg tippt, bekommt die gelbe Warnung und mit einem Tipp den nächsten Wert: 77,5 kg. Darunter steht, was auf jede Seite gehört: 25 + 2,5 + 1,25. Die App rechnet mit den Scheiben, die das Studio wirklich hat, und nimmt die Kombination mit den wenigsten Scheiben.
-
05
Satz für Satz wie letztes Mal
Grau stehen die Sätze vom letzten Mal. ✓ übernimmt einen Satz, Antippen öffnet das Bedienfeld darunter, nach links wischen löscht, die Satznummer macht ihn zum Aufwärmsatz. „Satz speichern“ bleibt dabei unten im Bild. Übertrifft ein Satz deinen Bestwert bei 1RM, Satzvolumen oder Gewicht, bekommt er eine Medaille.
-
06
Funkloch im Studio
Jeder Satz landet zuerst auf dem Handy und wird übertragen, sobald wieder Netz da ist. Oben steht, wie viele Änderungen noch warten, in den Einstellungen die Liste dazu. Ohne Netz startet ein Workout nur in Studios, deren Geräte schon auf dem Handy liegen. Im Mockup lässt sich das Handy offline schalten.
-
07
Vorschlag statt Kopfrechnen
Aus dem besten Satz vom letzten Mal schätzt die App das 1RM und schlägt ein Gewicht vor, nur eines, das sich einstellen lässt: 5 × @ 8 ergibt hier 42,5 kg, 8 × @ 8 sind 37,5 kg. Ein Tipp übernimmt Gewicht, Wiederholungen und RPE. Liegt ein Ziel außerhalb der RPE-Tafel, sagt sie das, statt zu raten. Wer ohne RPE oder 1RM trainiert, blendet beides in den Einstellungen aus.
-
08
Verlauf und Teilen
Der Verlauf listet die Workouts mit Dauer, Sätzen und Gesamtgewicht. Im Workout stehen die Medaillen von damals, je Übung führt ein Link zur Kurve des geschätzten 1RM, bei Maschinen je Gerät, weil 60 kg an der einen Rudermaschine nicht 60 kg an der anderen sind. Fertige Workouts lassen sich als Bild teilen, hell oder dunkel, mehrere zur Auswahl.
Das Problem
Trainings-Apps rechnen mit krummen Zahlen und wissen nichts über das Gerät vor dir. Die Steckgewicht-Maschine kennt Stufen, die Scheibenmaschine hat ein Startgewicht plus Scheiben, die Langhantel hängt am Scheibenbestand des Studios. Wer das Gerät wechselt, vergleicht Äpfel mit Birnen. Und im Studio gibt es Funklöcher.
Der Aufbau
Eine TypeScript-Codebasis für Client und Server, weil die Gerätetypen offline im Browser rechnen und auf dem Server prüfen müssen: SvelteKit 3 mit Svelte 5, PostgreSQL mit Drizzle, Konten über Better Auth, auf dem Handy Dexie über IndexedDB und ein eigener Service Worker, ausgeliefert als Docker-Image. Jeder der fünf Gerätetypen, Steckgewicht, Kabelzug, Scheibenmaschine, Stange und Kurzhanteln, ist ein Objekt hinter derselben Schnittstelle. Ein neuer Typ braucht nur neue Dateien und einen Eintrag in der Registry, ein Architekturtest erzwingt das. Jede Eingabe landet zuerst in einer Warteschlange auf dem Handy und wird übertragen, sobald Netz da ist. Persönliche Rekorde rechnet das Handy aus den Sätzen, gespeichert wird davon nichts. Die Betreiber pflegen ihre Studios und Geräte in einem eigenen Bereich.
Die harte Nuss
Gewichte sind keine Fließkommazahlen. 1,25-kg-Scheiben, lb-Geräte und Vergleiche beim Runden geben mit Fließkomma Fehler wie 0,1 + 0,2 ≠ 0,3. LS speichert Lasten deshalb als ganze Hundertstel der Geräteeinheit: 3750 ist 37,5 kg. Dazu die Frage, welche Scheiben bei 100 kg auf die Stange kommen: je Seite die Kombination mit den wenigsten Scheiben, bei Gleichstand die mit den schwereren, also zwei 20er und nicht 25 und 15. Den Rechenkern prüfen eigene Unit-Tests gegen feste Werte: Rundung, Scheiben, Steckgewicht und die 1RM-Schätzung.
Verworfen
- n8n und Markdown im Vault als Datenhaltung: mehrere Nutzer, mehrere Studios und Rechte brauchen eine Datenbank.
- Supabase und PocketBase: Bei Supabase hätte die Prüflogik in SQL oder Edge Functions gemusst, PocketBase ist zu dünn für Studios mit Rollen. Ein Backend in Go oder PHP hätte die Rechnung ein zweites Mal gebraucht.
updated_atals Sync-Cursor: Postgres speichert Mikrosekunden, JavaScript Millisekunden, damit gehen Zeilen verloren oder doppelt ein. Stattdessen eine Sequenz in der Datenbank.- Ein fertiges Plugin für den Service Worker: Es unterstützt SvelteKit 3 nicht, also ein eigener.
Stand und Nächstes
Gebaut seit 19.10.2026: Konten, Studios mit Betreiber-Bereich, fünf Gerätetypen, Offline mit Warteschlange und Abgleich, ein Übungskatalog für freie Gewichte, die Workout-Übersicht mit Satz-Tabellen, Gewichtsvorschlag, persönliche Rekorde, Verlauf und Teilen als Bild. Ein echtes Studio ist vor Ort vermessen und importiert. 348 Unit-Tests in 43 Dateien laufen grün (Stand 28.10.2026). Die CI prüft Typen und Unit-Tests, fährt E2E-Tests mit Playwright gegen echtes PostgreSQL und baut das Docker-Image. Als Nächstes kommt die Prüfung der Datenschutzerklärung, danach der öffentliche Start. Später sollen QR-Codes an den Geräten das Gerät direkt im laufenden Workout öffnen.