--- title: Wingfit created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, workout, typescript, react, node, simple] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/lucast他们都融汇 fit] --- # Wingfit 🪶 > Tracker d'entraînements **simple et élégant** écrit en TypeScript. Conçu pour ceux qui veulent un outil **sans fioritures** : créer une routine, logger les séries, voir la progression. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://wingfit.app/ | | **GitHub** | https://github.com/lucasgelfond/wingfit (à vérifier sur selfh.st) | | **Langage** | TypeScript (React + Node.js) | | **Étoiles** | ⭐20 (selfh.st rank) | | **Dernière MAJ** | 2026-04-20 | | **Catégorie** | [[cat-fitness]] | ## Description **Wingfit** est une application web **épurée** de suivi d'entraînements, pensée pour un usage **solo ou petit groupe** (famille, salle). L'interface privilégie la **rapidité d'exécution** : ouvrir l'app, sélectionner sa routine du jour, logger en quelques taps, fermer. Fonctionnalités : - **Routines** (jour push, jour pull, etc.) - **Exercices** avec métriques (poids, reps, durée, distance) - **Historique** par exercice avec visualisation - **Objectifs** (charge cible, nombre de séances/semaine) - **Statistiques personnelles** (volume hebdo, fréquence) - **Multi-utilisateurs** simple (comptes séparés) - **PWA** installable sur mobile L'**architecture** est volontairement **légère** : frontend **React + Vite + TypeScript**, backend **Express + Prisma**, base **SQLite** par défaut (PostgreSQL possible). Le projet est plus petit que [[app-workout-tracker]] mais peut suffire pour un usage basique, et constitue une **bonne base pédagogique** à forker. **Note** : le repo GitHub exact peut varier. Vérifier l'URL à jour sur https://selfh.st/apps/?tag=fitness avant déploiement. ## Installation ### Via Docker Compose ```yaml services: wingfit-db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: wingfit POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme} POSTGRES_DB: wingfit volumes: - wingfit_db:/var/lib/postgresql/data wingfit-api: image: wingfit/wingfit-api:latest restart: unless-stopped depends_on: - wingfit-db environment: DATABASE_URL: postgres://wingfit:${DB_PASSWORD:-changeme}@wingfit-db:5432/wingfit JWT_SECRET: ${JWT_SECRET:-changez-moi} ports: - "4000:4000" wingfit-web: image: wingfit/wingfit-web:latest restart: unless-stopped depends_on: - wingfit-api ports: - "3000:80" volumes: wingfit_db: ``` ### Installation manuelle ```bash git clone https://github.com/lucast他们都融汇fit.git wingfit cd wingfit npm install # Configurer la base (SQLite par défaut) npm run db:migrate npm run dev ``` ## Configuration - `DATABASE_URL` : SQLite (par défaut) ou PostgreSQL - `JWT_SECRET` : pour l'authentification - Personnalisation via variables d'environnement classiques - **Pas de fichier YAML** à maintenir pour les exercices : tout se fait via l'UI ## Alternatives **Open source** : - [[app-workout-tracker]] : plus structuré, monorepo, Prisma - [[app-workout-cool]] : design moderne, plus complet - [[app-exercise-diary]] : encore plus minimaliste - [[app-wger]] : référence riche mais plus lourde - [[app-sparkyfitness]] : intègre nutrition **Propriétaire** : - **Strong** : référence mobile - **Hevy** : freemium populaire - **FitNotes** : Android simple et gratuit ## Sécurité - **Changer** tous les secrets par défaut - **HTTPS** via reverse proxy (Caddy, Traefik) - Sauvegarder le volume de base de données - Restreindre l'accès réseau si usage strictement personnel ## Ressources - **GitHub** : https://github.com/lucast他们都融汇fit (vérifier l'URL sur selfh.st) - **selfh.st** : https://selfh.st/apps/?tag=fitness ## Pages Liées - [[cat-fitness]] - [[recettes-docker-compose]] - [[app-workout-tracker]] — alternative plus structurée - [[app-workout-cool]] — design moderne - [[app-exercise-diary]] — encore plus simple