Incacook
L’app où les cuisiniers du Québec vendent leurs plats maison à leurs voisins.
Une place de marché québécoise où des cuisiniers à domicile, titulaires d’un permis, vendent leurs plats aux acheteurs du quartier. Quand Progix a repris la plateforme, elle tournait déjà : une app Flutter, une API Symfony, un back-office React et des versements Stripe Connect, bâtis par une autre équipe. Progix a refait l’application mobile bilingue, puis livré les correctifs des 35 points d’un audit de sécurité en 14 déploiements réversibles, avec au passage des gains de performance et des corrections sur les paiements.
- IOS ET ANDROID
- REFONTE
- BILINGUE FR/EN
- SÉCURITÉ
- STRIPE CONNECT
01 — La reprise
Une place de marché en production a changé de mains, paiements compris.
Cuisinous tournait déjà : des cuisiniers vendaient, des acheteurs payaient par carte, les versements partaient par Stripe Connect. Le code venait d’une autre équipe, et le premier travail a été de comprendre ce qu’on reprenait.
Trois surfaces héritées
Une app Flutter pour acheteurs et vendeurs, une API Symfony de 270 points d’entrée actifs et un back-office React. Il fallait comprendre les trois avant d’en toucher une.
Un marché réglementé
Les vendeurs déposent leur permis du MAPAQ, gèrent TPS et TVQ et acceptent une entente vendeur. La politique de confidentialité doit respecter la Loi 25 : aucun raccourci possible sur les données personnelles.
Un audit avec cinq points critiques
L’audit de septembre 2026 a relevé 35 points, dont cinq critiques, touchant les accès d’administration et la gestion des secrets.
02 — La refonte
Une app refaite pour ceux qui cuisinent et ceux qui commandent.
La refonte couvre les deux côtés de la place de marché : l’acheteur qui commande et récupère son plat, le cuisinier qui tient sa propre boutique.
Une interface en verre dépoli
Les parcours acheteur et vendeur ont été redessinés sur douze domaines fonctionnels, sans casser une application déjà en production.
Écrite en français d’ici
Un audit de langue et d’expérience a donné un guide de rédaction propre à l’app : les textes de l’interface suivent le français québécois, pas une traduction.
Bilingue de bout en bout
Le français par défaut, l’anglais en second, sur chaque écran de l’application.
03 — La sécurité
Corriger d’abord le plus risqué, en petits déploiements qu’on peut annuler.
Une mise en production d’un seul bloc, sur une app qui encaisse de l’argent, était trop risquée. Les 35 points ont été classés par gravité et livrés par vagues, chacune réversible.
Le confinement d’abord
La première vague, le 30 septembre 2026, a fermé les accès exposés et mis à jour les dépendances vulnérables avant tout autre correctif.
Chaque vague réversible
Chaque déploiement prend une sauvegarde, note son point de retour, vérifie le serveur et se termine par la suite de tests de sécurité rejouée sur la production.
Les versions installées continuent de marcher
Les correctifs qui demandent une nouvelle app sont partis en mode compatible. Ils deviennent stricts à la prochaine mise à jour obligatoire, pour que personne ne soit bloqué d’ici là.
Un test par point d’audit
La suite de régression est partie d’un test par point relevé et compte aujourd’hui 199 tests. L’intégration continue bloque tout secret ajouté au code.
04 — Le paiement et la charge
L’argent ne bouge qu’une fois, et la plateforme tient la charge.
Le portefeuille du cuisinier n’est crédité que lorsqu’il saisit le code de retrait de l’acheteur : ce code est le secret le plus précieux de l’app. Il fallait le protéger, puis rendre la plateforme plus rapide.
Deviner est plafonné
Cinq essais par code, vérifiés de façon atomique et en temps constant, et vingt essais par heure au plus pour chaque cuisinier.
Pas de double versement
Deux saisies correctes simultanées pouvaient créditer le portefeuille deux fois. Une seule mise à jour conditionnelle en base garantit maintenant un crédit unique.
Plus rapide sous charge
Le dimensionnement des processus PHP a fait passer le temps de réponse médian de 755 à 195 ms avec 200 acheteurs simulés. La liste des boutiques est passée de 95 requêtes à 21.
Une exploitation qui survit à un redémarrage
Les fichiers téléversés vivent désormais sur un volume persistant ; avant, ils disparaissaient à chaque recréation du conteneur. S’y ajoutent une sauvegarde quotidienne vérifiée de la base et une API servie en HTTPS uniquement.
- 35
- points d’audit de sécurité, chacun suivi du rapport jusqu’au correctif
- 14
- déploiements en production, chacun avec sauvegarde, point de retour et tests
- 199
- tests de sécurité automatisés, rejoués sur la production après chaque déploiement
- 755 → 195 ms
- temps de réponse médian, avec 200 acheteurs simulés en test de charge
Travail livré, vérifiable dans le dépôt Cuisinous au commit 8a4a10d (octobre 2026). Le temps de réponse vient d’un test de charge local en mode production. Aucune donnée d’usage n’est publiée : elle appartient au client.