Reprise de projet · Gold MerchandisingReprise d'une plateforme SaaS bâtie en no-code : audit de sécurité, fiabilisation et sortie de la dépendance technique
Reprendre l'existant sans rien casser de ce qui tournait, fermer les failles critiques, et rendre au client la maîtrise de son code et de son infrastructure.
- Client
- Gold Merchandising, agence de merchandising et de pose de mobilier en magasin (cible historique : Nocibé, cosmétique sélective)
- Rôle
- Développeur fullstack & architecte technique (reprise)

Le contexte
La plateforme de Gold Merchandising, un SaaS multi-rôles pour piloter des missions de pose en magasin, avait été construite sur Lovable par une personne non-développeuse. Elle fonctionnait et était utilisée en production, mais reposait entièrement sur la plateforme no-code, avec une dette technique accumulée et plusieurs failles de sécurité critiques signalées mais jamais vérifiées.

Ce qui a été fait
- 1
Sortie de la plateforme no-code et infrastructure propriétaire
Dépôt Git versionné, images Docker et déploiement Coolify multi-environnements (production, staging) sur VPS Contabo, configuration Supabase injectée au démarrage du conteneur. Le client possède désormais son code et son serveur, sans dépendance à un éditeur tiers.
- 2
Audit de sécurité et correction en production
Audit technique complet, puis correction des failles confirmées exploitables sur la base réelle : élévation de privilège (n'importe quel compte connecté pouvait se déclarer administrateur via l'API), lecture ouverte de la table des utilisateurs, fuite des tarifs clients et des marges vers les sous-traitants. Consolidation d'environ 70 policies RLS redondantes héritées du no-code en une règle claire par table et par action.
- 3
Remise à niveau de la fiabilité
Machine à états des missions reconstruite (statut dérivé par déclencheur PostgreSQL), notifications générées par déclencheurs, tâche planifiée pg_cron pour les alertes de documents expirés, procédures stockées transactionnelles pour la préfacturation et la validation client, stockage de fichiers migré vers un bucket S3 privé avec URLs présignées émises côté serveur après contrôle d'accès, mise en place de Sentry.
- 4
Authentification sans mot de passe
Passage à la connexion par lien magique (plus aucun secret réutilisable à voler ou à rejouer) et fonction d'impersonation réservée aux administrateurs pour le support.
- 5
Fonctionnalité « Update campagne 2026 »
Campagnes multi-magasins avec équipes de pose cloisonnées (chaque poseur ne voit que les missions de son équipe), pas à pas de reporting guidé (photos avant/après, PLV, SAV), import du planning depuis Excel (la couleur de chaque ligne détermine l'équipe), interface trilingue FR/DE/EN, accès observateur en lecture seule pour les contacts côté client. Mise en production de la vraie campagne : 109 magasins, 7 équipes.

Stack technique
- React 18
- Vite
- TypeScript
- Supabase (PostgreSQL, RLS, Edge Functions, pg_cron)
- TanStack Query
- Tailwind / shadcn
- Contabo S3
- Sentry
- i18next
- Docker / Coolify
Ce que ça change
Une plateforme qui n'est plus prisonnière d'un éditeur no-code, dont le client possède intégralement le code et l'infrastructure. Des failles de sécurité fermées avant qu'elles ne coûtent cher, en particulier la fuite de marges à des prestataires externes. Une base technique capable d'accueillir de nouvelles campagnes clients sans tout réécrire.
Résultats concrets
Une quarantaine de migrations de sécurité et de fonctionnalités livrées et appliquées en production, failles critiques fermées et vérifiées, campagne Nocibé de 109 magasins et 7 équipes mise en ligne, code base assainie (zéro erreur de typage, environ 145 fichiers morts supprimés).

