Étude de cas — Client réel, France
Uply : une plateforme de réapprovisionnement, en production chez un vrai client
Uply remplace les commandes de restockage par téléphone et feuille de calcul par une plateforme SaaS bilingue : les restaurants parcourent un catalogue, passent commande, et suivent leurs factures ; le fournisseur gère produits, fournisseurs et livraisons depuis un espace admin séparé. Ce n’est pas un projet d’école — c’est en production chez un client réel en France, avec des utilisateurs réels et de vraies commandes.
2
Portails distincts : admin & client
20+
Migrations de schéma versionnées
0
Serveur nécessaire pour générer un PDF
FR / EN
Interface entièrement bilingue
Deux portails, un seul produit
Le portail client (restaurant) permet de parcourir un catalogue avec recherche tolérante aux fautes de frappe, passer commande, planifier une livraison, marquer des favoris, et télécharger ses factures en PDF. Le portail admingère les restaurants, les produits, les fournisseurs et l’historique des prix, approuve les demandes de nouveaux produits, et suit chaque commande jusqu’à la livraison. Les deux partagent la même base Supabase, isolée par des politiques de sécurité au niveau des lignes (RLS).
Architecture
React 18 + Vite côté client, Supabase pour l’authentification, la base Postgres, le stockage de fichiers et les Edge Functions. Les factures et bons de commande sont générés en PDF directement dans le navigateuravec pdf-lib — aucun serveur de rendu PDF à maintenir. Chaque changement de schéma est versionné dans un fichier de migration numéroté, idempotent, exécuté à la main dans l’éditeur SQL de Supabase — l’historique complet du schéma reste traçable dans le dépôt Git.
Des choix de périmètre assumés, pas des oublis
La reconnaissance automatique de factures par IA a été volontairement écartée — chaque scan aurait un coût d’API récurrent, alors que la saisie manuelle avec détection de doublons couvre le même besoin gratuitement. Les invitations utilisateur restent manuelles (via le dashboard Supabase) plutôt que via une Edge Function nécessitant une clé de service — un compromis documenté coût/complexité, pas un angle mort.
Travailler avec un client réel, en continu
Uply n’est pas un projet livré une fois pour toutes — c’est un produit maintenu. Chaque changement passe désormais par un projet Supabase de staging et un déploiement de prévisualisation Vercel avant toute fusion vers la production, pour qu’une régression ne touche jamais les commandes réelles d’un client réel.