Vitrine OS · SaaS · Île-de-France · 2026

Vitrine
OS SaaS

Prospection, génération et déploiement de sites vitrines premium pour commerces locaux — 100% piloté depuis Claude Code. Zéro infrastructure externe. Claude est le moteur, tu es le pilote.

démo → design.baptistegilles.fr/[commerce]
Nom
Baptiste Gilles
Site
baptistegilles.fr
Email
design@baptistegilles.fr
Tel
07 80 97 70 20
Moteur
Claude Code
FTP
baptistegb · cluster106 OVH
CRM
Notion via MCP
Dossiers / semaine
5–10
Temps / dossier
45 min
Taux réponse cible
18–24%
Panier moyen
1 490 €
Aides mobilisables
2 000 €
STACK

Architecture SaaS
Claude Code comme moteur central

Tout s'exécute depuis ton terminal Mac. Claude Code orchestre la génération HTML, le deploy FTP, et les mises à jour Notion. Zéro service tiers à maintenir.

0
infra externe
Stack technique · Ce qui tourne sous le capot

Outils utilisés

Claude CodeTerminal agent — orchestre tout, accès réseau complet + filesystem local
Kimi K2Génération HTML, audit, emails, lignes landing — Kimi K2 (moonshot-v1)
MCP FreepikPhotos & vectors premium — source principale · search + AI generation via Mystic
MCP UnsplashPhotos authentiques en fallback secteur
MCP NotionLecture / écriture CRM — fiches, statuts, propriétés
lftp + OVHUpload FTP mode passif — 2 fichiers par client en ~30s
SMTP OVHEnvoi emails via ssl0.ovh.net — design@baptistegilles.fr · credentials dans .env
Avantages du modèle SaaS vs infrastructure externe

Pourquoi Claude Code

Zéro infrastructure : pas de serveur à maintenir, pas de webhooks, pas de credentials externes
Contrôle total : chaque étape validée avant exécution — pas de surprises
Accès réseau complet : FTP, SFTP, SSH, curl — impossible depuis le sandbox Claude.ai
Évolutif : améliorer le système = améliorer les prompts. Aucun node à reconfigurer.
Traçable : tout passe par le terminal — loggable, auditable, versionnable
Offline-capable : le HTML généré est stocké localement — zéro dépendance cloud
Config email · OVH Mail — design@baptistegilles.fr

SMTP sortant + IMAP entrant

Adressedesign@baptistegilles.fr
SMTP (sortant)ssl0.ovh.netPort 465 · SSL
IMAP (entrant)ssl0.ovh.netPort 993 · SSL
Logindesign@baptistegilles.fr
Mot de passe→ .env · variable MAIL_PASSNe jamais stocker en clair
~/vitrine-ops/.env
# FTP OVH
FTP_PASS=ton_mot_de_passe_ftp
# Mail OVH
MAIL_USER=design@baptistegilles.fr
MAIL_PASS=ton_mot_de_passe_mail
MAIL_HOST=ssl0.ovh.net
MAIL_PORT=465
Envoi email · Via Claude Code + nodemailer

Script d'envoi depuis le terminal

~/vitrine-ops/send-mail.js
// npm install nodemailer dotenv
require('dotenv').config()
const nm = require('nodemailer')

const transporter = nm.createTransport({
  host: process.env.MAIL_HOST,
  port: process.env.MAIL_PORT,
  secure: true,
  auth: {
    user: process.env.MAIL_USER,
    pass: process.env.MAIL_PASS
  }
})

// Appelé par Claude Code avec les params du client
module.exports = transporter
Mode validation — Claude Code génère le corps de l'email et le montre avant d'appeler send(). Baptiste valide, puis Claude exécute l'envoi.

Organisation du projet sur ton Mac

terminal / finder
~/vitrine-ops/
├── .env                     ← FTP_PASS + MAIL_PASS (jamais committés)
├── .gitignore
├── deploy.sh                ← Script universel de deploy
├── vitrine-os-saas.html    ← Ce document

├── templates/               ← Templates HTML par secteur
│   ├── restauration.html
│   ├── artisan.html
│   ├── beaute.html
│   └── retail.html

└── [slug-client]/           ← Un dossier par client
    ├── index.html           ← Landing interstitielle
    └── site/
        └── index.html       ← Site démo complet
PROMPT D'AMORÇAGE — Coller en début de chaque session Claude Code

Tu es mon assistant pour le projet Vitrine OS — un système de prospection
et de création de sites vitrines premium pour commerces locaux IDF.

Tu travailles comme une agence experte en webdesign, SEO local et GEO branding.
Chaque site doit être digne d'un portfolio d'agence parisienne créative.
Standard minimum : Awwwards honorable mention. Pas de compromis sur la qualité.

CONTEXTE OPÉRATIONNEL :
- Chaque client reçoit une landing interstitielle + un site démo live
- URL pattern : design.baptistegilles.fr/[slug]
- FTP : ftp.cluster106.hosting.ovh.net · user: baptistegb · MDP dans ~/vitrine-ops/.env
- Email : design@baptistegilles.fr · SMTP ssl0.ovh.net:465 SSL · credentials dans .env
- CRM : Notion MCP (base "Pipeline Commerces — Vitrine Ops")

TES CAPACITÉS :
- Générer du HTML premium agency-grade (mobile-first, animations, photos Freepik & Unsplash)
- Rechercher des photos & vectors premium via MCP Freepik (principal)
- Utiliser MCP Unsplash en fallback si besoin
- Déployer via lftp sur FTP OVH
- Lire/écrire dans Notion via MCP
- Envoyer des emails via SMTP OVH (validation manuelle obligatoire)

MODE DE TRAVAIL STRICT :
- Tu proposes → je valide → tu exécutes (jamais l'inverse)
- Déploiement : toujours confirmer avant upload FTP
- Email : toujours montrer le contenu complet avant envoi
- Qualité : si tu doutes que le résultat soit au niveau, tu le dis et tu régénères

Prêt ? Dis-moi le client ou l'action à réaliser.
Stack configuré
LEVIER CLÉ

Aides État & Région
Île-de-France 2026

Jusqu'à 2 000 € cumulables pour financer la création du site. L'argument commercial le plus fort — intégré dans tous les emails version D et la landing interstitielle.

2 000 €
cumulables / client

Jusqu'à 2 000 € de subventions pour financer votre site web

Dispositifs cumulables en Île-de-France pour commerçants et artisans de moins de 20 salariés.

1 500 €
Chèque Numérique IDF
TPE/artisans <20 salariés inscrits RCS ou RM. Non rétroactif — déposer avant signature. mesdemarches.iledefrance.fr
500 €
France Num
TPE <11 salariés, CA <2M€. Cumulable avec le chèque IDF. Potentiellement rétroactif. francenum.gouv.fr
Variable
TP'UP / PM'UP
Volet numérique dans un plan de développement. <10 salariés (TP'UP). Monter via CMA ou CCI.
Éligibilité · Vérification rapide

Critères cumulés pour 2 000 €

Inscrit RCS ou Répertoire des Métiers
Moins de 20 salariés (chèque IDF) — moins de 11 pour France Num
Chiffre d'affaires <2 M€ (France Num)
Siège social en Île-de-France (chèque IDF)
Dossier déposé avant la signature — non rétroactif
Argument commercial · Package Standard à 0 €

Reste à charge pour le client

Package Standard1 490 € HT
Chèque Numérique IDF− 1 500 €
France Num− 500 €
Reste à charge0 €
Message présent sur la landing interstitielle, dans tous les emails version D, et dans chaque fiche Notion éligible.
Aides documentées
TARIFS

Grille tarifaire
3 packages

Positionnement conçu pour que le package Standard soit à 0 € pour les clients éligibles aux aides IDF.

1 490 €
panier moyen
Essentiel
990 € HT
Reste à charge : 0 € après aides
✓ Site vitrine 1 page
✓ Design premium mobile-first
✓ Hébergement + maintenance 1 an
✓ SSL + Google My Business
✓ SEO local de base
✓ Mises à jour contenu incluses
— Pages supplémentaires
Standard ★ Recommandé
1 490 € HT
Reste à charge : 0 € après aides
✓ Site vitrine multi-sections
✓ Design Awwwards-level
✓ Hébergement + maintenance 1 an
✓ SSL + Google My Business
✓ SEO local avancé + Analytics
✓ Mises à jour contenu incluses
✓ Jusqu'à 5 pages vitrine
Premium
1 990 € HT
Reste à charge : ≈ 0 € après aides
✓ Site vitrine jusqu'à 10 pages
✓ Design Awwwards-level
✓ Hébergement + maintenance 1 an
✓ SSL + Google My Business
✓ SEO local avancé + Analytics
✓ Formulaire avancé + galerie
✓ Intégration Google Agenda / RDV
🚫
Règle absolue — Sites vitrines uniquement
Aucun site e-commerce, aucune boutique en ligne, aucun système de paiement. Uniquement des sites vitrines de qualité premium. La différence entre les packages est le nombre de pages et la profondeur du contenu — pas la technologie. Maintenance et mises à jour contenu incluses 1 an dans tous les packages. Aucune formation proposée : Baptiste gère tout.
Grille tarifaire
ÉTAPE 01

Scan & Qualification
Identifier et scorer les prospects

Identifier les commerces avec un site faible ou inexistant, les scorer selon la formule /10, ne traiter que les HOT en priorité.

8.5+
score = HOT
Protocole terrain · Session de scan

Comment prospecter efficacement sans perdre de temps

Bloc de 90 min max : identifier 10–15 commerces, ne qualifier que les HOT/WARM (≥ 6.5). Stopper dès 5 dossiers qualifiés.
Filtre rapide en 30 secondes : pas de site = HOT automatique si éligible aides · site daté (< 2018) = WARM · site correct = COOL ou COLD
Données minimales requises : nom exact + email + tel + secteur + ville. Sans email, pas de dossier.
Google Maps gold mine : chercher "[secteur] [ville]" → trier par note → les 4+ étoiles sans site = priorité absolue
Éviter : chaînes, franchises, commerces avec site récent (>2022), professions libérales réglementées (médecins, avocats)
Sources de prospects

Où trouver les meilleurs dossiers

Google Maps : "[secteur] [ville]" — 4+ étoiles sans site ou avec site type Wifeo/Jimdo/e-monsite
Pages Jaunes : filtrer par secteur et CP — sites des années 2000-2015 très fréquents
Instagram local : comptes actifs avec belle clientèle mais sans lien site dans la bio
Recommandations : chaque client livré devient prescripteur — demander 2 contacts voisins commerçants
Passage terrain : vitrines de quartier sans QR code, sans URL, avec devanture soignée
Scoring · Formule /10

Score de priorité automatique

Priorité = (10 − score_audit) × 0.40
  + (éligible_aides ? 3 : 0)
  + (note_google ≥ 4.0 ? 2 : 0)
  + (pas_de_site ? 1 : 0)
// score_audit : 0 = inexistant · 10 = parfait
8.5 – 10
HOT 🔥
Traiter immédiatement
6.5 – 8.4
WARM
Cette semaine
4.0 – 6.4
COOL
File d'attente
0 – 3.9
COLD
Relance J+90
PROMPT — Audit complet + scoring + fiche Notion (Claude Code)

Tu es un consultant senior en webdesign, SEO local et GEO branding.
Tu audites des sites de commerces locaux avec un œil d'agence experte.
Sois précis, factuel, implacable — pas de diplomatie.

Commerce : [Nom], [Secteur], [Ville] [CP]
Site actuel : [URL ou "aucun site détecté"]
Note Google : [X.X]/5 — [N] avis · [lien GMB si disponible]
Email : [email] · Tel : [tel] · Adresse : [adresse complète]
Secteur NAF : [code si disponible] · Statut : [RCS / RM / auto]

GRILLE D'AUDIT (note chaque dimension de 0 à 10) :

score_technique (0–10) :
  0–2 = pas de site · 3–4 = site cassé/non sécurisé/non mobile
  5–6 = site fonctionnel mais daté · 7–8 = correct · 9–10 = moderne et rapide

score_ux (0–10) :
  0–2 = illisible/navigation impossible · 3–4 = confus
  5–6 = basique mais utilisable · 7–8 = bon · 9–10 = excellent

score_seo_local (0–10) :
  0–2 = aucune optimisation, introuvable · 3–4 = nom dans title uniquement
  5–6 = quelques balises · 7–8 = structuré, GMB présent · 9–10 = dominant local

score_conversion (0–10) :
  0–2 = aucun CTA visible · 3–4 = CTA peu clair · 5–6 = CTA présent
  7–8 = parcours fluide · 9–10 = optimisé, tel cliquable, formulaire

score_branding (0–10) :
  0–2 = aucune identité · 3–4 = logo pixellisé, pas de cohérence
  5–6 = identité basique · 7–8 = cohérent et professionnel
  9–10 = fort, mémorable, différenciant

score_audit = moyenne des 5 dimensions ci-dessus (arrondi au dixième)

ÉLIGIBILITÉ AIDES :
Vérifier : <20 salariés + inscrit RCS ou RM + siège IDF
  → eligible_aides: true → aides_montant: 2000
  → eligible_aides: false → aides_montant: 0

ROUTING EMAIL :
  D (défaut si eligible_aides = true) · C (HOT + non éligible)
  A (WARM/COOL standard) · B (artisan, secteur émotionnel)

Retourne UNIQUEMENT ce JSON strict :
{
  "score_technique": X.X,
  "score_ux": X.X,
  "score_seo_local": X.X,
  "score_conversion": X.X,
  "score_branding": X.X,
  "score_audit": X.X,
  "problemes_critiques": [
    "Problème court et percutant",
    "Problème court et percutant",
    "Problème court et percutant"
  ],
  "top_3_arguments": [
    "Argument client spécifique à ce commerce",
    "Argument client spécifique à ce commerce",
    "Argument client spécifique à ce commerce"
  ],
  "eligible_aides": true|false,
  "aides_montant": 0|1500|2000,
  "package_recommande": "Essentiel"|"Standard"|"Premium",
  "reste_a_charge": number,
  "version_email": "A"|"B"|"C"|"D",
  "score_priorite": X.X,
  "temperature": "HOT"|"WARM"|"COOL"|"COLD"
}

Puis crée la fiche Notion via MCP.
Affiche : [Nom] · score_audit [X.X]/10 · [TEMPÉRATURE] · reste à charge [X]€
Étape 1 — Scan
ÉTAPE 02

Création du site
Design Awwwards-level, mobile-first

Claude Code génère un site vitrine premium HTML autonome — unique à chaque client, photos Freepik premium authentiques, animations fluides. Critère minimum : honorable mention Awwwards.

Award
standard qualité
Skills design · Combinaison obligatoire

4 skills à chaque génération

high-end-visual-design : Double-bezel, Button-in-Button, Z-axis cascade, spatial rhythm, cubic-bezier physique
minimalist-ui : Typographie éditoriale, dividers seuls — jamais de card générique
design-taste-frontend : Anti-slop, 1 accent max, saturation <80%
frontend-design : IntersectionObserver only, transform+opacity uniquement
Bannis : Inter/Roboto/Arial · Navbar plein-écran · Bootstrap 3-col · Transitions linear · h-screen · window.scroll · shadow-md
Photos · Stratégie Freepik (principal) + Unsplash (fallback)

Queries construites selon l'activité

Hero : [activité] [action] [ambiance] — landscape, per_page:5
Services : [service] [contexte] — portrait, 1/service
Savoir-faire : [métier] craftsman workshop — portrait
À propos : [secteur] shop interior — landscape
Restauration · restaurant chef cooking · food plating
Artisans · craftsman workshop tools · construction
Beauté · hair salon interior · beauty treatment
Retail · boutique shop interior · display products
Santé · medical professional clinic · healthcare
PROMPT — Génération du site vitrine premium (Claude Code)

Tu es un senior creative director d'une agence parisienne experte en
webdesign, SEO local et GEO branding. Tu as 10 ans d'expérience sur
des sites à fort impact visuel et commercial. Tu connais les patterns
de Vercel, Linear, Awwwards et les meilleures agences IDF par cœur.
Ton obsession : que le client se dise "c'est infiniment mieux que
ce que j'ai" en 3 secondes, et que Google le trouve en premier.

DONNÉES CLIENT (depuis Notion) :
Commerce     : [Nom] · [Secteur] · [Ville] [CP]
Services     : [liste des services/produits principaux]
Horaires     : [horaires]
Contact      : [tel] · [email] · [adresse complète]
Google       : [X.X]★ · [N] avis · [URL GMB si dispo]
Points forts : [top_3_arguments du JSON audit]
Site actuel  : [URL — à surpasser visuellement de manière flagrante]
Zone chalandise : [quartiers / villes limitrophes à mentionner]

DIRECTION CRÉATIVE (choisie selon le secteur, jamais répétée) :
- Typo : sérif variable pour artisanal/luxe · grotesk condensé pour urbain/sport
  script pour mode/beauté · jamais Inter/Roboto/Arial/Open Sans
- Palette : 1 couleur dominante forte + neutrals warm · max 1 accent · sat <80%
- Layout : asymétrie intentionnelle · Z-axis depth · spatial rhythm 24px minimum
- Ambiance : choisie selon le secteur — sobre et premium pour artisans,
  vibrant et appétissant pour restauration, doux et sensoriel pour beauté

STRUCTURE OBLIGATOIRE (dans cet ordre) :
1. Nav pill glassmorphism flottante — logo + CTA tel, liens masqués mobile
2. Hero split : headline H1 avec tension émotionnelle (le problème que tu résous)
   + sous-titre bénéfice · image double-bezel pleine hauteur Freepik · min-height 100dvh
3. Marquee sérifé — citation inspirante du métier, nom du commerce, spécialités
4. Services en Z-axis cascade — photos portrait Freepik premium, overlay dégradé noir/bas,
   titre oversized, 1 phrase bénéfice client · pas de liste de features, des transformations
5. Savoir-faire — section dark full-bleed, photo ambiance métier, 3 stats chiffrées
6. Témoignages asymétriques — 3 avis réalistes (prénom + ville + date récente)
7. À propos — double-bezel photo + histoire humaine courte + valeurs du commerce
8. Contact — formulaire card dark + tel click-to-call + adresse + Google Maps embed
9. Footer — mentions légales · réseaux · "Site réalisé par Baptiste Gilles · baptistegilles.fr"

SEO LOCAL + GEO BRANDING (intégrer naturellement dans tout le contenu) :
- Title tag : "[Nom commerce] — [Activité principale] à [Ville] ([CP])"
- Meta description : 155 car max · inclure ville + activité + différenciateur clé
- H1 : contient [activité] + [ville] naturellement
- Mentions géo dans le body : [Ville], [quartier], [villes limitrophes] 2-3 fois
- Schema.org LocalBusiness complet :
  name, description, address, telephone, openingHours,
  geo (lat/lng), sameAs (GMB, réseaux), priceRange
- Alt texts photos : "[activité] [lieu] [ville]" — jamais generiques
- Open Graph complet (og:title, og:description, og:image)
- Sitemap.xml commenté dans le footer (pour référence future)

RÈGLES DE QUALITÉ (non négociables) :
- Zéro Lorem ipsum — contenu réaliste, contextualisé, inspirant, spécifique à CE commerce
- 7 photos/vectors Freepik premium via MCP (queries précises par section et secteur)
- Hover physique sur tous les éléments interactifs : transform + shadow + couleur
- Animations : IntersectionObserver uniquement · transform+opacity · cubic-bezier(0.32,0.72,0,1)
  stagger : animation-delay: calc(var(--i, 0) * 80ms) sur les grilles
- Mobile : min-height 100dvh · clamp() tous les titres · touch targets 48px · 1fr <768px
- CTA tel sticky mobile — fixe en bas d'écran, toujours visible, numéro cliquable
- Un seul fichier HTML · CSS inline · JS vanilla · zéro dépendance externe
- INTERDIT : aucun panier, aucune boutique, aucun système de paiement — vitrine pure uniquement

CRITÈRE DE RÉUSSITE :
"C'est une vraie agence créative parisienne qui a fait ça — pas un template.
Le commerçant est fier de le montrer à ses clients. Google le trouve en premier
sur '[activité] [ville]'. Si l'un de ces trois critères n'est pas atteint → régénérer."

LIVRAISON :
Sauvegarder dans ~/vitrine-ops/[slug]/site/index.html
Montre-moi le hero + la nav + le title SEO avant de continuer — j'approuve avant la suite.
DONNÉES CLIENT (depuis Notion) : Commerce : [Nom] · [Secteur] · [Ville] Services : [liste des services/produits principaux] Horaires : [horaires] Contact : [tel] · [email] · [adresse] Google : [X.X]★ · [N] avis Points forts : [top_3_arguments du JSON audit] Site actuel : [URL — à surpasser visuellement de manière flagrante] AMBIANCE DE MARQUE (choisie par Claude selon le secteur) : - Direction créative unique : typo + palette + layout inédits pour ce client - Fonts bannis : Inter, Roboto, Arial, Open Sans — jamais - Max 1 couleur d'accent, saturation <80% - Sérif variable pour l'éditorial/artisanal · grotesk geometric pour le moderne/tech STRUCTURE OBLIGATOIRE (dans cet ordre) : 1. Nav pill glassmorphism flottante — logo + CTA tel, liens masqués mobile 2. Hero split : headline H1 avec tension émotionnelle + sous-titre + CTA primaire + image double-bezel pleine hauteur via MCP Freepik · min-height 100dvh 3. Marquee sérifé — citation inspirante, nom du commerce, spécialités 4. Services en Z-axis cascade — photos portrait Freepik premium, overlay dégradé, titre oversized, description courte · chaque service = une vraie raison de choisir ce commerce 5. Savoir-faire / Atelier — section dark full-bleed, photo ambiance, 3 stats 6. Témoignages asymétriques — données fictives réalistes (vrais prénoms, villes, dates) 7. À propos — double-bezel photo magasin + histoire humaine du commerçant 8. Contact — formulaire card dark + tel sticky mobile + adresse + Google Maps embed 9. Footer — liens légaux, réseaux, signature Baptiste Gilles RÈGLES DE QUALITÉ (non négociables) : - Zéro Lorem ipsum — tout le contenu est réaliste, contextualisé, inspirant - Zéro placeholder — 7 photos/vectors Freepik premium via MCP (queries adaptées au secteur) - Tous les états UI : hover physique (transform + shadow), focus visible, CTA tel sticky mobile - Animations : IntersectionObserver uniquement · transform+opacity uniquement cubic-bezier(0.32,0.72,0,1) · stagger animation-delay: calc(var(--i) * 80ms) - Mobile-first absolu : min-height 100dvh · clamp() sur tous les titres touch targets 48px · grille 1fr sur <768px - Schema.org LocalBusiness complet - Un seul fichier HTML, CSS inline, JS vanilla — zéro dépendance CRITÈRE DE RÉUSSITE : Quelqu'un qui voit ce site doit penser : "C'est une vraie agence parisienne qui a fait ça — pas un template." Le commerçant doit être fier de le montrer à ses clients. Si ce n'est pas le cas → régénérer. LIVRAISON : Sauvegarder dans ~/vitrine-ops/[slug]/site/index.html Montre-moi le hero et la nav avant de continuer — j'approuve avant la suite.
PROMPT — Auto-audit visuel avant deploy (Claude Code)

Tu es un design director qui facture 500€/h. Tu as audité des dizaines
de sites de commerces locaux. Tu ne fais pas dans la diplomatie —
tu dis ce qui est cassé et tu le répares immédiatement.

Audite le site que tu viens de générer (~/vitrine-ops/[slug]/site/index.html)
sur ces 7 dimensions (note /10 + critique directe) :

1. Impact 3 secondes — est-ce que le hero crée un effet "waouh" immédiat ?
2. Supériorité évidente — est-ce objectivement mieux que [URL site actuel du client] ?
3. Typographie — hiérarchie lisible à 3 niveaux, pairing cohérent, titres imposants
4. Photos — images authentiques, pas de placeholder, qualité professionnelle
5. Mobile 375px — hero plein, CTA sticky, aucun débordement, lecture fluide
6. Modernité — feel 2026 ou 2019 ? Animations fluides ? Interactions physiques ?
7. Fierté client — le commerçant serait-il fier de montrer ça à ses clients ?

Si une note est < 8/10 → corriger immédiatement avant de continuer.
Si toutes les notes sont ≥ 8/10 → valider et passer au deploy.
Étape 2 — Build
ÉTAPE 03

Déploiement FTP
Landing + site démo en ligne

Claude Code génère la landing interstitielle signée Baptiste Gilles, puis déploie les 2 fichiers sur FTP OVH. URL live en moins de 2 minutes.

v3
landing validée
Landing interstitielle · Design validé v3

Le client atterrit ici avant de voir le site démo

Page dans la continuité de baptistegilles.fr. Fond noir, accent jaune vif, Syne 800. Mobile-first — le prospect clique depuis l'email sur son téléphone.

Structure · 6 blocs
Header

Signature Baptiste

Logo mark jaune "B" + badge "Préparé pour vous"

Identité

[Nom du Commerce] · [Ville]

Label mono injecté dynamiquement

Headline

"Votre site est prêt."

Syne 800 · clamp(48px,13vw,72px) · underline animée jaune

Audit avant/après

Problèmes → Corrections

Grille 2 colonnes rouge/vert depuis problemes_critiques[]

Reste à charge

0 € — pill jaune

IDF 1 500 € + France Num 500 €

CTAs

3 actions

"Voir le site démo" → ./site/ · Aides · Planifier un appel

Variables à injecter
[Nom du Commerce]NotionPropriété "Nom du commerce"
[Ville]NotionPropriété "Ville"
[N] améliorationsAutolen(problemes_critiques)
Lignes auditClaudeDepuis problemes_critiques[]
Exemples lignes audit
Avant (rouge)Après (vert)
Invisible sur mobile100% responsive
Alerte Chrome (HTTPS)SSL inclus dès le lancement
Introuvable sur GoogleSEO local optimisé
Chargement trop longRapide dès le 1er clic
DNS · Une seule fois dans OVH

Wildcard *.baptistegilles.fr

TypeNomValeur
A*5.135.47.100
A@5.135.47.100
CNAMEwwwbaptistegilles.fr.
FTP · Structure par client

2 fichiers uploadés

/home/baptistegb/[slug]/
├── index.html     ← Landing
└── site/
    └── index.html ← Démo

design.baptistegilles.fr/[slug]/      → landing
design.baptistegilles.fr/[slug]/site/ → démo
PROMPT — Génération landing + deploy FTP (Claude Code)

Génère la landing interstitielle et déploie les 2 fichiers sur FTP.

Client : [Nom], [Ville] · Slug : [slug]
Problèmes : [problemes_critiques[] du JSON audit]

Étape 1 — Générer la landing
Injecter [Nom], [Ville], N améliorations et les lignes avant/après.
Design : fond noir, accent jaune #F5C842, Syne 800.
Sauvegarder → ~/vitrine-ops/[slug]/index.html

Étape 2 — Deploy FTP
Lire ~/vitrine-ops/.env pour FTP_PASS.
lftp mode passif :
  - Créer /home/baptistegb/[slug]/ et /home/baptistegb/[slug]/site/
  - Uploader les 2 fichiers

Étape 3 — Vérifier + Notion
curl -I https://design.baptistegilles.fr/[slug] → confirmer 200 OK
Notion : statut "Site créé" + URL démo renseignée

Montre-moi l'URL finale avant de fermer.
Script · ~/vitrine-ops/deploy.sh

Script universel à donner à Claude Code

bash
#!/usr/bin/env bash
# Usage: ./deploy.sh "Nom du Commerce"
set -euo pipefail
source "$(dirname "$0")/.env"
SLUG=$(echo "$1" | iconv -t ASCII//TRANSLIT | tr '[:upper:]' '[:lower:]' \
  | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-\|-$//g')
lftp -e "
  set ftp:passive-mode true;
  set ssl:verify-certificate false;
  open -u baptistegb,${FTP_PASS} ftp.cluster106.hosting.ovh.net;
  mkdir -p /home/baptistegb/${SLUG}/site;
  put ~/vitrine-ops/${SLUG}/index.html -o /home/baptistegb/${SLUG}/index.html;
  put ~/vitrine-ops/${SLUG}/site/index.html -o /home/baptistegb/${SLUG}/site/index.html;
  quit
"
echo "✓ https://design.baptistegilles.fr/${SLUG}"
Étape 3 — Deploy
ÉTAPE 04

Prospection email
4 versions · Routing automatique

Claude Code génère et montre l'email avant envoi. Baptiste valide. Envoi via SMTP OVH (ssl0.ovh.net).

4
versions email
Templates emails · 4 versions complètes

Contenu complet — à personnaliser par Claude Code selon le profil

Routing automatique
VersionProfilObjet
D — AidesÉligible aides Défaut"[Prénom], votre site est prêt — et il est financé à 100%"
C — FOMOHOT sans aides"[Prénom], j'ai 7 jours pour vous le montrer"
A — DirectWARM / COOL"[Prénom], j'ai créé votre nouveau site ce matin"
B — HumainArtisans, émotionnel"[Prénom], votre savoir-faire mérite mieux"
Version D — Aides · Template
Objet : [Prénom], votre site est prêt — et il est financé à 100%

Bonjour [Prénom],

J'ai pris le temps d'analyser [nom du commerce] et j'ai constaté que [problème_critique_1].

J'ai créé une version modernisée de votre site — sans rien vous demander. Vous pouvez le voir ici :
→ design.baptistegilles.fr/[slug]

Bonne nouvelle : en tant que [statut RCS/RM] en Île-de-France, vous êtes éligible à 2 000 € de subventions (Chèque Numérique IDF + France Num). Le site vous coûte donc 0 €.

Si ça vous intéresse, on s'appelle 15 minutes cette semaine ?

Baptiste Gilles
Designer web spécialisé [secteur] · 07 80 97 70 20 · baptistegilles.fr
Version C — FOMO · Template
Objet : [Prénom], j'ai 7 jours pour vous le montrer

Bonjour [Prénom],

J'ai créé un nouveau site pour [nom du commerce] — je l'héberge gratuitement pendant 7 jours :
→ design.baptistegilles.fr/[slug]

Je l'ai conçu après avoir vu que [problème_critique_1]. En 3 secondes sur mobile, le résultat est radical.

Si vous ne me répondez pas avant le [date J+7], je le supprime et je passe au commerce suivant.

Baptiste
07 80 97 70 20
Version A — Direct · Template
Objet : [Prénom], j'ai créé votre nouveau site ce matin

Bonjour [Prénom],

Je suis designer web spécialisé dans les commerces [secteur] en Île-de-France. J'ai créé une démo pour [nom du commerce] :
→ design.baptistegilles.fr/[slug]

J'ai corrigé [problème_critique_1] et [problème_critique_2]. Ça prend 30 secondes à regarder.

Baptiste Gilles · baptistegilles.fr
Version B — Humain · Template
Objet : [Prénom], votre savoir-faire mérite mieux

Bonjour [Prénom],

J'ai découvert [nom du commerce] via Google — vos clients vous font confiance ([note]★). Mais votre présence en ligne ne reflète pas ce niveau.

J'ai pris le temps de créer quelque chose de digne de votre travail :
→ design.baptistegilles.fr/[slug]

Vous me direz ce que vous en pensez ?

Baptiste Gilles · Designer web · 07 80 97 70 20
Signatures adaptées par secteur
Restauration
Designer web spécialisé restauration & alimentaire IDF
Artisans
Designer web spécialisé artisans & bâtiment IDF
Beauté
Designer web spécialisé instituts & bien-être IDF
Retail
Designer web spécialisé commerces de proximité IDF
Santé
Designer web spécialisé professionnels de santé IDF
Services
Designer web spécialisé TPE & services IDF
Séquence de relance · Calendrier

4 points de contact par dossier

J+0

Email initial

Version A/B/C/D selon profil · SMTP OVH · Baptiste valide avant envoi

Manuel
J+4

Relance courte

"Juste pour vérifier que le lien fonctionne bien de votre côté."

Manuel
J+10

Breakup email

"Je vais désactiver la démo dans 48h — je passe à un autre commerce."

Manuel
J+180

Réactivation

Nouvel angle — aide mise à jour, concurrent signé, design amélioré

Semi-auto
Gestion des objections · Réponses préparées

Les 5 objections les plus fréquentes

"C'est trop cher."
"Le Standard est à 1 490€ HT. Avec le Chèque Numérique IDF (1 500€) et France Num (500€) — votre reste à charge est 0€. Le dossier, je vous aide à le monter."
"J'ai déjà quelqu'un qui gère ça."
"Regardez juste la démo — 30 secondes. Si votre prestataire actuel vous propose ce niveau, restez avec lui. Sinon, on en parle."
"Je n'ai pas le temps."
"C'est exactement pour ça que j'ai tout préparé sans vous déranger. Un appel de 15 min suffit — vous n'avez rien à faire, juste valider."
"Mon site me convient."
"Regardez la démo sur mobile. [Insérer statistique locale : X% de vos clients cherchent sur téléphone.] Si l'expérience est meilleure, ça mérite 15 minutes d'échange."
"Je ne fais pas confiance à internet."
"Je comprends. Aucun engagement à ce stade — la démo est là, gratuite. Je suis disponible en visio ou en personne si vous préférez discuter de vive voix."
PROMPT — Génération email personnalisé + envoi SMTP (Claude Code)

Génère l'email de prospection pour ce client et prépare l'envoi.

Client : [Nom], [Prénom si trouvé], [Secteur], [Ville]
Email : [email] · Version : [A|B|C|D] (depuis Notion)
URL démo : design.baptistegilles.fr/[slug]
Problèmes clés : [problemes_critiques[0] et [1]]
Éligible aides : [oui/non] · Montant : [montant]€
Note Google : [X.X]★

En utilisant le template de la version [A|B|C|D] :
1. Personnaliser avec le prénom, le nom du commerce, le secteur
2. Insérer le problème critique le plus percutant (pas générique)
3. Signature adaptée au secteur
4. Objet : court, personnalisé, pas de spam words

Montre-moi l'email complet (objet + corps + signature) avant d'envoyer.
J'approuve → tu envoies via SMTP OVH.

Puis Notion : "Email envoyé le" = aujourd'hui · Statut → "Email envoyé"
Étape 4 — Prospect
ÉTAPE 05

Synchronisation
Notion comme source de vérité

Toutes les actions mettent à jour Notion via MCP. Claude Code lit et écrit dans le CRM à chaque étape du pipeline.

Notion
CRM central
Schéma CRM · Pipeline Commerces — Vitrine Ops

Toutes les propriétés de la base Notion

Nom du commerceTitleClé primaire de la fiche
StatutSelectÀ contacter · En cours · Site créé · Email envoyé · Répondu · Retours · Signé · Livré · Refus · Réactivation
TempératureSelectHOT · WARM · COOL · COLD
Score auditNumber0–10 · Note du site actuel (0 = inexistant, 10 = parfait)
Score prioritéNumber0–10 · Score composite calculé par Claude
SecteurSelectRestauration · Artisans · Beauté · Retail · Services · Santé · Autre
VilleTextVille + code postal
EmailEmailEmail de contact
TéléphonePhoneNuméro principal
Site existantURLURL du site actuel si existant
URL démoURLdesign.baptistegilles.fr/[slug] — renseigné après deploy
Domaine finalURLDomaine client après signature
Note GoogleNumberNote sur 5 depuis Google Maps
Éligibilité aidesSelectÀ vérifier · Éligible · Non éligible · Dossier déposé · Validé
Aides mobilisablesNumberMontant total en € (0 / 1500 / 2000)
Package proposéSelectEssentiel 990€ · Standard 1490€ · Premium 1990€
Reste à chargeNumberEn € après déduction des aides
Version emailSelectA Direct · B Humain · C FOMO · D Aides
Email envoyé leDateDate J+0 — base du suivi des relances
ProblèmesTextproblemes_critiques[] renseigné lors de l'audit
Retours clientTextFeedback client si réponse reçue
NotesTextNotes libres — contexte, historique, particularités
PROMPT — Mise à jour Notion après chaque action (Claude Code)

Mets à jour la fiche Notion pour [Nom du Commerce].
Action réalisée : [Site déployé | Email envoyé | Réponse reçue | Signé]

Propriétés à mettre à jour selon l'action :
Site déployé  → Statut: "Site créé" · URL démo: [url]
Email envoyé  → Statut: "Email envoyé" · Email envoyé le: [date]
Réponse reçue → Statut: "Répondu" · Retours client: [contenu]
Signé         → Statut: "Signé" · Package: [pkg] · Domaine final: [domaine]
Étape 5 — Sync
ÉTAPE 06

Révisions & clôture
De la réponse à la signature

Quand le client répond, Claude Code lit les retours, applique les modifications, réupload et prépare les documents de signature.

J+7
avis Google
Du "ça m'intéresse" à la signature

Protocole de closing en 3 actes

Acte 1 — Appel de découverte (15 min)

Objectif : comprendre le vrai besoin

Questions : Depuis quand avez-vous ce site ? Qu'est-ce qui vous en empêche de le changer ? Combien de nouveaux clients via internet actuellement ? Quel est votre délai pour décider ? → Reformuler en bénéfice, proposer le package adapté.

Acte 2 — Présentation devis (48h max)

Objectif : concrétiser avec les aides

Envoyer le devis Pennylane + le guide aides (mesdemarches.iledefrance.fr + francenum.gouv.fr). Ligne objet : "[Nom] — votre devis + les 2 000€ de subventions". Appuyer sur le reste à charge 0€.

Acte 3 — Relance devis (J+3 si pas de réponse)

Objectif : lever le dernier frein

"Bonjour [Prénom], avez-vous eu le temps de regarder le devis ? Je peux répondre à toutes vos questions en 10 minutes. Le dossier aides doit être déposé avant la signature — je peux vous guider." → Si toujours pas de réponse à J+7 : classer Refus.

Checklist post-signature · 8 étapes

De la signature à la livraison

Devis signé : générer la facture sur Pennylane — 30% à la commande, 70% à la livraison
Aides : envoyer le guide complet + accompagner le client dans le dossier avant signature
Domaine : transférer ou acquérir le domaine client — configurer DNS + SSL Let's Encrypt
Migration : copier les fichiers depuis ~/vitrine-ops/[slug]/ vers le domaine final
GEO branding : Google My Business — revendiquer, compléter photos, horaires, services, posts
Analytics : Google Analytics 4 + Search Console + soumission sitemap
Mises à jour initiales : Baptiste applique les derniers ajustements de contenu demandés par le client (textes, photos, horaires)
Avis J+7 : email automatique de demande d'avis Google + lien direct GMB
PROMPT — Application des retours client (Claude Code)

Tu es un design director qui a fait passer des interfaces de
"ça marche" à "je veux le montrer à tout le monde". Tu vois
immédiatement ce qui doit changer et tu le corriges avec précision.

Client : [Nom] · Fichier : ~/vitrine-ops/[slug]/site/index.html
Retours reçus :
[Coller les retours tels quels — email, message, note Notion]

Étape 1 — Lis le fichier existant.
Étape 2 — Analyse les retours et identifie :
  · Ce qui est une vraie demande fonctionnelle (à appliquer)
  · Ce qui est une préférence esthétique (à appliquer avec soin)
  · Ce qui risque de dégrader le design (à signaler avant d'appliquer)
Étape 3 — Liste les modifications que tu vas faire (j'approuve).
Étape 4 — Après mon feu vert : applique, sauvegarde, montre le diff.
Étape 5 — Attends ma validation visuelle avant de réuploader sur FTP.
Étape 6 — Close
ÉTAPE 07

Réactivation
Les refus d'aujourd'hui, clients de demain

Les dossiers "Refus" sont relancés à J+180 avec un angle renouvelé — chaque lundi, Claude Code interroge Notion et prépare les emails de réactivation.

J+180
relance
Vérification hebdomadaire · Chaque lundi matin

Détecter les dossiers à réactiver depuis Notion

Claude Code interroge Notion via MCP — tous les dossiers statut "Refus" dont "Email envoyé le" ≤ aujourd'hui − 180 jours
Pour chaque dossier : génère un email avec angle différent (nouvelle aide, concurrent signé, design amélioré...)
Brouillon Gmail créé — Baptiste relit et valide avant envoi
Notion mis à jour : statut "Réactivation" + date relance
PROMPT — Réactivation hebdomadaire (Claude Code · lancer chaque lundi)

Vérifie dans Notion les dossiers à réactiver cette semaine.

Critères :
- Statut = "Refus"
- "Email envoyé le" ≤ aujourd'hui − 180 jours

Pour chaque dossier trouvé :
1. Récupérer : nom, secteur, problèmes audit, ville, version email initiale
2. Générer un email de réactivation avec un angle différent :
   - Nouvelle aide disponible
   - "Un commerce de votre secteur à [Ville] vient de lancer son site"
   - Design mis à jour depuis votre premier contact
3. Envoyer via SMTP OVH après validation manuelle
4. Notion : statut → "Réactivation"

→ Liste-moi d'abord les dossiers trouvés. J'approuve avant génération.
Système complet
DESIGN

Design System
Skills + MCP + Règles

Chaque site est unique. Direction créative inédite à chaque génération — typo, palette, layout différents. Critère absolu : niveau Awwwards.

Award
objectif qualité
MCP Connecteurs actifs dans Claude Code

Outils disponibles

Freepiksearch_resources + AI generation — photos & vectors premium, source principale
Unsplashsearch_photos — fallback photos authentiques par secteur
Notionfetch, update-page, create-pages — CRM complet
@21st-dev/magiccomponent_builder, inspiration, refiner — composants UI premium
SMTP OVHEnvoi emails transactionnels — ssl0.ovh.net · design@baptistegilles.fr
Figmasearch_design_system — accès au design system si besoin
Typographie & Palette · Règles

Direction créative unique par client

Variance obligatoire : jamais le même couple typo/palette deux fois
Fonts bannis : Inter · Roboto · Arial · Open Sans — jamais
Choix contextuel : sérif variable pour l'éditorial · grotesk pour tech · condensed pour sport/craft
Max 1 accent : saturation <80% · une couleur dominante · pas de palette arc-en-ciel
Important — Les choix typo et palette sont propres à chaque client, décidés à la génération. Jamais imposés a priori.
Mobile-first · Spec technique non négociable

Le prospect ouvre sur son téléphone — c'est LE moment décisif

Exigences mobile (<768px)
min-height 100dvh : jamais h-screen (iOS Safari bug)
CTA tel sticky : bouton fixe en bas — tap sans scroll
clamp() partout : titres scalés — jamais de débordement
Touch targets : min 48px de hauteur
Images : w=400 mobile, w=1080 desktop
Animations · Règles absolues
IntersectionObserver only : jamais window.scroll
Transform + opacity : jamais top/left/width animés
Grain overlay : position:fixed · pointer-events:none
cubic-bezier : (0.32,0.72,0,1) — jamais linear
"Ce site pourrait-il gagner
un Awwwards honorable mention ?"
Si non → régénérer.
Design System documenté
CRM

Setup Notion & Claude Code
Démarrage en 5 minutes

Tout ce qu'il faut pour passer de cette conversation à Claude Code et déployer le premier site.

5 min
setup complet
Vues Notion préconfigurées

5 vues dans le pipeline

🗂 Kanban PipelineGroupé par Statut — vue principale
🔥 PrioritésTriée par Score priorité, sans Refus
📅 Calendrier relancesCalé sur "Email envoyé le"
🖼 Gallery démosFiltrée sur "Site créé"
💶 Éligibles aidesÉligible, triée par score
Démarrage · Procédure de migration

Depuis Claude.ai → Claude Code

npm install -g @anthropic-ai/claude-code
brew install lftp
Créer ~/vitrine-ops/.env avec FTP_PASS=...
cd ~/vitrine-ops && claude
Coller le prompt d'amorçage (section Stack)
bash · commandes
# Install
npm install -g @anthropic-ai/claude-code
brew install lftp

# Setup
mkdir -p ~/vitrine-ops
echo "FTP_PASS=ton_mdp_ftp" > ~/vitrine-ops/.env
echo "MAIL_PASS=ton_mdp_ovh_mail" >> ~/vitrine-ops/.env
echo ".env" > ~/vitrine-ops/.gitignore

# Lancer
cd ~/vitrine-ops && claude
Setup configuré
LEVEL UP 01

Rapport mensuel client
Revenu récurrent + fidélisation

Chaque client livré reçoit un rapport mensuel automatique : trafic, positions SEO, clics téléphone. Ça justifie la maintenance, crée une relation durable et déclenche les renouvellements.

J+30
premier rapport
Contenu du rapport · Ce que le client reçoit

Un email clair, chiffré, valorisant

Visites : nombre de sessions ce mois vs mois précédent (Google Analytics 4 API)
Position SEO : rang sur "[activité] [ville]" dans Google Search Console
Clics téléphone : nombre de clics sur le bouton tel (GA4 event tracking)
Avis Google : note actuelle + nouveaux avis ce mois
Action recommandée : Claude génère 1 conseil actionnable spécifique à ce client
Impact commercial — Le rapport mensuel transforme une vente one-shot en relation durable. Il justifie le renouvellement annuel et crée des ambassadeurs naturels qui recommandent Baptiste à leurs voisins commerçants.
Déclencheur · 1er du mois · automatique

Pipeline de génération

Source GA4

API Google Analytics 4

Récupérer sessions, clics tel, pages vues du mois écoulé pour le domaine client

Source GSC

API Search Console

Position moyenne sur les requêtes locales · Impressions · CTR

Génération

Claude Code rédige le rapport

Email personnalisé · ton positif · 1 insight clé · 1 recommandation actionnelle

Envoi

SMTP OVH + Notion

Email envoyé · date et métriques archivées dans la fiche Notion client

PROMPT — Génération rapport mensuel client (Claude Code · 1er du mois)

Génère le rapport mensuel pour tous les clients au statut "Livré" dans Notion.

Pour chaque client :
1. Récupérer depuis Notion : nom, domaine final, email, secteur, ville
2. Appeler l'API Google Analytics 4 (credentiel GA_KEY dans .env) :
   → sessions ce mois / sessions mois précédent
   → clics sur l'événement "tel_click"
   → pages les plus vues
3. Appeler l'API Search Console (credentiel GSC_KEY dans .env) :
   → position moyenne sur les requêtes contenant [ville]
   → impressions totales · CTR moyen
4. Générer un email de rapport :

STRUCTURE EMAIL RAPPORT :
Objet : "📊 [Nom commerce] · Votre site ce mois — [Mois Année]"

Bonjour [Prénom],

Voici ce que votre site a généré en [Mois] :

✓ [N] visiteurs ce mois (+/-X% vs mois dernier)
✓ [N] clics sur votre numéro de téléphone
✓ Position [X] sur Google pour "[activité] [ville]"
✓ Note Google actuelle : [X.X]★

[1 conseil actionnable spécifique : ex. "Vos horaires du samedi ne sont pas
mentionnés sur Google My Business — ajoutez-les pour capter plus de trafic weekend."]

Baptiste Gilles · design@baptistegilles.fr · 07 80 97 70 20

5. Envoyer via SMTP OVH
6. Archiver les métriques dans Notion : nouvelle propriété "Dernier rapport" = date

→ Me montrer la liste des clients avant envoi. J'approuve globalement ou client par client.
Level up 01 — Rapport mensuel
LEVEL UP 02

Competitive Intelligence
Brief stratégique avant chaque site

Avant de générer le site, Claude Code analyse les 2–3 concurrents directs sur Google Maps. Le brief créatif intègre ce que tu dois surpasser. Le commerçant comprend que c'est du vrai travail stratégique.

+3
concurrents analysés
Ce que ça change dans la démo

Du site joli au site stratégiquement supérieur

Positionnement : identifier le gap entre le client et ses concurrents — et le combler visuellement et textuellement
Contenu différenciateur : si les concurrents ont tous le même titre H1, Claude choisit un angle radicalement différent
Argument commercial : "vos concurrents ont ces lacunes — votre nouveau site les surpasse sur ces 3 points" dans l'email de prospection
SEO offensif : si un concurrent est bien positionné sur une requête, cibler une variante longue traîne plus accessible
Intégration dans l'audit · Étape 01 upgradée

Analyse concurrentielle rapide

Rechercher "[secteur] [ville]" sur Google Maps → identifier les 3 premiers concurrents avec site
Pour chaque concurrent : noter l'URL, le design (/10 rapide), le titre H1, le CTA principal
Identifier la lacune principale commune (souvent : pas mobile, pas de témoignages, CTA absent)
Définir l'angle de différenciation à intégrer dans le brief créatif et l'email de prospection
PROMPT — Analyse concurrentielle avant génération du site (Claude Code)

Avant de générer le site de [Nom], analyse ses 3 concurrents directs.

Requête cible : "[secteur] [ville]" sur Google
Commerce analysé : [Nom] — à NE PAS inclure dans les concurrents

Pour chacun des 3 premiers résultats avec site web :
1. Capturer : URL · titre de la page · H1 · CTA principal · note Google
2. Évaluer rapidement (/10) : design · mobile · SEO local · conversion
3. Identifier leur point faible le plus évident

Synthèse :
- Lacune commune aux 3 : [ce que personne ne fait bien]
- Angle de différenciation pour [Nom] : [ce qu'on va faire mieux]
- Requête SEO offensif recommandée : [variante longue traîne accessible]

Intègre cette synthèse dans le brief créatif du site.
Ajoute l'argument concurrentiel dans top_3_arguments de la fiche Notion.
Montre-moi la synthèse — j'approuve avant de lancer la génération du site.
Level up 02 — Competitive Intelligence
LEVEL UP 03

Social proof
Portfolio baptistegilles.fr comme référence

Chaque email de prospection et la landing interstitielle pointent vers baptistegilles.fr comme preuve de niveau. Le portfolio existant est la meilleure validation — pas besoin d'en construire un autre.

1 lien
tout dit
Où intégrer la référence portfolio

3 points de contact stratégiques

Footer de chaque email : "Voir mon portfolio → baptistegilles.fr" — lien discret mais présent sur chaque envoi
Footer du site démo livré : "Site réalisé par Baptiste Gilles · baptistegilles.fr" — chaque site devient une vitrine de ton travail
Landing interstitielle : section "À propos de Baptiste" avec lien portfolio — le prospect comprend qui tu es avant de voir la démo
Email de rapport mensuel : signature avec lien — les clients satisfaits deviennent prescripteurs naturels
Argument dans l'email · Version enrichie

Ajouter une ligne de crédibilité

À ajouter dans tous les templates email :

"Si vous voulez voir d'autres exemples de mon travail avant de regarder votre démo : baptistegilles.fr"
Règle — Le portfolio est une preuve passive. On ne le met pas en avant de façon agressive. Il est là pour celui qui hésite — pas pour convaincre celui qui est déjà convaincu.
Level up 03 — Social proof
LEVEL UP 04

Score de performance J+30
Prouver le ROI, déclencher le bouche-à-oreille

30 jours après livraison, Claude Code mesure les premières positions SEO et le trafic réel. Un rapport envoyé au client transforme chaque livraison en preuve concrète — et chaque client en ambassadeur.

J+30
audit perf
Métriques mesurées à J+30

Ce qu'on présente au client

Position Google : rang moyen sur "[activité] [ville]" — avant/après livraison
Impressions Search Console : nombre de fois où le site apparaît dans les résultats Google
Clics organiques : visiteurs arrivés depuis Google sans publicité
Clics téléphone : nombre de clics sur le CTA tel (GA4 event)
Score Lighthouse : performance, accessibilité, SEO — objectif 90+ sur les 3
Utilisation commerciale · Réactivation + upsell

Ce que les données déclenchent

Ambassadeurs : client satisfait avec preuves chiffrées = prescripteur naturel → demander 2 contacts
Upsell maintenance : si les métriques sont bonnes, proposer la maintenance année 2 avec données à l'appui
Réactivation Refus : utiliser les métriques d'un client similaire comme argument pour relancer un prospect qui avait refusé
Preuve sociale : "Un boucher à Asnières — 47 visiteurs et position 3 sur Google en 30 jours" → argument prospection
PROMPT — Audit performance J+30 (Claude Code)

30 jours après la livraison de [Nom], génère le rapport de performance.

Domaine : [domaine final du client]
Requête cible : "[activité] [ville]"

Étape 1 — Mesurer
- GA4 API : sessions · clics tel · pages vues (30 derniers jours)
- Search Console API : position moyenne · impressions · CTR
- Lighthouse CLI : lancer audit sur le domaine → récupérer scores

Étape 2 — Synthétiser
Générer un email client enthousiaste mais factuel :
Objet : "🚀 [Nom commerce] · Premiers résultats après 30 jours"
Ton : positif, chiffré, humain — 1 résultat mis en avant en grand
+ 1 recommandation pour aller encore plus loin (ex: poster sur GMB)

Étape 3 — Archiver dans Notion
Nouvelles propriétés : "Perf J+30 sessions", "Perf J+30 position", "Perf J+30 score"

Étape 4 — Opportunité
Si position ≥ 5 → suggérer de demander 2 avis Google supplémentaires
Si score Lighthouse < 85 → appliquer les optimisations immédiatement

Montre-moi le rapport avant envoi.
Level up 04 — Performance J+30
LEVEL UP 05

A/B tracking emails
Optimiser les taux de réponse par secteur

Tracker quelle version (A/B/C/D) performe le mieux par secteur. Claude Code analyse le pipeline Notion toutes les 20 dossiers et recommande les objets à prioriser. Zéro outil tiers.

20
dossiers = analyse
Données trackées dans Notion

3 propriétés à ajouter dans le CRM

Version emailA / B / C / D — déjà présent
Réponse reçueCheckboxCocher dès qu'une réponse arrive — quelle qu'elle soit
Type réponseSelectPositif · Négatif · Objection · Sans suite
SecteurDéjà présent — croisement clé
Après 20 dossiers : croiser Version email × Secteur × Réponse reçue pour identifier les combinaisons gagnantes. Ex : "Version D fonctionne à 40% sur Beauté, mais B fonctionne à 55% sur Artisans."
Résultat attendu · Ce que ça change

Un routing de plus en plus précis

Court terme : améliorer le routing — ne plus envoyer systématiquement D à tous les éligibles si B performe mieux dans certains secteurs
Moyen terme : créer des variantes d'objets testées par secteur — ex. 2 versions de l'objet D pour Restauration
Long terme : un système de routing quasi-prédictif basé sur données réelles IDF — avantage concurrentiel majeur
PROMPT — Analyse A/B emails (Claude Code · toutes les 20 dossiers)

Analyse les performances des versions email dans Notion.

Filtre : tous les dossiers avec "Email envoyé le" renseigné (statut ≠ "À contacter")

Pour chaque combinaison Version × Secteur :
- Compter : total envoyés · réponses reçues · réponses positives
- Calculer : taux réponse (%) · taux positif (%)

Synthèse en tableau :
| Version | Secteur      | Envoyés | Réponses | Taux  | Positifs |
|---------|-------------|---------|----------|-------|----------|
| D       | Restauration| X       | X        | X%    | X%       |
...

Recommandations :
1. Quelle version privilégier par secteur maintenant ?
2. Quelle combinaison tester en priorité ?
3. Y a-t-il un secteur à éviter temporairement ?

Mettre à jour le routing recommandé dans l'OS si nécessaire.
Level up 05 — A/B Tracking
LEVEL UP 06

Templates sectoriels
5 directions créatives validées, toujours inédites

5 templates HTML premium pré-générés par secteur — direction créative déjà définie, typo et palette validées. Claude Code personnalise et injecte les données client. Qualité maximale, temps divisé par 2.

5
templates
Direction créative · 1 par secteur

Validées Awwwards — déclinées à l'infini par personnalisation

Restauration
Gastronomique
Typo : Playfair Display + DM Sans · Palette : ivoire chaud + noir encre + or discret · Mood : luxe accessible, appétissant
~/vitrine-ops/templates/restauration.html
Artisans
Craft & Matière
Typo : Fraunces + Geist · Palette : béton warm + rouille + crème · Mood : robuste, savoir-faire, confiance
~/vitrine-ops/templates/artisan.html
Beauté
Sensoriel & Doux
Typo : Cormorant Garamond + Outfit · Palette : poudre + blush + noir mat · Mood : féminin premium, sensoriel, confidentiel
~/vitrine-ops/templates/beaute.html
Retail
Urbain & Direct
Typo : Syne + Inter Tight · Palette : noir graphite + blanc cassé + 1 accent vif · Mood : moderne, local, accessible
~/vitrine-ops/templates/retail.html
Santé
Clarté & Confiance
Typo : Plus Jakarta Sans + Lora · Palette : blanc clinique + vert sauge + navy doux · Mood : rassurant, professionnel, humain
~/vitrine-ops/templates/sante.html
PROMPT — Génération site depuis template sectoriel (Claude Code)

Génère le site de [Nom] en partant du template [secteur].

Template de base : ~/vitrine-ops/templates/[secteur].html
Client : [Nom] · [Ville] · [Services]
Brief concurrentiel : [synthèse de l'analyse competitive]
Données contact : [tel] · [email] · [adresse]

À partir du template :
1. Lire le fichier template — conserver la direction créative (typo, palette, structure)
2. Remplacer TOUT le contenu : nom, services, textes, stats, témoignages
3. Injecter 7 photos premium via MCP Freepik (principal) — vectors, photos secteur, qualité élevée
   Fallback : MCP Unsplash si besoin de complément
4. Adapter le SEO : title, meta, H1, Schema.org avec les vraies données
5. Personnaliser les couleurs d'accent si le secteur le permet (±10° sur la teinte)

Règle absolue : le résultat doit sembler 100% sur-mesure.
Jamais deux sites du même secteur identiques.

Sauvegarder → ~/vitrine-ops/[slug]/site/index.html
Bonus · Notification push sur réponse email

Répondre dans l'heure multiplie les conversions par 3

Claude Code surveille l'IMAP OVH (ssl0.ovh.net:993) toutes les 30 min
Si un email d'un prospect connu arrive → notification push via ntfy.sh (gratuit, open source)
La notif contient : nom du commerce · extrait de la réponse · lien vers la fiche Notion
Baptiste répond en moins d'une heure → taux de conversion radicalement supérieur
setup ntfy.sh · une seule fois
# Installer ntfy sur Mac
brew install ntfy

# Créer un topic unique
NTFY_TOPIC=vitrine-ops-[random]

# Ajouter dans .env
NTFY_TOPIC=ton_topic_unique

# S'abonner sur l'app ntfy (iOS/Android)
→ app.ntfy.sh → subscribe → [ton topic]

# Test depuis terminal :
curl -d "Test notification" ntfy.sh/$NTFY_TOPIC
Level up 06 — Templates + Notifications
N8N · VPS

Automatisation n8n
Sur ton VPS — indépendant de Claude Code

n8n tourne en continu sur le VPS et gère tout ce qui est récurrent et planifié. Claude Code reste le cerveau créatif. n8n est le chef d'orchestre — il déclenche, filtre, notifie et archive.

7
workflows
n8n · VPS — Chef d'orchestre

Ce que n8n gère seul

Crons planifiés — fiables, exécutés même si le Mac est éteint
Surveillance IMAP toutes les 15 min
Notifications push ntfy.sh instantanées
Lecture/écriture Notion automatique
Appels Claude API pour la génération de contenu
Envois SMTP OVH automatisés
Claude Code · Mac — Cerveau créatif

Ce que Claude Code gère manuellement

Génération HTML premium — décision qualité humaine
Audit + scoring — analyse nuancée d'un site
Deploy FTP — validation Baptiste avant upload
Rédaction email initial — regard créatif sur le contenu
Révisions site — corrections ciblées post-retours client
Les 7 workflows · Vue d'ensemble

Ce que n8n automatise entièrement ou semi-automatise

#
Workflow
Trigger
Mode
WF1
Surveillance réponses email
IMAP → réponse prospect détectée → Notion "Répondu" + analyse sentiment Claude API + notif ntfy push
Toutes les 15 min
Full auto
WF2
Relances J+4 / J+10
Notion → dossiers sans réponse → Claude API génère relance → notif Baptiste → envoi après validation
Quotidien 8h
Semi-auto
WF3
Réactivation J+180
Notion → Refus anciens → Claude API génère email nouvel angle → Baptiste valide → envoi SMTP
Lundi 8h
Semi-auto
WF4
Rapport mensuel clients
GA4 + GSC → Claude API rédige rapport personnalisé → SMTP OVH → archivage Notion
1er du mois 9h
Full auto
WF5
Audit performance J+30
Lighthouse + GA4 + GSC → rapport perf → email client → scores archivés dans Notion
J+30 livraison
Full auto
WF6
Analyse A/B emails
Notion → stats versions × secteurs → recommandations routing → rapport Baptiste
Toutes les 20
Full auto
WF7
Demande avis Google J+7
Notion → clients livrés → email personnalisé avec lien GMB direct → SMTP OVH automatique
J+7 livraison
Full auto
WF1 · Le plus prioritaire

Surveillance IMAP — Répondre dans l'heure multiplie les conversions par 3

Trigger · Cron toutes les 15 min

IMAP Node → ssl0.ovh.net:993

Surveille design@baptistegilles.fr · récupère les emails non lus des 15 dernières minutes

Filtre Notion

L'expéditeur est un prospect connu ?

Cherche l'email dans Notion → si trouvé : continuer · si inconnu : ignorer silencieusement

Claude API

Analyse du sentiment

Positif / Négatif / Objection / Sans suite → Type réponse mis à jour dans Notion

Notion

Mise à jour automatique

Statut → "Répondu" · Retours client → extrait email · Date réponse = maintenant

ntfy.sh → iPhone

Notification push immédiate

"🔔 [Nom commerce] a répondu — [extrait 60 car]" + lien direct fiche Notion

Accès VPS · Fournis par Baptiste à la demande

Connexion SSH — demander à Baptiste avant de commencer

VPS opérationnel et configuré. Baptiste fournit les credentials SSH au moment de la session de setup. Ne pas stocker les credentials VPS dans ce document.
AccèsDemander à BaptisteSSH host + user + clé ou MDP
URL n8nn8n.baptistegilles.fr
InterfaceHTTPS · auth basique Baptiste
Credentials à configurer dans n8n

Connexions requises — une seule fois

NotionAPI Key NotionParamètres → Intégrations → Nouvelle
SMTP OVHssl0.ovh.net:465 SSLdesign@baptistegilles.fr + MAIL_PASS
IMAP OVHssl0.ovh.net:993 SSLMêmes credentials SMTP
Claude APIAPI Key AnthropicGénération contenu + analyse sentiment
GA4OAuth2 GoogleConsole Google Cloud → GA4 API activée
Search ConsoleOAuth2 GoogleMême app OAuth que GA4
ntfy.shHTTP RequestPas d'auth — URL du topic unique
PROMPT — Setup credentials n8n + création WF1 (Claude Code)

Baptiste me fournit les accès SSH au VPS.
n8n est déjà installé sur https://n8n.baptistegilles.fr

Étape 1 — Connexion et vérification
Se connecter en SSH au VPS avec les credentials fournis.
Vérifier que n8n tourne : curl -I https://n8n.baptistegilles.fr
Vérifier les logs : docker logs n8n --tail 20

Étape 2 — Configurer les credentials dans n8n
Via l'API n8n ou l'interface, créer les credentials :
- Notion API (clé dans ~/vitrine-ops/.env)
- SMTP OVH : ssl0.ovh.net:465 · design@baptistegilles.fr · MAIL_PASS depuis .env
- IMAP OVH : ssl0.ovh.net:993 · mêmes credentials
- Claude API : clé Anthropic depuis .env
- HTTP Generic pour ntfy.sh (pas d'auth)

Étape 3 — Créer WF1 (Surveillance IMAP)
Workflow avec ces nœuds dans l'ordre :
1. Cron trigger → toutes les 15 minutes
2. IMAP node → ssl0.ovh.net:993 · récupérer emails non lus
3. IF node → l'expéditeur existe dans Notion (base Pipeline Commerces) ?
4. Claude API node → analyser sentiment (positif/négatif/objection)
5. Notion node → update fiche : Statut "Répondu" + Type réponse + date
6. HTTP Request node → POST https://ntfy.sh/[NTFY_TOPIC]
   Body : "🔔 [Nom commerce] a répondu — [extrait 60 car]"

Activer le workflow et confirmer qu'il tourne.
Me montrer le statut de chaque nœud après le premier cycle.
Ordre de création des workflows · Par impact

Commencer par WF1 — le plus impactant dès le 1er dossier

Session 1 : credentials + WF1 Surveillance IMAP + WF7 Avis Google J+7
Session 2 : WF2 Relances J+4/J+10 + WF3 Réactivation J+180
Session 3 : WF4 Rapport mensuel (après 3 clients livrés)
Session 4 : WF5 Perf J+30 + WF6 A/B tracking
n8n VPS — Automatisation complète
Vitrine OS · SaaS v2.2
Baptiste Gilles · design@baptistegilles.fr · 07 80 97 70 20
Avril 2026 · Moteur : Claude Code + n8n VPS
Stack : MCP Freepik · Unsplash · Notion · SMTP OVH · GA4 · GSC · ntfy.sh
Deploy : FTP OVH Cluster 106 · Standard : Awwwards-level