6.5 KiB
title: WYGIWYH created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, budgeting, python, django, finance, recurrente, minimaliste] confidence: high contested: false sources: [https://selfh.st/apps/?tag=budgeting, https://github.com/eitchtee/WYGIWYH, https://wygiwyh.org/]
WYGIWYH 💰
What You Get Is What You Have — application Django minimaliste de gestion de finances personnelles centrée sur le principe de cash-flow : on enregistre ce qu'on a, ce qu'on doit, et ce qu'on attend. Pas de catégories compliquées, pas de synchronisation bancaire, juste la réalité du portefeuille.
| Métadonnée | Valeur |
|---|---|
| Site web | https://wygiwyh.org/ |
| GitHub | https://github.com/eitchtee/WYGIWYH |
| License | AGPL-3.0 |
| Langage | Python (Django) |
| Étoiles | ⭐39 |
| Dernière MAJ | 2026-04-20 |
| Catégorie | cat-budgeting |
Description
WYGIWYH (acronyme de What You Get Is What You Have) est une application Django de gestion de finances personnelles qui se distingue par son approche radicalement simple : on enregistre les revenus, les dépenses récurrentes, les transactions effectuées, et l'app projette automatiquement le solde futur. C'est l'anti-bullshit du budgeting moderne.
La philosophie est la suivante : plutôt que de catégoriser à outrance ou d'importer des relevés bancaires, on saisit ce qu'on a réellement (comptes, espèces), ce qu'on attend (revenus à venir), ce qu'on doit (dépenses planifiées), et l'application calcule un cash-flow prévisionnel mois par mois. L'utilisateur voit immédiatement s'il sera à flot, en positif, ou en négatif dans les semaines à venir.
Les fonctionnalités clés incluent : comptes multiples (banque, cash, épargne, crypto), transactions récurrentes (mensuelles, hebdomadaires, annuelles avec support des répétitions complexes), calendrier financier (vue mois/semaine), catégories simples, tags libres, multi-devises, dashboard avec graphiques de cash-flow, import/export CSV, API REST (Django REST Framework), mode multi-utilisateurs optionnel.
L'architecture est Django + PostgreSQL (ou SQLite pour usage perso), avec HTMX + Alpine.js côté front pour rester léger (pas de SPA React). L'UI est volontairement austère — l'accent est mis sur la saisie rapide et la lisibilité des chiffres. L'interface est en anglais principalement, mais le code accepte n'importe quelle devise.
WYGIWYH est particulièrement adapté aux indépendants/TPE qui veulent voir leur cash-flow futur, aux familles qui veulent centraliser leurs finances partagées, et aux minimalistes qui fuient les apps de budgeting trop complexes. C'est aussi un bon choix pour qui veut apprendre Django (code propre, structuré, bien commenté).
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
wygiwyh:
image: ghcr.io/eitchtee/wygiwyh:latest
container_name: wygiwyh
restart: unless-stopped
ports:
- "8000:8000"
environment:
- DJANGO_SECRET_KEY=ChangeM3_DjangoSecretKey
- DJANGO_DEBUG=False
- DJANGO_ALLOWED_HOSTS=wygiwyh.example.com
- DATABASE_URL=postgresql://wygiwyh:ChangeM3@db:5432/wygiwyh
- TZ=Europe/Paris
volumes:
- wygiwyh-data:/app/data
depends_on:
- db
db:
image: postgres:16-alpine
container_name: wygiwyh-db
restart: unless-stopped
environment:
- POSTGRES_USER=wygiwyh
- POSTGRES_PASSWORD=ChangeM3
- POSTGRES_DB=wygiwyh
volumes:
- wygiwyh-db:/var/lib/postgresql/data
volumes:
wygiwyh-data:
wygiwyh-db:
Installation manuelle
git clone https://github.com/eitchtee/WYGIWYH.git
cd WYGIWYH
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # éditer les variables
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000
Configuration
Les principaux paramètres se configurent via variables d'environnement ou settings.py :
DJANGO_SECRET_KEY: clé secrète Django (obligatoire, longue chaîne aléatoire)DATABASE_URL: URL PostgreSQL (ou SQLite par défaut)CURRENCIES: liste des devises activées (par défaut toutes)TIME_ZONE: fuseau horaire (impacte les récurrences)LANGUAGE_CODE: langue de l'interface (en par défaut, fr partiel)
Les récurrences se gèrent dans l'admin Django ou via UI : choix de la fréquence (daily/weekly/monthly/yearly), date de fin, et pattern personnalisé. Les catégories et tags sont créés à la volée par l'utilisateur.
Alternatives
Open Source
- app-actual-budget : budgeting envelope-based plus complet mais plus complexe
- app-myfin : alternative Python/Django plus orientée enveloppe budgétaire
- app-expenseowl : encore plus minimaliste (Python/Flask)
- Firefly III : autre référence budgeting PHP, plus riche fonctionnellement
- app-monetr : équivalent en Go, plus moderne UI
Propriétaire
- YNAB (You Need A Budget) : méthode envelope-based propriétaire, très populaire
- Mint (désormais Credit Karma) : budgeting US avec synchro bancaire
- PocketGuard : app mobile de budgeting
- Money Manager (ex-Revolut) : app bancaire intégrée
Sécurité
- Authentification Django standard (sessions + mots de passe hashés PBKDF2)
- CSRF protection active sur tous les formulaires
- SQL injection : Django ORM protège nativement
- XSS : échappement auto Django
- 2FA : à ajouter via
django-otpsi besoin - HTTPS obligatoire via reverse proxy (Traefik, Caddy, Nginx Proxy Manager)
- Sauvegardes PostgreSQL régulières (
pg_dumpou Barman) - Pas de tracking, pas de télémétrie, self-hosted = données chez soi
Ressources
- Site officiel WYGIWYH
- Dépôt GitHub
- Documentation
- Démo en ligne (credentials sur la page GitHub)
- Suivi de bugs via GitHub Issues
Pages Liées
- cat-budgeting — catégorie parente
- recettes-docker-compose — recettes Docker Compose
- app-actual-budget — alternative envelope-based
- app-myfin — autre app Python/Django de budgeting
- app-expenseowl — alternative ultra-minimaliste
- app-monetr — équivalent moderne en Go