Ajouter un vrai backend (base de données + API) à un prototype IA

16/06/2026
Votre prototype impressionne, jusqu'au jour où vous rafraîchissez la page et où tout disparaît. Ou bien deux utilisateurs ouvrent l'application et ne voient pas les mêmes données. Le symptôme est classique : votre projet créé avec Bolt.new, Lovable, V0 ou Cursor n'a pas de vrai backend. Les données vivent dans le navigateur, pas dans une base de données.
C'est l'une des limites les plus courantes du vibe coding, et aussi l'une des plus simples à comprendre une fois qu'on a les bons repères. Ce guide explique, sans jargon inutile, ce qu'est un backend, comment savoir si le vôtre manque, et comment l'ajouter à un prototype existant sans repartir d'une page blanche.
Backend, base de données, API : de quoi parle-t-on ?
Un backend, c'est la partie invisible de votre application : celle qui stocke les données, applique les règles et répond aux demandes, par opposition au front (ce que l'utilisateur voit et clique). Une image simple : le front, c'est la salle d'un restaurant ; le backend, c'est la cuisine. Le client ne voit que la salle, mais sans cuisine, il n'y a pas de plat.
Dans cette cuisine, deux éléments comptent. La base de données est le classeur durable où tout est rangé et retrouvable : les comptes, les contenus, les commandes. Elle garde les informations même quand personne n'est connecté. L'API (interface de programmation) est le serveur qui fait l'aller-retour entre la salle et la cuisine : le front lui demande « donne-moi les réservations de ce client », l'API va chercher en base et renvoie la réponse.
Beaucoup de prototypes générés par IA se passent de tout ça en utilisant le localStorage, un petit espace de stockage dans le navigateur de chaque visiteur. C'est pratique pour une démo, mais insuffisant pour un produit : les données ne sont pas partagées entre utilisateurs ni entre appareils, elles peuvent disparaître à tout moment, elles ne sont pas sécurisées, et on ne peut pas les interroger sérieusement (rechercher, filtrer, trier). Le localStorage est une étagère personnelle dans la poche de chaque visiteur, pas un classeur commun.
Comment savoir si votre prototype manque d'un vrai backend
Avant de construire, vérifiez le diagnostic. Si plusieurs de ces symptômes vous parlent, votre prototype repose probablement sur du stockage local plutôt que sur un backend.
- Les données disparaissent au rafraîchissement de la page ou quand vous ouvrez l'app sur un autre appareil.
- Deux utilisateurs ne partagent rien : chacun voit son propre univers, alors qu'ils devraient voir les mêmes contenus.
- Il n'y a pas de vrais comptes : pas d'inscription ni de connexion qui suit l'utilisateur d'un appareil à l'autre.
- Aucune recherche ni aucun filtre côté serveur : tout est chargé d'un bloc, puis trié dans le navigateur.
- Des clés d'API se promènent dans le code envoyé au navigateur, faute d'un serveur pour les héberger.
- Pas d'historique, pas d'export, pas de sauvegarde : si le navigateur est vidé, les données sont perdues.
Ces symptômes ne sont pas des détails. Ils marquent la frontière entre une démo convaincante et une application sur laquelle on peut bâtir une activité. Ils figurent d'ailleurs parmi les limites structurelles du vibe coding qu'il faut lever avant un vrai lancement.
Prenons un cas concret. Un fondateur construit avec Lovable un outil de suivi de clients qui séduit ses premiers utilisateurs. Tant qu'il l'utilise seul sur son ordinateur, tout va bien. Le jour où il invite un collègue, surprise : ce collègue ne voit aucun des clients déjà saisis, parce que chaque navigateur garde ses propres données dans son coin. Aucune information n'est réellement partagée. Le problème n'est pas l'interface, qui fonctionne parfaitement, mais l'absence de classeur commun derrière. C'est exactement ce qu'un backend vient résoudre.
Quelle solution de backend choisir selon votre niveau ?
Deux grandes familles s'offrent à vous pour donner un backend à votre prototype. Le BaaS (Backend as a Service, comme Supabase ou Firebase) fournit une base de données et une API quasi prêtes à l'emploi. Le backend sur mesure (par exemple Nest.js avec PostgreSQL et Prisma) consiste à construire la cuisine selon vos plans. Le tableau ci-dessous résume l'arbitrage.
| Critère | BaaS (Supabase, Firebase) | Backend sur mesure (Nest + PostgreSQL) |
|---|---|---|
| Rapidité de mise en place | Rapide (jours) | Plus longue (semaines) |
| Contrôle | Cadré par la plateforme | Total |
| Scalabilité | Bonne, avec des limites | Maîtrisée et optimisable |
| Coût initial | Faible | Plus élevé |
| Logique métier complexe | Limitée | Sans contrainte |
| Dépendance (lock-in) | Moyenne à forte | Faible (vous possédez tout) |
| Idéal pour | MVP, démarrage rapide | Exigences fortes, données sensibles |
Notre recommandation, forgée par notre passé de fondateurs : pour la plupart des projets, Supabase est un excellent point de départ. Il fournit une base PostgreSQL solide et une API automatique, ce qui suffit largement pour lancer. Le sur-mesure devient pertinent quand la logique métier se complexifie, quand vous visez une montée en charge sérieuse, ou quand vous manipulez des données sensibles (santé, finance) soumises à des contraintes réglementaires. Le bon choix dépend de votre situation, pas d'un dogme.
Ajouter un backend à votre prototype, étape par étape
La marche à suivre vaut quel que soit l'outil de départ (Bolt, Lovable, V0 ou Cursor). L'ordre compte : on pose les fondations avant de brancher l'existant.
-
Modéliser vos données. Listez les entités de votre application (utilisateurs, produits, commandes, messages) et les relations entre elles : un utilisateur possède plusieurs commandes, une commande contient plusieurs produits, et ainsi de suite. Cette étape est la plus importante : 80 % des galères de backend viennent d'un modèle de données bâclé, qu'on paie ensuite à chaque évolution. Un modèle mal pensé se traduit par des données dupliquées, des incohérences et des requêtes impossibles à écrire proprement. Prenez le temps de poser ce schéma sur le papier avant d'écrire la moindre ligne ; c'est trente minutes de réflexion qui économisent des semaines de correctifs.
-
Créer la base de données. Traduisez ce modèle en schéma PostgreSQL, que ce soit via l'interface de Supabase ou via Prisma (un outil qui décrit la base en code et gère les migrations). Les migrations sont l'historique versionné de votre structure, ce qui permet de la faire évoluer sans tout casser.
-
Exposer une API. Pour que le front puisse lire et écrire, il faut une API. Supabase en génère une automatiquement à partir de vos tables ; un backend sur mesure expose des endpoints REST que vous maîtrisez. Dans les deux cas, validez les données entrantes pour ne rien accepter d'inattendu.
-
Migrer les données du localStorage. Récupérez ce qui existe dans le stockage local et transférez-le vers la base. Pour un prototype, c'est souvent un script ponctuel qui lit l'ancien format et insère proprement les enregistrements.
-
Brancher le front. Remplacez les accès au
localStoragepar des appels à votre API. C'est là que votre interface existante, celle qui plaît déjà à vos utilisateurs, se connecte enfin à de vraies données partagées. L'interface ne change pas, ses fondations oui. -
Ajouter l'authentification. Mettez en place de vrais comptes pour que chaque utilisateur retrouve ses données partout. Cette brique mérite quelques précisions, traitées juste en dessous.
-
Sécuriser l'ensemble. Sortez les secrets du front, fermez les accès publics, posez les règles d'autorisation. La sécurité d'un backend est un sujet à part entière, détaillé dans notre guide pour sécuriser une application créée avec l'IA.
L'authentification : la brique qu'on bâcle le plus souvent
Beaucoup de prototypes affichent un écran de connexion qui ne protège rien. La vérification se fait uniquement dans le navigateur, si bien qu'un utilisateur un peu curieux contourne l'écran et accède aux données sans jamais s'authentifier réellement. Une authentification factice donne l'illusion de la sécurité sans la fournir.
Une vraie authentification se vérifie côté serveur, avec des sessions ou des jetons signés (JWT), des mots de passe hachés, et idéalement une double authentification quand les données sont sensibles. Vous n'avez pas à tout réécrire vous-même : des solutions éprouvées comme Supabase Auth, Clerk ou Auth.js fournissent ce socle. L'authentification et la base de données vont de pair, car c'est elle qui détermine quel utilisateur a le droit de lire ou modifier quelles lignes.
Migrer de Lovable Cloud ou Supabase managé vers votre propre infrastructure
À un moment, vous voudrez peut-être sortir de l'environnement managé pour reprendre le contrôle total, que ce soit pour le coût, la maîtrise technique ou la conformité. La trajectoire existe et reste raisonnable, surtout avec un outil comme Lovable dont le code est exportable.
Dans les grandes lignes, il s'agit d'exporter le schéma de la base, les données, la configuration d'authentification, le stockage de fichiers et les fonctions serveur (edge functions), puis de redéployer le tout sur votre propre instance, sur le cloud de votre choix ou en auto-hébergement. L'idéal est de garder le front synchronisé pendant la transition pour éviter toute coupure.
Soyons honnêtes : cette migration demande de la rigueur, et c'est précisément le genre de chantier où un développeur senior fait gagner des semaines et évite les pièges (données perdues, droits mal recopiés, interruptions de service). Un backend solide conditionne aussi votre capacité à grandir, comme l'explique notre article sur les raisons pour lesquelles une app Lovable ou Bolt ne scale pas.
Si vous ne savez pas par où commencer, faites auditer gratuitement votre prototype : on identifie ce qui est réutilisable, le backend à mettre en place, et le chemin le plus court vers la production.
Questions fréquentes
Mon app Bolt ou Lovable a-t-elle déjà une base de données ?
Pas forcément. Certains prototypes connectent d'emblée une base (Lovable propose une intégration Supabase), mais beaucoup stockent encore les données dans le navigateur. Le test simple : rafraîchissez la page ou ouvrez l'app sur un autre appareil. Si vos données ont disparu, il n'y a pas de vraie base de données derrière.
Faut-il choisir Supabase, Firebase ou un backend sur mesure ?
Pour démarrer vite, Supabase est un excellent choix : base PostgreSQL solide et API automatique. Firebase convient bien aux applications très temps réel. Le sur-mesure (Nest.js, PostgreSQL, Prisma) s'impose quand la logique métier est complexe, que la scalabilité est critique ou que des contraintes réglementaires l'exigent.
Peut-on ajouter un backend sans refaire l'interface ?
Oui, et c'est même la bonne approche. L'interface générée par votre outil de vibe coding est souvent réutilisable. On conserve ce front, on construit le backend, puis on remplace les accès au stockage local par des appels à l'API. Les utilisateurs ne voient aucune rupture, seules les fondations changent.
Comment migrer mes données du localStorage vers une vraie base ?
On récupère les données présentes dans le stockage local, on les met au format attendu par la base, et on les insère via un script de migration. Pour un prototype, l'opération est généralement rapide. Le point de vigilance est de bien modéliser la base au préalable pour ne pas avoir à recommencer.
Combien coûte l'ajout d'un backend à un prototype ?
Cela dépend de la complexité du modèle de données et du choix BaaS ou sur-mesure. Un backend Supabase sur un prototype simple se met en place rapidement ; un backend sur mesure avec logique métier riche demande davantage. Un audit permet de chiffrer précisément, en partant de votre existant plutôt que de zéro.
Conclusion
Le backend est la fondation qui transforme un prototype en produit sur lequel on peut bâtir. Retenez l'essentiel : le localStorage ne suffit pas dès qu'il y a plusieurs utilisateurs ou de vraies données, on peut ajouter une base de données et une API sans toucher à l'interface existante, et tout commence par un bon modèle de données. Supabase suffit pour démarrer, le sur-mesure prend le relais quand les exigences montent.
La première étape reste de savoir où vous en êtes. Faites auditer gratuitement votre code : vous saurez quel backend mettre en place, ce qui se conserve de votre prototype, et combien coûte le passage à une vraie application.
Lectures complémentaires :
- Sécuriser une application créée avec l'IA (Lovable, Bolt, Cursor)
- Mon app Lovable/Bolt ne scale pas : pourquoi et comment y remédier
- Déployer une app Bolt/Lovable en production : la checklist
- Combien coûte de finir un projet vibe coding ?
- Vibe coding : les 8 limites qui bloquent votre passage en production
