Sécurité, dette technique, dépendances cassées : les 10 erreurs vibe coding classées par gravité, avec la checklist pour récupérer un projet dérivé.
Bannière swanbase 10 erreurs en vibe coding (et comment t'en sortir si tu es déjà dedans)

Les 10 erreurs vibe coding qui coûtent le plus cher en 2026 relèvent de la décision plutôt que de la technique. Tu peux écrire un mauvais prompt, l'IA finit par corriger. Tu peux empiler des hallucinations, l'éditeur finit par te le signaler. Mais une clé API en clair pushée sur GitHub, un projet de 12 000 lignes jamais relu, une dépendance totale à Lovable le jour où Lovable change ses tarifs : ça ne se rattrape pas en un prompt. On classe ici les 10 pièges par gravité × probabilité, on donne les 4 obligatoires sécurité avant production, et la checklist de récupération si ton projet a déjà dérivé. Le vibe coding marche pour les gens qui acceptent qu'écrire le prompt ne représente qu'une petite part du travail. Le reste, c'est lire, valider, remanier, sécuriser. Si tu débarques sans contexte, va d'abord lire la définition canonique du vibe coding.

La matrice "gravité × probabilité" des erreurs vibe coding

La matrice gravité x probabilité des erreurs vibe coding

L'erreur la plus visible n'est pas la plus fréquente, et la plus fréquente n'est pas la plus grave : la combinaison des deux te ruine. On a trié la liste qui suit par produit gravité × probabilité.

Les 10 erreurs, classées par gravité décroissante

1. Mettre une clé API en clair dans le code généré

Tu te diras "ça n'arrivera pas chez moi". Elle arrive. Quand tu demandes à l'IA d'intégrer OpenAI, Stripe, Resend, elle colle la clé dans le fichier au lieu d'un .env. Et ton commit pousse tout sur GitHub.

GitHub scanne, les bots aussi. Une clé OpenAI exposée en dépôt public ne t'appartient plus dès qu'un bot l'a lue. Réflexe : .env.local git-ignored et gitleaks en pre-commit hook.

2. Ne jamais relire le code généré

Tu écris un prompt, ça marche, tu passes à la feature suivante. Trois semaines plus tard, 8 000 lignes que personne n'a lues. Quand une feature casse, tu n'as aucune idée de pourquoi. L'IA non plus, elle a perdu le contexte entre deux sessions.

Règle d'audit : si ton projet dépasse 1 000 lignes générées sans relecture, c'est déjà trop tard pour ne rien faire. Pose-toi 2 heures, relis section par section, supprime ce que tu ne comprends pas, demande à l'IA d'expliquer ce qui reste.

3. Empiler les prompts au lieu de remanier le code

Une feature ne marche pas. Tu demandes un correctif. Le fix casse autre chose. 30 prompts plus tard, ton code est un sandwich où chaque couche annule la précédente. L'IA n'a aucune mémoire de ce que tu as empilé.

Remanier fait partie du travail. Toutes les 10 features ajoutées, demande à l'IA de réécrire la section en partant de zéro, avec le seul comportement attendu. Tu jettes une grande partie du code généré, et c'est le résultat recherché.

4. Dépendre d'un seul éditeur (Lovable-only ou Bolt-only)

Tu as tout vibecodé sur Lovable. Demain, Lovable triple ses tarifs ou ferme. Tu n'as pas le code, pas l'hébergement, juste un compte. Tu n'as plus rien.

Lovable et Bolt offrent l'export. Tu l'exportes dès semaine 2, pushes sur ton GitHub, ajoutes Vercel ou Netlify comme deploy alternatif. Ta stack reste portable : c'est ta ligne de défense.

5. Sauter l'auth et la sécurité minimale parce que "c'est pas en prod"

"Je gère plus tard". Personne ne gère plus tard. Le jour où tu envoies le lien à 5 testeurs, ton MVP est en prod. Sans Supabase Auth ou Clerk dès semaine 1, tu auras 3 utilisateurs avec des permissions admin "par défaut" que tu ne sauras pas révoquer. Les quatre obligatoires (détaillés plus bas) : secrets en variables d'env, validation des inputs, auth + permissions, logs basiques.

6. Ignorer la dette quand le projet dépasse 1 000 lignes

À 300 lignes, l'IA garde le contexte. À 1 500 lignes, elle hallucine sur le fichier 4. À 5 000, c'est une loterie. Passé un seuil, chaque feature coûte plus cher que la précédente.

Dès que le projet dépasse le millier de lignes, découpe en modules, écris un README contextuel pour l'IA, et bascule sur Cursor ou Claude Code (qui voient toute la base de code) plutôt qu'un éditeur cloud limité à un fichier à la fois.

7. Confondre prototype et "release-ready"

Ton MVP marche sur ton Mac. Tu l'envoies à un VC en demo. Ça plante, parce que tu as oublié des cas limites : formulaire vide, timeout réseau, refresh à mi-flow, paiement décliné, double-clic sur submit.

Un prototype : ça marche dans le happy path. Release-ready : ça ne plante pas sur les chemins moins glamour. Cette différence occupe une grande part du temps total de développement.

8. Sous-estimer le temps de finition (la dernière phase est la plus longue)

Tu as livré la v1 en 5 jours. Tu te dis "encore 2 jours et c'est propre". Trois semaines plus tard, tu y es encore. La finition (polish UI, edge cases, mobile responsive, micro-bugs, copy, performance) prend systématiquement plus de temps que le happy path.

La règle des 90-90 de Tom Cargill (Bell Labs), citée par Jon Bentley dans sa chronique Programming Pearls en 1985 : les premiers 90 % du code prennent 90 % du temps prévu, les 10 % restants prennent les 90 % restants. Budgète en conséquence.

9. Scope creep silencieux (l'IA accepte tout)

L'IA ne dit jamais "mauvaise idée". Tu lui demandes un dashboard analytics au milieu de l'onboarding, elle l'ajoute ; un mode sombre la veille du lancement, elle le fait. Trois jours plus tard, un Frankenstein avec 4 features démarrées, zéro finie.

Discipline : note chaque feature ajoutée au scope, une à la fois, termine avant la suivante. L'IA dit oui à tout sans coût apparent ; le coût réel, c'est un projet qui ne sort jamais.

10. Ne pas avoir de plan B si l'outil change ses tarifs ou ferme

Les éditeurs changeront leur tarification, certains fermeront. Plan B dès semaine 1 : code exporté, hébergement séparé, paiements et auth gérés par des services tiers (Stripe, Supabase, Clerk) indépendants de l'éditeur. Si tu as tout ficelé à Lovable ou Bolt, ton produit appartient à l'éditeur.

Audit 2 heures: ton projet vibe-code est-il sain

Sécurité : les 4 obligatoires avant production

Le web regorge d'articles sur les failles du vibe coding. Le résumé tient en quatre points.

Secrets et clés API

Aucune clé en clair dans le code, jamais : .env.local, .gitignore, secrets manager du hosting (Vercel, Railway, Render exposent ça en 2 clics). gitleaks en pre-commit, secret scanning GitHub activé.

Validation des inputs

Tout input utilisateur est hostile par défaut. L'IA valide souvent uniquement côté front. Ajoute : validation backend (Zod, Yup), rate limiting (Upstash, Vercel WAF), sanitization des inputs qui touchent à la base.

Auth et permissions

Données utilisateur = Row Level Security (Supabase, Postgres natif) ou middleware d'auth obligatoire. L'IA ne le code pas par défaut. Tu écris la liste des permissions par rôle à la main.

Logs et monitoring basique

Sentry ou Axiom dès le premier déploiement. Un projet vibe-codé sans logs est aveugle : quand une feature casse en prod, tu n'as que le mail d'un user énervé pour le savoir.

Hallucinations : comment les détecter et les corriger

Patterns visuels d'hallucination

Quatre signaux te disent que l'IA invente. Un : un import de package qui n'existe pas (vérifie sur npm ou PyPI). Deux : une fonction appelée sur un objet qui ne l'expose pas (genre .toDateString() sur une string). Trois : des paramètres d'API qui ne sont pas dans la doc officielle (l'IA invente des champs Stripe régulièrement). Quatre : du code qui "marche" mais ne fait rien de ce que tu as demandé, la fonction existe, mais rien ne l'appelle.

3 réflexes à avoir

Quand un truc casse, ne re-prompt pas tout de suite. Lis l'erreur, cherche la fonction ou le package sur la doc officielle. Si tu n'as pas le temps, demande explicitement : "vérifie que ce code utilise des fonctions qui existent vraiment dans la doc de [X], cite la source". L'IA reconnaît souvent son hallucination quand tu le lui demandes.

Tu es déjà dans le mur ? La checklist de récupération

Éviter les erreurs est une chose. Quatre étapes pour reprendre un projet qui a déjà dérivé.

Recuperer un projet vibe-code qui derive en 4 etapes

Audit rapide (2 heures)

Session de 2 heures. Liste : nombre de fichiers, nombre de lignes, secrets qui traînent, dépendances non verrouillées, dernière feature qui marchait. Écris ce diagnostic dans AUDIT.md. C'est ta photo de référence avant intervention.

Refonte progressive ou refonte depuis zéro

Moins de 2 000 lignes et un bug bloquant : la refonte depuis zéro est plus rapide. Reprends le brief initial, génère une v2 propre, migre les données. Quelques jours au lieu de semaines de rafistolage.

Plus de 5 000 lignes ou des utilisateurs actifs : refonte progressive. Identifie le module le plus pourri (souvent l'auth ou le checkout), réécris-le isolé, bascule une fois le module testé, sans remplacer tout le projet d'un bloc.

Quand appeler un dev "humain" pour auditer

Trois signaux. Un : tu touches à des données sensibles (paiement, santé, pro) et tu ne sais pas dire ce que ton code en fait. Deux : ton projet dépasse 5 000 lignes et ton coût en prompts dépasse le coût horaire d'un freelance. Trois : tu vas faire payer le produit en moins de 4 semaines. Le freelance n'a pas à refaire ton code ; quelques heures lui suffisent pour te dire ce qui craint.

Migration d'outil sans tout casser

Plan B activé : export du code en local, push sur ton repo perso, session Cursor ou Claude Code sur la base de code locale, demande à l'IA un README qui décrit l'archi en l'état, puis reprends depuis cette base. Compte quelques jours selon la taille.

Quand le vibe coding n'est pas la bonne réponse

Produits temps-réel critiques

Trading algorithmique, télémédecine en visio, jeu multijoueur synchrone, contrôle industriel. Une latence de 200 ms est interdite. Le code généré par IA, même excellent, a souvent des inefficacités cachées : boucles redondantes, requêtes N+1, appels séquentiels là où la concurrence s'imposait. Il te faut un dev qui profile et optimise.

Conformité réglementaire stricte (RGPD, finance, santé)

PCI-DSS (paiements), HDS (santé), data RGPD sensible, AMF (finance) : tu dois produire des audits, des logs traçables, une chaîne de responsabilité documentée. Le vibe coding ne génère pas ces artefacts par défaut. Un dev les produit naturellement.

Passage à l'échelle au-delà de 10 000 utilisateurs actifs

Aucun éditeur vibe coding n'optimise pour la performance à grande échelle. Les premiers milliers d'utilisateurs passent si l'architecture est propre ; au-delà, tu remanies sérieusement avec un dev. C'est le contrat de ces outils : ils optimisent la vitesse de mise sur le marché, et le coût d'exploitation à l'échelle vient après.

Hors de ces trois cas, le vibe coding reste la voie la plus rapide pour valider ton idée. Va relire la définition complète du vibe coding pour cadrer où il sert.

FAQ

Combien de temps avant qu'un projet vibe-codé devienne ingérable ?

Dès que le code généré dépasse le millier de lignes sans relecture, chaque feature coûte plus cher que la précédente. Bon réflexe : un audit toutes les quatre semaines, avec remaniement partiel à chaque audit.

Faut-il forcément faire auditer son code par un dev humain ?

Pas toujours. Nécessaire si tu manipules des données sensibles, vises plus de 5 000 utilisateurs payants, ou si ton produit fait partie d'une chaîne de responsabilité légale. Pour un MVP qui teste une idée auprès d'une poignée d'utilisateurs, une relecture sérieuse par toi-même suffit, accompagnée d'une revue par l'IA elle-même.

Le vibe coding est-il dangereux pour un MVP présenté à un VC ?

Non, si le MVP fait sa démo sans planter. Un VC pre-seed regarde la traction et l'équipe avant la pureté du code. Le piège : prétendre que c'est du code de production quand ça n'en est pas. Dis-le tel quel, le VC ne juge pas la propreté du code.

Mon projet plante après 2 mois, tout est à refaire ?

Très rarement. Le projet plante en général à cause d'un ou deux modules : l'auth, la gestion d'état ou l'intégration paiement. Audit en 2 heures, réécriture de ce seul module depuis le brief original, et tu conserves le reste.