Frigo Adaptatif
Cuisiner ce qu'on a, jeter moins, décider sans y penser — en production sur fridge.jjoly.eu
le probleme
Un foyer jette en moyenne une part importante de ce qu'il achète, faute de savoir ce qui dort au fond du frigo et ce qui périme bientôt. Les apps de recettes proposent des plats qu'on ne peut pas faire avec ce qu'on a, ignorent les dates limites, et demandent de tout saisir à la main sans jamais rien apprendre des habitudes.
la solution
Un assistant de cuisine auto-hébergé qui part de l'inventaire réel du frigo et raisonne dessus : quoi cuisiner aujourd'hui, quoi acheter, quoi sauver avant qu'il ne périme. Toute la logique de décision tourne en local, sans IA ; l'IA n'est qu'un bonus optionnel et transparent.
- Inventaire multi-entrées : scan code-barres (Open Food Facts), saisie manuelle, photo du frigo ou ticket de caisse analysés par IA — avec quantités et dates limites de consommation.
- Suggestions par type de repas (petit-déj, déjeuner, dîner, dessert, apéro), triées par ce qui est réellement réalisable et ce qui sauve un ingrédient proche de la DLC.
- Planning de repas 100 % local : génération automatique sur une période à partir des habitudes, ou composition manuelle case par case ; batch cooking (« cuisiné une fois, mangé deux fois »), gestion des aléas (repas sautés, courses en retard, oublis) et réajustement automatique.
- Anticipation anti-gaspi : modèle de consommation qui projette les dates de rupture et un score anti-gaspi mensuel.
- Convives & contraintes : profils par membre (régime, allergies, aliments détestés), filtrage des suggestions et du planning, nombre de couverts réglable par repas.
- Budget & saisonnalité : coût estimé des recettes et des courses, badge « de saison » et bonus de scoring selon le mois.
- Rituels proactifs par notification push : point du dimanche, vérification du soir, alerte des DLC du matin.
le parti pris : la science en arriere-plan, jamais a l'ecran
Chaque suggestion porte un pourquoi — jamais un « tip » générique. La génération du planning ne passe jamais par un modèle de langage : c'est un moteur de scoring déterministe (couverture des ingrédients, anti-gaspi, habitudes, variété, récence) qui reste explicable et reproductible. L'IA, quand elle est activée, ne sert qu'à des tâches créatives isolées (vider le frigo, substituer un ingrédient, coach cuisine pas-à-pas, lecture de photo) et son échec est géré proprement, sans jamais bloquer l'app ni exposer de détail technique.
choix techniques
- Backend Go mono-binaire (~200 Mo de RAM) avec SQLite en pur Go (CGO désactivé), image Docker distroless, frontend sans framework.
- PWA installable : manifest, service worker, lecture hors-ligne,
notifications Web Push (VAPID) — pensée mobile d'abord, accessible (vrais boutons,
aria-labels, focus géré, cibles tactiles,
prefers-reduced-motion). - Souveraineté des données : 100 % auto-hébergé, conformité RGPD native (consentement explicite, droits art. 15-22, audit log rotation 12 mois), zéro tracker.
- Sécurité : foyers sur invitation uniquement, 2FA TOTP par défaut, tokens d'intégration chiffrés AES-GCM, clé IA côté serveur (secret SOPS/age), jamais dans le navigateur.
- IA abstraite & configurable : Anthropic ou OpenAI au choix via variable d'environnement, entièrement désactivable.
en production
déploiement k3s + Flux CD (GitOps) — voir l'étude de cas infra
pipeline push main → tests → build → scan Trivy → GHCR → staging
tag vX.Y.Z → prod (rollback = git revert)
données une base SQLite par foyer, backups chiffrés, WAL
statut V3 déployée — zones de congélation, import de recettes, restes
en inventaire, budget réel, nutrition de précision, courses
prédictives, optimiseur de menu, rapports PDF, mode événement
La version réellement en production est affichée, et datée, sur la page d'accueil.