Session 1 — Architecturer un SaaS pour le Vibecoding

Formation Master (Bac+5) · Durée 3h30 · Support de cours complet et détaillé

Fil rouge

Construire la plateforme AgentFlow — répondre à un appel d'offres réel pour une plateforme SaaS d'agents IA

Objectifs pédagogiques

À la fin de cette session, l'étudiant sera capable de :

1

Comprendre le vibecoding

Saisir ce qu'est le vibecoding et en quoi il transforme la posture du développeur

2

Analyser un cahier des charges

Déduire une architecture technique adaptée à partir d'un brief réel

3

Choisir une infrastructure

Sélectionner une infra à coût maîtrisé pour un MVP bootstrapé

4

Structurer un projet

Organiser le code pour qu'il soit repris sans dette technique

5

Configurer l'environnement

Mettre en place CLAUDE.md, Skills et MCP pour le vibecoding

6

Répondre à un appel d'offres

Produire une réponse technique structurée et professionnelle

Planning de la session

1

0:00–0:25 · Bloc 1 (25 min)

Le vibecoding — définition, posture, Claude Code

2

0:25–0:55 · Bloc 2 (30 min)

Découverte du brief — analyse de l'appel d'offres AgentFlow

3

0:55–1:30 · Bloc 3 (35 min)

Le contexte, c'est tout — CLAUDE.md, Skills, MCP

4

1:30–1:45 · Pause (15 min)

Pause

5

1:45–2:30 · Bloc 4 (45 min)

Répondre à l'appel d'offres — travail en groupe

6

2:30–3:05 · Bloc 5 (35 min)

Démo live — workflow complet avec Claude Code

7

3:05–3:25 · Bloc 6 (20 min)

Restitution & débat

8

3:25–3:30 · Bloc 7 (5 min)

Conclusion

Bloc 1

Le Vibecoding

Nouvelle posture du développeur · 25 min

Définition et origine du vibecoding

Le terme a été popularisé par Andrej Karpathy (ex-directeur IA chez Tesla) en février 2025.

"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."

En résumé : on décrit ce qu'on veut en langage naturel, et l'IA écrit le code.

Ce que le vibecoding change

Le rôle du développeur se transforme profondément :

Avant

80% écrire du code

10% architecturer

10% reviewer

Avec le vibecoding

20% écrire des instructions

40% architecturer

40% reviewer & tester

Les risques du vibecoding sans architecture

Sans architecture, l'IA génère du code qui "marche" mais qui est :

🔧 Impossible à maintenir

Dette technique invisible qui s'accumule

🔀 Incohérent

Contradictions d'un fichier à l'autre

📉 Non scalable

Effondrement quand le produit décolle

🚫 Impossible à reprendre

Aucun autre développeur ne peut s'y retrouver

Le vibecoding sans architecture, c'est construire une maison sans fondations. Ça tient debout jusqu'au premier coup de vent.

Anti-patterns concrets du vibecoding

Ce qu'on obtient sans contexte :

1. God Controller

Un seul contrôleur de 800 lignes qui fait tout : auth, validation, appel LLM, envoi d'email, réponse JSON

2. Helper Hell

15 fichiers utils/, helpers/, tools/ avec des fonctions dupliquées et des noms vagues (processData, handleStuff)

3. Framework maison

L'IA réinvente un ORM, un router, un conteneur DI alors que Symfony/Laravel fournit tout ça nativement

4. Config fantasy

Chaque fichier utilise un format différent : .env, .yaml, .json, constantes PHP, variables en dur

Claude Code — l'outil du vibecoder

Claude Code est un agent de développement en CLI. Contrairement à un simple chatbot :

Il a accès au système de fichiers (lecture, écriture, modification)

Il exécute des commandes (git, composer, docker...)

Il comprend le contexte de tout le projet

Il enchaîne les actions de manière autonome (boucle agentique)

Il se connecte à des services externes via les MCP (Model Context Protocol)

Architecture de Claude Code

Claude Code orchestre l'ensemble du workflow de développement en combinant contexte, commandes réutilisables et connexions externes pour produire du code cohérent et maintenable.

Bloc 2

Découverte du brief

L'appel d'offres AgentFlow · 30 min

Le contexte AgentFlow

AgentFlow SAS

Startup bootstrapée basée à Lyon

2 fondateurs (1 business, 1 produit — pas de CTO technique)

Budget : économies personnelles — pas de levée de fonds

La vision

Le "Shopify des agents IA" : simple, accessible, freemium.

  • MVP fonctionnel en 3 mois
  • Test marché sur 6 mois
  • Si ça génère du revenu → on scale
  • Sinon → on coupe sans s'être ruiné

Les 3 plans d'abonnement

🆓 Starter

Gratuit

  • 1 agent
  • 100 messages/mois
  • Modèle de base

Pro

29€/mois

  • 5 agents
  • 5 000 messages/mois
  • Tous les modèles
  • RAG inclus

🏢 Business

99€/mois

  • Agents illimités
  • 50 000 messages/mois
  • API access
  • Support prioritaire

Gestion via Stripe — périodes d'essai, upgrades, downgrades automatisés.

Les domaines fonctionnels d'AgentFlow

Auth & Billing

Authentification, abonnements Stripe

Agent Builder

Création et configuration des agents IA

RAG Engine

Vectorisation, embeddings, pgvector

Chat Engine

Conversations en temps réel

Widget & Deploy

Intégration JS sur sites tiers

Analytics & Metrics

Tableaux de bord, métriques d'usage

n8n Orchestration

Automatisation des workflows

Admin Backoffice

Gestion plateforme et utilisateurs

Le coût réel d'un appel LLM

Le calcul qui fait mal

1 conversation typique :

  • ~2 000 tokens input + ~500 tokens output
  • Coût : ~0.02€ par message

Plan Pro (29€/mois) = 5 000 messages/mois

Coût LLM réel = ~100€/mois

Les solutions

Modèles moins chers pour tâches simples (Haiku, Mistral)

Cache des réponses fréquentes

Limiter la taille du contexte

Quotas vérifiés AVANT chaque appel

LlmProviderInterface pour router vers le bon modèle

Les questions d'un architecte avant de vibecoder

🏗️ Architecture

  • Multi-tenant (base séparée ou tenant_id ?)
  • Streaming (SSE, WebSocket, Mercure ?)
  • Monolithe ou microservices ?

💰 Coûts

  • Budget infra 200€/mois max
  • Self-hosted vs managed
  • Maîtrise des coûts LLM

📈 Scalabilité & Conformité

  • RGPD (stockage conversations)
  • Tests minimum requis
  • Reprenabilité du code

Le workflow Git du vibecoder

Le vibecoder ne rédige pas les issues à la main. Il ne corrige pas le code à la main. Il ne fait pas la review à la main. Il pilote Claude Code pour tout ça.

Le développeur est le chef d'orchestre, pas le musicien.

Bloc 3

Le contexte, c'est tout

CLAUDE.md, Skills, MCP · 35 min

Pourquoi le contexte est crucial

Imaginez embaucher un dev senior. Il arrive lundi, vous lui dites "code-moi AgentFlow". Sans onboarding, sans doc, sans accès au repo. C'est exactement ce que vous faites quand vous vibecez sans contexte.

Un freelance qui reprend votre code dans 6 mois doit comprendre l'architecture en 30 minutes.

Sans contexte

Code générique, incohérent, over-engineered, coûteux

Avec contexte

Code adapté, cohérent, maintenable, économe

Les 5 niveaux de contexte dans Claude Code

CLAUDE.md global

~/.claude/CLAUDE.md — préférences personnelles : langue, style de commit, outils

CLAUDE.md projet

./CLAUDE.md — règles du projet AgentFlow : stack, conventions, architecture

CLAUDE.md locaux

./src/Domain/Agent/CLAUDE.md — règles spécifiques par module/domaine

Mémoire auto

~/.claude/projects/<hash>/memory/ — apprentissage entre sessions, Claude retient ce qu'il apprend

Contexte de session

La conversation en cours — perdu en fin de session

Le mauvais CLAUDE.md

Exemple de ce qu'il NE faut PAS faire :

# Mon projet Projet SaaS en PHP. Utiliser Symfony. Faire du code propre.

Le bon CLAUDE.md — Contexte projet & Stack

# AgentFlow — Plateforme SaaS d'agents IA ## Contexte MVP bootstrapé, budget infra max 200€/mois, code reprenable par un tiers, 6 mois max ## Stack technique - Symfony 7.3 / PHP 8.4 - PostgreSQL 16 + pgvector - Mercure (streaming SSE) - LavinMQ (AMQP) + Messenger - MinIO (stockage fichiers) - API Platform 4 - Stimulus + Turbo + TailwindCSS v4 (AssetMapper) - n8n (orchestration workflows) - Docker Compose (1 VPS DigitalOcean) - Stripe (paiements)

Le bon CLAUDE.md — Architecture & Git

Architecture

  • Monolithe modulaire
  • Multi-tenant avec tenant_id
  • API-first
  • LlmProviderInterface (abstraction du provider IA)
  • Voters pour l'autorisation
  • Messenger pour l'asynchrone

Git & workflow

  • Feature branches (feature/nom)
  • Commits conventionnels (feat:, fix:, chore:)
  • Une issue = une feature = une branche = une PR
  • Issues générées par Claude Code
  • PRs reviewées par Claude Code
  • Le développeur valide et merge

Le bon CLAUDE.md — Entités, Conventions, Règles métier

Entités principales

User, Subscription, Agent, Conversation, Message

Conventions

PSR-12, UUID v7, dates UTC, montants en centimes, groupes de sérialisation obligatoires

Règles métier

1 agent max pour Starter, quotas vérifiés AVANT appel LLM, documents limités à 10 Mo, isolation tenant sur CHAQUE requête (Doctrine Filter)

🚫 Ce qu'il NE faut PAS faire

Appeler un LLM sans vérifier le quota · Exposer les clés API côté client · Logger le contenu des conversations (RGPD)

Les Skills — commandes réutilisables

Les Skills sont des prompts pré-configurés dans .claude/commands/. Chaque fichier .md devient une commande /nom-du-fichier.

Exemples de Skills pour AgentFlow

/create-entity

Crée une entité Doctrine avec :

  • UUID v7
  • TimestampableTrait
  • tenant_id
  • API Platform configuré
  • Repository
  • Migration
  • Test unitaire

/create-crud

Crée un CRUD API Platform complet avec :

  • Opérations & sérialisation
  • Sécurité & filtre tenant
  • State Processors
  • Tests fonctionnels (201, 401, 403, 422)
  • Validation

Les MCP — connecter Claude au monde

MCP = Model Context Protocol — serveurs qui donnent des capacités supplémentaires à Claude Code

Context7

Documentation à jour de Symfony, API Platform, Stripe, pgvector — Claude ne travaille plus avec des infos obsolètes

Playwright

Tester le widget de chat dans un vrai navigateur — validation end-to-end automatisée

PostgreSQL

Inspecter la base de données en dev — Claude peut lire le schéma et vérifier les données

Configuration dans .claude/settings.json

Bloc 4

Répondre à l'appel d'offres

Architecture d'AgentFlow · Travail en groupe · 45 min

Consigne du travail en groupe

Former des groupes de 1-2 étudiants. Vous êtes un studio de développement contacté par AgentFlow.

1

Schéma d'architecture

Sur papier ou outil de dessin — représenter les composants et leurs interactions

2

Stack technique justifiée

Pourquoi ces choix ? Combien ça coûte ? Quelles alternatives ?

3

Modèle de données

Entités et relations principales — sans over-engineering

4

Stratégie d'infrastructure

Docker Compose sur un VPS — quel budget ? Quelle évolution ?

Questions de guidage

🏗️ Architecture

  • Monolithe ou microservices ?
  • Comment structurer pour qu'un freelance reprenne ?
  • Streaming avec Mercure ?
  • Isolation multi-tenant ?

💰 Coûts

  • Budget 200€/mois
  • Self-hosted vs managed
  • Droplet DigitalOcean ~18€ vs Kubernetes managé 200€

📈 Scalabilité

  • 1000 utilisateurs dans 6 mois ?
  • Premiers goulots d'étranglement ?
  • MinIO local → S3 managé sans tout casser ?

🔀 Git

  • Découpage en issues (par domaine, feature, entité ?)
  • Qui rédige les issues ?
  • Qui fait la code review ?

Architecture de référence AgentFlow

Toute la plateforme tourne sur un seul VPS Docker, avec des connexions sortantes vers les providers LLM externes selon le plan d'abonnement de l'utilisateur.

Docker — pourquoi pour un MVP ?

Tout tourne sur 1 seul VPS — un docker compose up et c'est parti

En dev comme en prod, même environnement — zéro "ça marche sur ma machine"

Facile à reprendre : un freelance clone le repo, lance Docker, il code

Pas besoin de Kubernetes ou PaaS — c'est de l'over-engineering pour un MVP

Quand ça scale : on sépare les containers sur plusieurs serveurs, ou on migre vers du managed

Docker Compose — les services AgentFlow

Un seul fichier, toute l'infra :

app

Symfony + PHP-FPM + Nginx

database

PostgreSQL 16 + pgvector

messenger-worker

Symfony Messenger consumer

mercure

Hub Mercure pour le streaming SSE

lavinmq

Message broker AMQP

minio

Stockage S3-compatible

n8n

Orchestration workflows

mailpit

Emails en dev

Budget infra MVP — ~50€/mois

18€

VPS DigitalOcean

Docker Compose, tout dessus

~30€

Appels LLM

Variable selon usage bêta

~50€

Total MVP

Par mois, tout compris

Services externes gratuits

  • Domaine + DNS Cloudflare ~10€
  • Email Resend free tier ~0€
  • Monitoring Sentry free tier ~0€

Évolution si ça scale

  • DB managée + Object Storage → ~150€/mois
  • PaaS + CDN → ~300€/mois
Bloc 5

Démo live

Le workflow complet du vibecoder · 35 min

Le cycle complet : CLAUDE.md → Issue → Code → Review

01

CLAUDE.md prêt (2 min)

Notre investissement le plus rentable — toutes les conventions, la stack, les règles métier

02

Claude génère une issue GitHub (5 min)

Titre, contexte métier, critères d'acceptation, contraintes techniques. Claude injecte automatiquement les conventions du CLAUDE.md.

03

Claude code l'issue /fix-issue (10 min)

Lit l'issue, crée une branche, code l'entité, configure API Platform, crée les tests, commit, push, crée la PR

04

Claude review la PR (10 min)

Poste des commentaires sur GitHub, vérifie les conventions, signale les manques, puis corrige les commentaires

05

Résultat global (8 min)

Issue détaillée, PR avec code et review, tests qui passent, API fonctionnelle (Swagger), code sans dette technique

Le résultat de la démo

Zéro ligne écrite

On n'a pas écrit une seule ligne de code. On a juste décrit ce qu'on voulait.

Conventions respectées

Chaque fichier respecte les conventions du CLAUDE.md — cohérence totale.

Code professionnel

Testé, reprenable par n'importe qui, sans dette technique.

Bloc 6

Restitution & débat

Chaque groupe présente ses choix · 20 min

Checklist reprenabilité — le test du freelance

Un nouveau dev peut-il reprendre votre projet sans douleur ?

Lancement rapide

Un nouveau dev peut lancer le projet en < 5 min (docker compose up) ?

📄 CLAUDE.md complet

Décrit la stack, les conventions et les commandes utiles ?

🗺️ Architecture schématisée

Le schéma d'architecture est disponible et à jour ?

📏 Conventions explicites

PSR-12, nommage, structure — tout est documenté ?

🧪 Tests présents

Au moins auth, billing, quotas sont couverts ?

🔑 Variables documentées

Le .env.example est complet et à jour ?

🧩 Entités claires

Pas de God Entity à 40 champs ?

🚀 README de déploiement

Le README explique comment déployer en production ?

7-8 / 8

Reprenable sans problème

5-6 / 8

⚠️ Il faudra poser des questions

< 5 / 8

🚨 Dette technique garantie

Les 10 commandements du vibecoder

1

Tu architectureras avant de coder

Jamais de code sans plan

2

Tu documenteras ton contexte

CLAUDE.md est ton meilleur investissement

3

Tu reliras tout le code généré

Tu es le reviewer, pas le rédacteur

4

Tu testeras systématiquement

Demande toujours des tests

5

Tu itéreras en petites étapes

Une feature à la fois

6

Tu versioneras régulièrement

Commit souvent

7

Tu ne copieras pas aveuglément

Comprendre avant d'accepter

8

Tu utiliseras des skills

Automatise les patterns récurrents

9

Tu enrichiras le contexte

Mets à jour le CLAUDE.md au fil du projet

10

Tu resteras le décideur

L'IA propose, tu disposes

Conclusion & passerelle vers la Session 2

Ce qu'on a fait

  • Compris le vibecoding et sa posture
  • Analysé un cahier des charges réel
  • Architecturé avant de vibecoder
  • Configuré le contexte (CLAUDE.md, Skills, MCP)
  • Vu le workflow complet en démo

🚀 Session 2 — dans 4 mois

  • RAG (vectorisation, embeddings, pgvector)
  • Chat en streaming (Mercure, SSE)
  • Hooks (automatiser la qualité)
  • Workflows multi-agents
  • Sécurité (OWASP)
  • Travail en équipe