# LintelloWeb — Vision et faisabilité

> Document de travail issu de la session de cadrage du 2026-05-04.
> Synthèse de la stratégie, de l'architecture cible et de la feuille de route.

---

## 1. Vision

LintelloWeb = brique d'hébergement de site web intégrée à l'abonnement Lintello.

Le client souscrit à Lintello (chat + outils + Suite + Drive…), crée son site web depuis Lintello en mode self-service guidé, et gère son site directement depuis l'interface Lintello (SSO vers l'admin).

**Positionnement business** : le site devient le point d'ancrage qui transforme un abonnement chat (churn élevé, ~5-10%/mois) en abonnement infrastructure (churn faible, <1%/mois). Plateforme défensive — chaque outil supplémentaire (Drive, Suite) ajoute un cran de rétention.

---

## 2. Parcours client (5 étapes)

1. Le client achète l'abonnement LintelloWeb
2. Il remplit la fiche `.md` de référence via une conversation Lintello (Mistral ou Claude API selon arbitrage)
3. Le site est produit automatiquement avec hébergement auto-provisionné
4. Lintello guide les étapes restantes : reCAPTCHA, nom de domaine, Brevo (intégration possible avec LintelloSuite et le Drive)
5. Le client a son site en ligne, le modifie quand il veut depuis l'admin (accès via SSO Lintello)

David intervient uniquement en cas de bug ou problème — pas de production manuelle.

---

## 3. Socle technique existant (BlogWeb CMS)

Le CMS Symfony `blog_web` est **prêt pour ce cas d'usage** :

- Symfony 7.4 LTS / PHP 8.4 / Doctrine 3.3 / EasyAdmin 4.12
- Architecture git multi-tenants : `main` (CMS) + branches `bw_*` (clients)
- 8 modules activables (blog, services, catalogue, ecommerce, events, directory, faq, portfolio)
- 6 thèmes inclus + système d'override `templates/client/`
- CLI 100% non-interactive : `app:client:setup`, `app:module:enable`, `app:recaptcha:setup`, `app:menu:sync`, `app:legal-pages:update`, `app:media:regenerate-sizes`
- Script `deploy-ovh.sh` (à remplacer pour cible non-mutualisée)
- Fiche de référence `.md` standardisée : tous les champs nécessaires (identité, BDD, modules, thème, couleurs, contenu home, légales, images)
- Conversion auto MariaDB → MySQL 8 dans le script d'import
- Génération auto de favicon + manifest PWA depuis le logo
- Images responsive WebP automatiques (480/800/1200)

**Validation empirique** : David a déjà répliqué un thème Wix complet via Claude Code à partir d'une URL. Le maillon le plus risqué (créativité/customisation autonome) est validé.

**Temps actuel de mise en prod manuelle** : ~1h30 dont ~15-20 min de travail humain actif, le reste = attente (composer, npm, build, import).

---

## 4. Ce qui existe déjà vs ce qui reste à construire

### Déjà résolu
- Le CMS et toutes ses commandes CLI
- Le contrat d'interface (fiche `.md`)
- L'exécuteur (Claude Code lit la fiche et exécute)
- Le système d'override client (`templates/client/`)
- Le workflow de mise à jour CMS (merge `main` → `bw_*`)

### À construire
1. **Mode LintelloWeb dans Lintello**
   - System prompt spécialisé
   - Packaging du contexte (fiche template + `CLAUDE.md` du CMS + `DEPLOY_REFERENCE.md`)
   - Conversation guidée pour remplir la fiche (mapping conv → sections A à K)
2. **Pont Lintello → Claude Agent SDK**
   - Déclenchement d'une session Claude depuis Lintello avec la fiche en contexte
   - Tool calls infra : `provision_container`, `setup_dns`, `import_dump`
3. **Infra de provisioning** (cible non-mutualisée)
   - VPS + Coolify (recommandé) ou Traefik/Caddy + Docker compose templates DIY
   - Cloudflare API pour DNS automatique
   - TLS Let's Encrypt automatique
   - Sous-domaine par défaut (`*.lintelloweb.fr`) + custom domain en option
4. **Pipeline de mise à jour multi-tenants**
   - Quand David push sur `main`, auto-merge dans tous les `bw_*` actifs + redeploy
   - Sans ça, l'abonnement = juste de l'hébergement statique
5. **SSO Lintello → admin EasyAdmin**
   - Token Lintello qui auto-log le client dans son admin
   - Pas de réécriture de l'admin (EasyAdmin reste tel quel)
6. **Couche facturation**
   - Stripe abonnement par-dessus Lintello

---

## 5. Décisions structurantes

### Split Mistral / Claude
- **Conversation de remplissage de fiche** : Mistral OK (chat coût-optimisé)
- **Exécution agentique** (config CMS + provisioning) : Claude Agent SDK fortement recommandé — tool calling rodé, fiabilité, c'est exactement ce que David fait déjà manuellement avec Claude Code

### Hébergement
- **Sortir du mutualisé OVH** (acté) — élimine 90% des hacks (sync-rpc, npm install vs ci, MariaDB→MySQL, .env.prod, Node ancien)
- **Cible recommandée** : VPS + Coolify (open source, API exposée, gère Docker + Traefik + Let's Encrypt + DNS via Cloudflare) — ou DIY Traefik + Docker

### RGPD / responsabilité
- David devient processor RGPD des données des clients de ses clients
- Implications : DPA dans CGU LintelloWeb, hébergement EU obligatoire, procédure de portabilité (export BDD + médias), procédure de suppression
- David connaît déjà ça côté SDC, à formaliser

### Export client
- **Décision recommandée** : prévoir un export propre dès le début (dump SQL + médias + config)
- Pas pour faciliter le départ, mais parce que savoir qu'on peut partir rassure à l'inscription (pattern Webflow)

### Niveau de service
- **Modèle acté** : self-service complet — le client suit le process, David n'intervient qu'en cas de problème
- Implique un dashboard admin LintelloWeb pour David (état des sites, alertes) et un canal de support dédié

---

## 6. Roadmap MVP (~1 mois focus)

| Étape | Durée estimée | Livrable |
|-------|---------------|----------|
| 1. Prompt design conversation Lintello (mode LintelloWeb) | 1-2 semaines | System prompt + flow conv qui remplit la fiche |
| 2. Provisioning auto sur VPS | 1-2 semaines | Coolify ou DIY, un site déployable en 1 commande |
| 3. Bridge Lintello ↔ Claude Agent SDK + facturation Stripe | 1 semaine | Mode complet packagé |
| 4. Pilote sur 5 clients avec David qui valide chaque étape | continu | Itération du prompt et des edge cases |
| 5. Retrait progressif des validations David | continu | Mode 100% self-service |

---

## 7. Points d'attention post-MVP

### Le vrai chantier qualité = l'IA conversationnelle, pas l'infra
Aujourd'hui David apporte (sans s'en rendre compte) :
- Choix du thème adapté au métier
- Reformulation SEO (titres ≤70 car., descriptions ≤160 car.)
- Génération de couleurs cohérentes depuis un logo
- Réécriture des sections "À propos" depuis 3 phrases bancales
- Connaissance des cas où `{{MEDIATEUR}}` = "Non applicable"

Bonne nouvelle : Claude a déjà la majorité de cette expertise. Il manque juste le **contexte client**, que la conversation Lintello apporte.

### Lintello comme copilote post-launch
Au-delà du provisioning, Lintello peut rester l'assistant qui vit avec le site :
- Le client pose une question → Lintello a le contexte de SON site (thème, modules actifs, contenu)
- Lintello peut faire des modifs via les API du CMS
- Transforme "abonnement = hébergement" en "abonnement = copilote dédié"
- Justifie un prix bien plus élevé qu'un OVH brut

### Support load
"J'interviens en cas de problème" sera plus fréquent qu'attendu. Un humain dans la boucle attrape 90% des conneries avant qu'elles aillent en prod. En self-service, elles vont en prod et le client appelle. À prévoir :
- Dashboard admin LintelloWeb (état de tous les sites)
- Système d'alertes (erreurs 500, espace disque, BDD, certificats SSL)
- Canal de support intégré à Lintello

### Étapes manuelles incompressibles côté client
- Création compte Google pour reCAPTCHA (sauf à mutualiser une clé Lintello)
- Création compte Brevo SMTP (sauf à mutualiser un compte Lintello avec sender identities)
- Achat de domaine (sauf si on commence en sous-domaine `*.lintelloweb.fr`)
- Configuration DNS si domaine externe (peut être DNS-as-a-service via Cloudflare)

---

## 8. Synthèse

**Faisabilité** : élevée. Tous les composants critiques existent et sont validés empiriquement.

**Difficulté restante** : majoritairement de l'intégration et du prompt design, pas de la R&D.

**Risque principal** : qualité conversationnelle pour un client non-tech (mais David a déjà prouvé que Claude Code + bon prompt = customisation autonome de qualité).

**Levier business** : transforme Lintello d'un outil de chat (concurrentiel, churn élevé) en plateforme infrastructure (défensive, churn très bas, LTV qui explose).

**Différenciation marché** : aucun équivalent connu en France à date — agence + IA + hébergement + admin self-service intégrés dans un seul abonnement.
