---
title: Exercise Diary
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, fitness, exercise, diary, typescript, react, journal]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=fitness, https://github.com/Jods-Its/Calisthenics-app]
---

# Exercise Diary 📓

> **Journal d'exercices minimaliste** écrit en TypeScript. Pour suivre ses entraînements au quotidien sans la complexité d'un tracker complet. Idéal pour un usage personnel ultra-léger.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://exercisediary.app/ |
| **GitHub** | https://github.com/Jods-Its/Calisthenics-app |
| **License** | MIT |
| **Langage** | TypeScript (React + Vite) |
| **Étoiles** | ⭐19 (selfh.st rank) |
| **Dernière MAJ** | 2026-03-28 |
| **Catégorie** | [[cat-fitness]] |

## Description

**Exercise Diary** est dans la philosophie du **« moins, c'est mieux »**. Pas de routines complexes, pas de graphiques avancés, pas de fonctionnalités sociales : juste un **journal** où l'on note ce qu'on a fait, combien de répétitions, et éventuellement un commentaire. Le projet est né pour le **calisthenics** (entraînement au poids du corps) mais fonctionne pour toute activité.

Fonctionnalités :
- **Saisie rapide** d'un exercice (nom, reps, durée, notes)
- **Catégorisation** par type (push, pull, legs, cardio…)
- **Calendrier** d'activité
- **Export JSON** pour sauvegarder ou migrer
- **PWA** installable, utilisable hors-ligne
- **100% local-first** (IndexedDB) possible

L'**architecture** est volontairement **simple** : frontend **React + TypeScript + Vite**, pas de backend obligatoire (l'app peut fonctionner en local avec **IndexedDB**). Si déploiement serveur, un backend minimal **Express + SQLite** est fourni. C'est un excellent **point de départ** pour un développeur qui veut un outil personnel simple à maintenir.

## Installation

### Via Docker Compose

```yaml
services:
  exercise-diary:
    build: https://github.com/Jods-Its/Calisthenics-app.git
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      TZ: Europe/Paris
      # Mode local par défaut, pas de DB externe nécessaire
```

### Installation manuelle (mode local)

```bash
git clone https://github.com/Jods-Its/Calisthenics-app.git
cd Calisthenics-app
npm install
npm run dev
# App accessible sur http://localhost:5173
```

### Mode serveur (persistance)

```bash
# Utiliser le mode serveur pour partager entre appareils
NODE_ENV=production npm run build
npm start
```

## Configuration

- **Pas de configuration** obligatoire : tout se fait via l'UI
- Le **stockage local** (IndexedDB) garde vos données dans le navigateur
- Le **mode serveur** permet d'accéder depuis plusieurs appareils
- **Export/Import JSON** pour les sauvegardes et la migration

## Alternatives

**Open source** :
- [[app-wingfit]] : même philosophie, un peu plus structuré
- [[app-workout-tracker]] : version monorepo plus complète
- [[app-workout-cool]] : design moderne, plus de features
- [[app-wger]] : très complet (mais plus lourd)

**Propriétaire** :
- **Strong** : référence iOS/Android, payante
- **FitNotes** : Android, gratuit, simple
- **Workit** : apps mobiles basiques

## Sécurité

- En **mode local** : données stockées dans le navigateur, penser à exporter régulièrement
- En **mode serveur** : HTTPS obligatoire, accès restreint (usage personnel)
- Pas d'auth intégrée : mettre derrière un **reverse proxy auth** (Authelia, Authentik) si besoin
- Sauvegarder les **exports JSON** sur un support externe

## Ressources

- **GitHub** : https://github.com/Jods-Its/Calisthenics-app
- **selfh.st** : https://selfh.st/apps/?tag=fitness

## Pages Liées

- [[cat-fitness]]
- [[recettes-docker-compose]]
- [[app-wingfit]] — même philosophie
- [[app-workout-tracker]] — version plus complète
- [[app-workout-cool]] — design moderne
