4.5 KiB
title: Workout Tracker created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, workout, tracker, typescript, react, node, prisma] confidence: high contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/c-hive/gha-dev]
Workout Tracker 💪
Application minimaliste et efficace de suivi d'entraînements, écrite en TypeScript. Pensée pour un usage personnel rapide : créer une routine, logger les sets, suivre la progression.
| Métadonnée | Valeur |
|---|---|
| Site web | https://workout-tracker.dev/ |
| GitHub | https://github.com/c-hive/gha-dev |
| License | MIT |
| Langage | TypeScript (React + Node.js) |
| Étoiles | ⭐48 (selfh.st rank) |
| Dernière MAJ | 2026-05-05 |
| Catégorie | cat-fitness |
Description
Workout Tracker est une application web légère qui fait exactement ce qu'on attend d'un tracker d'entraînements : définir des exercices, créer des routines, logger les séries (poids, répétitions), et visualiser la progression dans le temps. Pas de fonctionnalités gadget, pas de nutrition, pas de réseau social : juste l'essentiel bien fait.
Caractéristiques :
- Exercices personnalisés ou depuis un catalogue
- Routines réutilisables (push, pull, legs, etc.)
- Logging rapide des séries avec auto-suggestion des valeurs précédentes
- Historique consultable par exercice
- Graphiques de progression (charge, volume, 1RM estimé)
- Mode hors-ligne partiel (PWA)
- Thème sombre par défaut
- API REST pour intégrations tierces
L'architecture technique utilise React 18 + Vite côté frontend, Node.js + Fastify côté backend, et Prisma + PostgreSQL comme couche de données. Le code est modulaire, typé strict, et bien structuré pour servir de base à des personnalisations. Idéal pour un développeur qui veut forker et adapter à son flow.
Installation
Via Docker Compose
services:
workout-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: workout
POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
POSTGRES_DB: workout
volumes:
- workout_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U workout"]
interval: 10s
timeout: 5s
retries: 5
workout-api:
build:
context: https://github.com/c-hive/gha-dev.git
dockerfile: apps/api/Dockerfile
restart: unless-stopped
depends_on:
workout-db:
condition: service_healthy
environment:
DATABASE_URL: postgres://workout:${DB_PASSWORD:-changeme}@workout-db:5432/workout
JWT_SECRET: ${JWT_SECRET:-changez-moi}
PORT: 3001
ports:
- "3001:3001"
workout-web:
build:
context: https://github.com/c-hive/gha-dev.git
dockerfile: apps/web/Dockerfile
restart: unless-stopped
depends_on:
- workout-api
environment:
VITE_API_URL: http://localhost:3001
ports:
- "3000:80"
volumes:
workout_db:
Installation manuelle (Monorepo)
git clone https://github.com/c-hive/gha-dev.git
cd gha-dev
pnpm install
# Backend
pnpm --filter api db:migrate
pnpm --filter api dev
# Frontend
pnpm --filter web dev
Configuration
DATABASE_URL: PostgreSQLJWT_SECRET: token d'authentification- Personnalisation des exercices et routines via l'UI (pas de YAML à maintenir)
- Import/Export JSON pour migrer ou sauvegarder
Alternatives
Open source :
- app-wger : plus complet (nutrition incluse) mais plus lourd
- app-workout-cool : design moderne, davantage de features sociales
- app-sparkyfitness : intègre nutrition et santé
- app-exercise-diary : encore plus minimaliste, focus journal simple
- Hevy (clone libre) : interface familière pour anciens utilisateurs de Strong
Propriétaire :
- Strong : référence iOS/Android, payante
- Hevy : version freemium, populaire
- FitNotes : Android gratuit
Sécurité
- Changer
DB_PASSWORDetJWT_SECRETpar défaut - HTTPS obligatoire via reverse proxy
- Sauvegarder le volume
workout_dbrégulièrement (pg_dump) - Si exposition publique : rate-limit sur l'API et 2FA si multi-utilisateurs
Ressources
- GitHub : https://github.com/c-hive/gha-dev
- selfh.st : https://selfh.st/apps/?tag=fitness
Pages Liées
- cat-fitness
- recettes-docker-compose
- app-wger — version plus riche
- app-workout-cool — design moderne
- app-exercise-diary — minimaliste