🚀 Side project · 0→1 · Bout en bout · IA-augmented
— Pole & Sport · Studio à Montreuil

Un studio de pole dance,
tout un écosystème.

De l'identité visuelle au site public, du back-office multi-utilisateurs au système de feedback interactif intégré : un projet mené de bout en bout, conçu pour rendre mes clients totalement autonomes sur leur outil de travail.

Identité visuelle Site public Back-office multi-user PHP 8.3 / MySQL Mindbody API Claude Code 2FA / CSP Mobile-first
Page d'accueil de poleandsport.com — hero éditorial avec photo studio
🎯 La demande

Un studio en pleine ouverture, besoin d'un outil clé en main.

Mes clients ont ouvert leur deuxième studio de pole dance après studiopolefitness.com (également créé par mes soins en vibe coding Claude Code). Ils avaient besoin d'un site vitrine élégant, d'un back-office pour gérer leur contenu sans dépendre d'un développeur, et d'une intégration propre avec leur logiciel de réservation Mindbody. Sans connaissances techniques, ils voulaient pouvoir publier un cours, modifier un coach ou ajuster les tarifs en autonomie totale.

😤
Le contexte initial
  • Aucune identité visuelle, juste une vision et un nom
  • Aucune présence en ligne au moment où le studio ouvre ses portes
  • Mindbody fournit un widget de réservation, mais aucune vitrine éditoriale
  • Besoin de modifier prix, plannings, coachs sans toucher au code
  • Communication client habituellement via Google Slides illisibles ou mails à rallonge
La livraison
  • Identité visuelle complète : logo, palette, typographie, ton éditorial
  • Site public éditorial avec 11 pages éditables, optimisé mobile et SEO
  • Back-office multi-utilisateurs avec permissions granulaires et 2FA
  • Wizards 4 étapes avec preview live pour gérer coachs, cours, tarifs, workshops
  • Widget feedback intégré : commentaires posés directement sur les pages
  • Guide d'utilisation embarqué dans l'admin, mis à jour à chaque évolution
  • Livraison en quelques semaines, du brief au go-live
🎨 Identité & direction artistique

Un univers éditorial, à la frontière du magazine et du studio chic.

Le brief : sortir des codes "salle de sport". Le studio voulait évoquer l'élégance, la précision technique, et le prestige des arts aériens. J'ai conçu une identité bâtie sur des contrastes forts (ink/cream), une typographie serif italique pour l'émotion, et un bleu accent vif pour la vivacité. Le résultat : une charte qui vit aussi bien sur le site que sur les supports print, les réseaux et la signalétique du studio.

Typographie éditoriale

DM Serif Display en italique pour les titres et les emphases — un clin d'œil aux magazines de mode. Montserrat en sans-serif pour la lisibilité du corps de texte. Le contraste serif/sans renforce la hiérarchie sans alourdir.

Palette contrastée

Trois couleurs cardinales : un noir profond, un crème chaud et un bleu électrique. Chacune a un rôle précis : structure, respiration, accent.

Ink
Cream
Cream warm
Blue
Blue soft

Ton de voix

Ni techno-bro ni body-positive caricatural. Le studio s'adresse à un public adulte qui veut progresser. Vouvoiement systématique, phrases courtes, emphases italiques pour souligner ce qui compte. Pas d'emojis dans les textes éditoriaux.

🌐 Site public

11 pages éditoriales, chaque pixel pensé.

Au-delà de la vitrine, chaque page est conçue pour convertir : présentation des studios et de leur ambiance, mise en valeur des coachs avec leurs spécialités, listing des cours par discipline, parcours de réservation guidé via Mindbody, FAQ avec recherche instantanée, page privatisation pour les événements. Le tout en mobile-first.

Page Réserver un cours avec planning Mindbody intégré
Vue mobile du site
🎬
Hero éditable
Sur chaque page, image hero cadrable au pixel près depuis l'admin (focus picker click-to-set). Titre et sous-titre via éditeur riche.
🗓️
Réservation Mindbody
Intégration HealCode-widget native. L'utilisateur achète ses crédits puis réserve son créneau sans quitter le site.
🔎
FAQ cherchable
Barre de recherche instantanée côté client. Côté admin, classement par scope (page FAQ / mini-FAQ par page).
💳
Tarifs dynamiques
Trois groupes de packs (à la carte, programmes annuels, abonnement) avec système de soldes programmables et comparateur modal.
📱
Mobile-first
Header sticky avec CTA "Réserver" toujours accessible, menu burger fluide, typographie responsive avec clamp().
🚀
SEO natif
Sitemap dynamique, Open Graph par page, breadcrumbs structurés, redirections 301 sur changement de slug.
✨ Quiz d'orientation

Première fois chez nous ? On vous oriente.

Le pole, le cerceau, le pilates : autant de disciplines, autant de packs tarifaires. Pour un visiteur qui n'a jamais mis les pieds dans un studio, le choix est intimidant — et chaque seconde d'hésitation tue la conversion. J'ai conçu un mini-quiz de 3 questions, accessible depuis la page d'accueil et la page tarifs, qui aboutit à une recommandation personnalisée (cours conseillé + pack idéal) avec deep-link vers la bonne section du site.

— Point d'entrée

Une accroche simple

Sur la home, sous les KPIs, un encart promet une réponse en 3 clics. Pas de formulaire à remplir, pas d'inscription, juste un CTA noir avec un sparkle.

Point d'entrée du quiz sur la page d'accueil
— Question 01

Niveau

3 paliers émotionnels (jamais essayé / un peu / régulièrement) pour casser l'intimidation du débutant.

Question 1 du quiz - niveau de pratique
— Question 02

Discipline

4 choix dont un "Pas sûr·e — Conseillez-moi" qui ne stigmatise jamais l'indécision.

Question 2 du quiz - discipline préférée
— Question 03

Fréquence

L'intention budgétaire formulée sans gêne : "juste tester", "quelques cours", "le plus possible".

Question 3 du quiz - fréquence de pratique
— Recommandation

Le cours et le pack qui correspondent

Deux cartes claires : 01 le cours conseillé avec lien vers son détail, 02 le pack idéal avec deep-link vers la bonne ancre tarifs. Option "Refaire le quiz" pour explorer d'autres scénarios.

Modale de recommandation finale du quiz
  • 3 questions · pas une de plus
  • Empathie · zéro langage technique, zéro jugement
  • Action · CTA vers le cours conseillé + la bonne ancre tarifs
  • Refaisable · pas de cookie qui bloque l'exploration
  • Mobile-first · tout passe sur l'écran sans scroll
📰 Quelques extraits

Chaque page, une intention.

Des zooms sur des moments du site où l'attention au détail compte : la grille des coachs en magazine éditorial, le listing des cours par studio façon sommaire, la dualité claire/sombre des formules de privatisation, l'encart d'achat de crédits avec accroche en italique. Chaque section a été pensée pour servir une intention précise, pas pour remplir un gabarit.

Deux formules de privatisation, contraste light/dark
Privatisation · 2 formules/events_privatisation
Grille des coachs, 16 fiches éditoriales
Coachs · 16 fiches/coachs
Section dark des programmes 12 mois, 3 cartes packs
Tarifs · programmes 12 mois/nos-tarifs
Encart achat de crédits avec 3 cartes de formules
Réserver · achat crédits/reserver
Listing des cours par studio
Cours · sommaire par studio/nos-cours
Bande bleue comparateur de formules
Accent bleu signature/nos-tarifs#comparer-packs
Section dark studios 01 et 02, présentation typographique
Studios · 01 / 02/studio-montreuil
Planning Mindbody intégré dans la page réserver
Mindbody · planning intégré/reserver
Galerie photos des espaces du studio
Studios · galerie/studio-montreuil
Aperçu des cours sur la page d'accueil
Accueil · disciplines/
Aperçu de l'équipe coachs sur la page d'accueil
Accueil · les coachs/
Section achat de crédits, packs tarifaires
Tarifs · achat de crédits/nos-tarifs
⚙️ Back-office

Un admin pensé pour des non-développeurs.

Le back-office est le cœur de l'autonomie de mes clients. Chaque action courante (ajouter un coach, publier un cours, programmer une solde) passe par un wizard 4 étapes avec preview live. Pas de jargon, pas de champs énigmatiques. La preview se met à jour en temps réel pour refléter exactement ce que verra le visiteur. Multi-utilisateurs avec permissions granulaires : superadmin, admin standard, lecture seule.

Wizard 4 étapes avec aperçu live

Exemple appliqué à un pack tarifaire. Le formulaire est à gauche, l'aperçu de la card telle qu'elle apparaîtra sur le site est à droite, mis à jour à chaque frappe. Même logique pour les coachs, les cours et les workshops.

— Étape 01
Bases
Nom, section, variante visuelle, badge marketing, ordre, publication.
— Étape 02
Prix & promo
Prix de base, prix barré, badge offre limitée, validité, % calculé auto.
— Étape 03
Mindbody
Liaison du pack avec les produits Mindbody pour la synchronisation crédits.
— Étape 04
Récap
Vue de synthèse, validation, publication immédiate sur le site.
Wizard 4 étapes d'édition d'un pack tarif avec aperçu live de la card à droite
👥
Multi-utilisateurs
Trois rôles (superadmin, admin, lecture). Audit log complet : qui a modifié quoi, quand. Sessions sécurisées avec timeout.
📚
Guide embarqué
Page d'aide pas-à-pas accessible depuis le menu admin. Mise à jour à chaque évolution. Mes clients ne me sollicitent jamais pour les opérations courantes.
🪜
Tableau de bord
Vue synthétique : santé du site, dernières modifications, état des sauvegardes, statistiques de visite intégrées.
🎯
Focus picker click-to-set
Pour chaque image hero, on clique pour définir le point de focus. Le cadrage s'adapte automatiquement sur tous les devices.
🔄
Drag & drop partout
Réordonnancement à la souris pour les coachs, cours, FAQ, sections de page. Les indices d'ordre sont gérés automatiquement.
🏷️
Soldes programmables
Bandeau promotionnel automatique, override de prix par pack, banderole hero, dates de début/fin avec activation auto.
💬 Feedback widget

Un système de feedback directement intégré au site.

J'ai conçu un widget que mes clients utilisent directement sur le site en navigation. Ils cliquent n'importe où sur une page, écrivent un commentaire textuel ou dessinent sur la page elle-même pour pointer un détail visuel précis. Tous les retours arrivent dans mon back-office, géolocalisés sur la page concernée. Je les traite, je marque comme résolu, je réponds — un Trello, mais nativement intégré au produit.

— 01

Onboarding en clarté

À la première visite, une modale explique en 4 étapes comment annoter. Pas besoin de tutoriel externe.

Modale d'onboarding du widget feedback expliquant les 4 étapes
— 02

Deux modes de feedback

Au clic sur le CTA bleu, choix entre commenter un élément précis (clic ciblé) ou dessiner librement pour annoter visuellement.

Sur mobile : choix entre commenter un élément ou dessiner
— 03

Pin résolu sur la page

Le feedback reste visible directement sur la page (pin coloré). Mes clients voient leurs retours, leur statut, peuvent ré-ouvrir.

Pin de feedback résolu sur la page front, avec actions ré-ouvrir / supprimer
— 04

Back-office À traiter

Chaque retour arrive dans l'admin avec URL, position en %, message, date, capture du contexte. Tri par statut, action en 1 clic.

Back-office Feedbacks client onglet À traiter, 12 retours
— 05

Workflow Résolu / Ré-ouvert

Quand un retour est traité, il bascule dans l'onglet Résolus avec son historique. Réversible à tout moment.

Back-office Feedbacks client onglet Résolus, 7 retours archivés
  • Texte ou dessin · 2 modes pour s'adapter au type de retour
  • Géolocalisé · Position en % sur la page
  • Contexte capturé · URL, device, viewport, date
  • Workflow · À traiter → Résolu → Ré-ouvrable
  • Mobile-first · Marche sur le téléphone comme sur desktop
🔒 Architecture & sécurité

Bullet-proof par design.

La sécurité d'un site qui héberge données clients et système de réservation n'est pas une option. Le projet a été conçu dès le départ avec une approche défense-en-profondeur : authentification forte, isolation des privilèges, hardening HTTP, monitoring. Le tout sans alourdir l'expérience utilisateur ou admin.

🔐
Authentification 2FA TOTP
Double authentification temporelle obligatoire pour tous les comptes admin. Compatible Google Authenticator, 1Password, Authy.
🛡️
CSP & en-têtes hardening
Content Security Policy stricte, HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy : la surface d'attaque est réduite à l'essentiel.
🎫
Tokens CSRF & sessions
Protection CSRF systématique sur toutes les actions admin. Sessions chiffrées, rotation de tokens, timeout configurable.
📋
Audit log complet
Chaque création, modification, suppression est tracée : qui, quoi, quand. Consultable depuis l'admin pour la traçabilité.
🔄
Transactions atomiques
Les opérations DELETE+INSERT critiques (réordonnancement, soldes) sont enveloppées dans des transactions SQL pour garantir la cohérence.
🧹
Sanitisation systématique
Toutes les entrées utilisateur sont validées et échappées. Prévention XSS, injection SQL, path traversal au niveau du framework custom.
🚧
Mode maintenance
Switch global accessible depuis le dashboard admin. Permet d'effectuer des opérations sensibles sans exposer un état intermédiaire au public.
📦
Sauvegardes & rollback
Sauvegardes BDD automatisées, structure mirroir local/prod 1:1 pour rollback rapide. Migrations idempotentes et seed automatique.
📊 Le projet en chiffres

De zéro à en production.

11
Pages éditoriales publiques
4
Wizards 4 étapes en admin
2
Studios gérés depuis 1 plateforme
0
Sollicitation post-livraison
💖 Retour client

Le mot de l'équipe.

Sacha nous a livré une solution clé en main en quelques semaines à peine. Du logo au site final, tout a été pensé pour qu'on soit totalement autonomes. On gère nos coachs, nos cours, nos tarifs et nos soldes sans jamais avoir à le solliciter. L'expérience admin est vraiment intuitive — même nous, qui n'avions aucune compétence technique, on peut publier ce qu'on veut quand on veut. Et le widget de feedback nous a sauvé la vie pendant les phases de relecture : on annote directement le site, plus besoin de mails à rallonge. Le site est rapide, élégant, parfaitement adapté à notre univers. Bref, on est ravis.
A
Amélie & Thomas
Fondateurs · Pole & Sport Montreuil
🔧 Stack & méthode

Vibe-codé de A à Z avec Claude Code.

Tout le projet a été conçu et développé en pair-programming avec Claude Code. La direction produit, les arbitrages UX, l'identité visuelle et les décisions d'architecture restent humaines — l'IA accélère l'implémentation, refactore, teste, documente. Cette méthode m'a permis de livrer en quelques semaines ce qui aurait pris plusieurs mois en solo.

Stack volontairement légère
PHP 8.3 + MySQL (PDO), router custom, vanilla JS sans framework côté front. Hébergement OVH mutualisé. Pas de build step, pas de node_modules, déploiement par rsync. Performance et maintenabilité avant tout.
🤖
Workflow IA-augmented
Claude Code en pair, avec instructions persistantes, mémoire projet, hooks de sécurité (push contrôlé, sandbox local). Chaque commit reflète une décision humaine, l'IA exécute proprement.
🔌
Intégration Mindbody
Widget HealCode officiel pour la réservation, gestion fine des deux sites Mindbody (Pole & Sport / Pilates) côté admin. Préparation API publique pour features futures.
🚀
Migrations idempotentes
Seed automatique des pages, FAQ, structures par défaut au premier accès admin. Auto-réparation : si la base est partiellement corrompue, l'admin se reconstruit lui-même.

Projet en ligne · Production

Envie de voir le résultat ?