SalonSync
Votre salon se remplit pendant que vous travaillez.
Créateur & ingénieur full-stack
Plateforme SaaS moderne pour barbershops et salons : réservation en ligne, rendez-vous, clients, file d’attente et sans rendez-vous, recettes et notifications, avec un assistant de réservation IA.

Présentation
SalonSync est un SaaS multi-tenant pour barbershops et salons, en ligne sur salonsync.ma. Chaque salon dispose d’une page de réservation publique avec un assistant IA, et l’équipe pilote sa journée depuis un seul tableau de bord : agenda, file d’attente en direct et clients sans rendez-vous, fiches clients, prestations et recettes, en français, arabe ou anglais.
Problématique
Les barbiers et les équipes de salon gèrent souvent réservations, clients sans rendez-vous, fiches clients, file d’attente, rappels et opérations quotidiennes à la main ou avec des outils dispersés : appels, messages privés, agenda papier et caisse comptée en fin de semaine.
Solution
SalonSync réunit réservations, rendez-vous, clients, barbiers, prestations, file d’attente, notifications et gestion dans une seule plateforme moderne, avec une page de réservation publique et un assistant IA qui réserve de vrais créneaux disponibles.
Fonctionnalités clés
Page de réservation en ligne
Une page publique par salon avec les prestations, les prix, les durées, l’équipe et les créneaux réellement libres. Le client réserve en quelques gestes et reçoit une référence et une page de suivi en direct.
Assistant de réservation IA
Répond aux clients sur la page de réservation et prend de vrais rendez-vous. Il ne travaille qu’avec ce que renvoie la base de données (prestations, barbiers, créneaux libres) : il ne peut pas inventer un prix ou une heure.
Rendez-vous & agenda
Les réservations du jour par barbier, avec le statut de chaque passage : confirmé, au fauteuil, terminé.
File d’attente & sans rendez-vous
Montre qui attend et qui est à quel fauteuil, avec des temps d’attente recalculés à partir de ce qui s’est réellement passé, et propose un fauteuil pour un client sans rendez-vous sans casser les réservations.
Gestion des clients
Des fiches clients construites à partir des réservations déjà prises : historique des visites et habitués.
Équipe & plannings
Profils des barbiers et horaires par jour avec pauses, pour que la page de réservation ne vende jamais une heure où personne n’est là.
Prestations & tarifs
La carte des prestations de chaque salon, avec prix et durées, utilisée par la page de réservation, l’assistant et l’agenda.
Recettes & suivi des paiements
Enregistre si et comment chaque passage a été réglé : espèces, carte, en ligne ou autre. SalonSync enregistre les paiements ; il ne les encaisse pas.
Statistiques & rapports
Rapports de chiffre d’affaires et de présence calculés à partir des passages enregistrés.
Notifications Telegram
Les barbiers sont prévenus sur Telegram des nouvelles réservations, modifications, annulations et des clients attendus sous peu.
Avis clients
Les clients peuvent laisser un avis, masqué jusqu’à validation par le gérant.
Réservation & rappels WhatsApp
Bientôt disponibleRéservation via l’assistant et rappels de rendez-vous sur le numéro WhatsApp Business du salon.
Notifications par e-mail
Bientôt disponibleConfirmations et rappels de réservation par e-mail.
Expérience produit
Deux interfaces partagent une même API. Côté public, la page de réservation du salon : pensée mobile, dans la langue du client, à l’image du salon plutôt que d’un logiciel. Côté privé, le tableau de bord utilisé par le gérant et l’équipe pendant la journée : agenda, écran de file d’attente, la journée de chaque barbier, clients, rapports et réglages. Un espace d’administration de la plateforme gère les salons et les offres.
Architecture
- →API REST Laravel sur PHP 8.4 avec authentification Sanctum ; contrôleurs légers au-dessus d’une couche de services.
- →Frontend Next.js (App Router) écrit en TypeScript avec React et Tailwind CSS.
- →Multi-tenant dans une seule base PostgreSQL : chaque ligne porte l’identifiant du salon, et un scope global limite chaque requête au salon courant. Un middleware le définit à partir de l’utilisateur connecté, de l’URL de la page de réservation ou du webhook entrant.
- →Assistant IA : une boucle d’appels d’outils OpenAI pour lister prestations et barbiers, trouver des créneaux libres, créer ou annuler une réservation. Les outils prennent des noms plutôt que des identifiants, et les conversations sont conservées par salon et par canal.
- →Tableau de bord temps réel via les websockets Laravel Reverb : le serveur diffuse un petit signal « ceci a changé » sur un canal privé par salon et l’écran recharge, au lieu d’interroger en boucle.
- →Traitements en arrière-plan sur une file Laravel et un planificateur : notifications, rappels et demandes d’avis ne ralentissent jamais une requête.
- →Déployé avec Docker Compose (Nginx, application PHP, worker de file, planificateur, PostgreSQL) depuis GitHub Actions. La CI exécute la suite PHPUnit, l’analyse statique Larastan et Pint.
Stack technique
- Backend
- PHP 8.4LaravelLaravel SanctumLaravel ReverbREST API
- Frontend
- Next.js (App Router)ReactTypeScriptTailwind CSS
- Données
- PostgreSQL
- Infrastructure
- Docker ComposeNginxGitHub Actions
- Integrations
- OpenAITelegram Bot API
- Qualité
- PHPUnitLarastanLaravel Pint
Défis techniques
Aucune double réservation, quel que soit le canal
Un créneau peut être pris au même moment depuis la page de réservation, l’assistant ou le tableau de bord. Le service de réservation revérifie la disponibilité dans une transaction, si bien que deux clients ne peuvent jamais obtenir le même fauteuil à la même heure.
Isolation des salons par défaut
L’isolation n’est pas laissée à chaque contrôleur. Un scope global rend chaque requête propre au salon, sauf exception explicite dans le code, ce qui garde les exceptions rares et faciles à retrouver.
Un assistant IA qui ne peut rien inventer
Le modèle ne répond jamais de mémoire sur les prix ou les disponibilités. Chaque information vient d’un outil qui lit la base, et la réservation passe par le même service qu’une réservation manuelle.
Des temps d’attente fidèles à la salle
Une file d’attente est une estimation mouvante. Les temps sont recalculés à partir de ce qui s’est réellement passé (coupes qui débordent, clients sans rendez-vous) et non des heures réservées.
Du temps réel sans interrogations lourdes
L’agenda rechargeait toute la journée toutes les 15 secondes dans chaque onglet ouvert. Il écoute désormais un petit signal par salon et ne recharge que lorsque quelque chose a changé.
Choix produit
- →Enregistrer les paiements plutôt que les encaisser : le salon garde son terminal et ses espèces, SalonSync note ce qui a été payé et comment.
- →Une page de réservation plutôt qu’un site web : un seul lien qui montre prestations, prix et créneaux libres, et prend la réservation.
- →Un seul assistant pour tous les canaux, pour qu’un nouveau canal n’implique pas une seconde série de règles.
- →Les offres sont un attribut de chaque salon : passer de l’offre gratuite de lancement aux offres payantes est une vérification, pas une refonte.
- →Trois langues dès le départ : français, arabe et anglais.
Statut actuel
SalonSync est en ligne sur salonsync.ma, en phase de lancement avec une offre gratuite, et en développement actif. Aucun chiffre d’utilisation n’est publié ici.
Captures d’écran
Capturées sur salonsync.ma. Les noms et chiffres sont ceux du salon d’exemple présenté sur le site public.


Liens
Visiter salonsync.ma ↗Architecture associée