Réponse rapide : Supabase pour 90 % des SaaS web (Postgres + Auth + RLS + always-on, prix prévisible, EU dispo). Neon si workflow Vercel + preview environments par feature. Firebase uniquement pour apps mobiles native temps-réel. Postgres bat Firestore sur quasi toutes les métriques en 2026 — flexibilité, coût, portabilité.

En résumé (TL;DR)

Service Visionary

Choix d'architecture SaaS — devis 24h

1. Comparatif 12 critères

CritèreSupabaseFirebaseNeon
Modèle DBPostgres relationnelFirestore NoSQLPostgres relationnel
Free tier (DB)500 MB1 GB Firestore500 MB
Free tier Auth50 000 MAUIllimité (basique)Pas d'auth (séparé)
Always-on / cold startAlways-onAlways-onCold start 0,5-30 s
Branching DB par featureLimité (preview branches Pro)NonOui (natif, illimité)
Realtime / WebSocketOui (Realtime channels)Oui (natif Firestore)Non (à coder)
Storage fichiersInclus (S3-compatible)Inclus (Cloud Storage)Non
Edge FunctionsOui (Deno)Oui (Cloud Functions)Non
Hébergement EUFrankfurt, ParisMulti-régions Google EUFrankfurt
RLS (Row Level Security)Oui (natif Postgres)Security Rules (DSL custom)Oui (natif Postgres)
pgvector / vector searchOuiVertex AI Vector Search (séparé)Oui
Open-source / self-hostableOui (entièrement)Non (Google managed)Partiellement (Postgres standard)

2. Tarifs 2026 et coût réel à 100 000 users

SolutionFree tierPlan suivantCoût type 100K MAU
Supabase500 MB DB + 50K MAU Auth + 1 GB StoragePro $25/mois (8 GB DB inclus)$50–100 / mois (avec compute add-on si charge)
FirebaseSpark : 1 GB Firestore + 50K reads/jourBlaze pay-as-you-go (par read/write)$400–800 / mois (très variable selon les reads)
Neon500 MB + 191 compute hours / moisLaunch $19/mois · Scale $69/mois$130–250 / mois selon activité

Le cas Firebase est trompeur. Sur le papier, le free tier semble généreux (1 GB Firestore, 50K reads/jour). En réalité, dès qu'un user ouvre une page qui liste 50 documents, vous comptez 50 reads. Pour 100K MAU avec 10 reads/MAU/jour = 1 M reads/jour = 30 M reads/mois → ~$120/mois Firestore, plus le coût des fonctions et du storage. Le doublement du trafic double exactement la facture, ce qui rend la planification délicate.

3. RLS : la feature qui change tout

Row Level Security est une feature Postgres native qui définit des règles d'accès au niveau de la ligne. Au lieu d'écrire WHERE user_id = current_user_id dans 50 endroits de votre code, vous écrivez UNE policy SQL et toutes les queries sont automatiquement filtrées.

Pattern type Supabase

-- Activer RLS sur la table
ALTER TABLE projects ENABLE ROW LEVEL SECURITY;

-- Policy : un user voit uniquement ses propres projets
CREATE POLICY "Users see own projects"
  ON projects FOR SELECT
  USING (auth.uid() = user_id);

-- Policy : un user crée des projets pour lui-même
CREATE POLICY "Users insert own projects"
  ON projects FOR INSERT
  WITH CHECK (auth.uid() = user_id);

-- Policy : update/delete uniquement ses projets
CREATE POLICY "Users update own projects"
  ON projects FOR UPDATE
  USING (auth.uid() = user_id);

CREATE POLICY "Users delete own projects"
  ON projects FOR DELETE
  USING (auth.uid() = user_id);

Une fois ces policies en place, le client Supabase côté front ne peut JAMAIS voir les données d'un autre user. Même si votre code applicatif a un bug, même si quelqu'un appelle l'API REST avec sa propre clé : la DB filtrera. C'est la sécurité ultime.

Avantages vs vérification applicative

L'équivalent Firebase : Security Rules

// firestore.rules
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /projects/{projectId} {
      allow read: if request.auth != null && resource.data.userId == request.auth.uid;
      allow create: if request.auth != null && request.resource.data.userId == request.auth.uid;
      allow update, delete: if request.auth != null && resource.data.userId == request.auth.uid;
    }
  }
}

Ça marche, mais c'est un DSL Firebase spécifique, plus difficile à auditer, à tester, à reuser que du SQL standard. Et vous ne pouvez pas le porter ailleurs.

4. Migration Firebase → Supabase : les étapes

Si vous décidez de quitter Firebase pour Postgres (Supabase ou Neon), voici la procédure standard. Comptez 1 à 1,5 semaine selon le volume de données et la complexité du code.

Semaine 1 : Schéma + export

  1. Lister toutes les collections Firestore (top-level + sub-collections).
  2. Pour chaque collection, dessiner une table Postgres équivalente. Sub-collections → table liée par foreign key.
  3. Exporter Firestore via gcloud firestore export ou Firebase Admin SDK + script Node.js.
  4. Données denormalisées Firestore → normalisées Postgres (split en plusieurs tables).

Semaine 2 : Import + tests

  1. Script de transformation : JSON Firestore → COPY Postgres.
  2. Validation des contraintes (unique, foreign keys).
  3. Tests sur un sous-ensemble : 1000 users, 10 000 documents.

Semaine 3 : Code refactoring

  1. Remplacer les imports firebase/firestore par @supabase/supabase-js.
  2. Convertir les listeners onSnapshot → Supabase Realtime channels ou polling SWR.
  3. Convertir les queries Firestore → SQL via Supabase client ou Drizzle/Prisma.
  4. Migrer les Cloud Functions → Supabase Edge Functions ou API routes Next.js.

Semaine 4 : Auth + Storage + Cutover

  1. Migrer Firebase Auth → Supabase Auth (réutilisation des UIDs si possible).
  2. Migrer Firebase Storage → Supabase Storage (copy SDK to SDK).
  3. Double-run : 24-48h avec écritures en double pour valider la cohérence.
  4. Cutover : DNS / config switch, monitoring intensif.

Semaines 5-6 : Cleanup

Coût accompagnement Visionary : 5 600 à 17 500 € HT selon volume (nombre de collections, complexité du code, multi-tenant ou non, real-time ou non).

Outil gratuit · Excel téléchargeable

Recevez l'estimateur de coût mensuel par DB

Tableur prêt-à-remplir : entrez vos volumes (MAU, GB, reads/user, writes/user, storage), il vous donne le coût mensuel estimé chez Supabase, Firebase, Neon. Décision en 5 minutes.

5. Choisissez Supabase si…

6. Choisissez Neon si…

7. Choisissez Firebase si…

La règle 2026 : Postgres par défaut, Firebase pour cas mobile temps-réel uniquement. Postgres a gagné la bataille du SaaS web. Le triplet Supabase + Next.js + Vercel est devenu le stack défaut français en 2026.

8. Pattern recommandé : Supabase + Drizzle + Next.js 15

Notre stack défaut chez Visionary pour les SaaS livrés en 2026 :

Setup typique en 1 journée pour un dev expérimenté : npm create supabase, schéma drizzle, push à Supabase, génération des types, premier composant qui fetch.

Exemple : query typée Drizzle + Supabase

// lib/db/schema.ts
import { pgTable, uuid, text, timestamp } from 'drizzle-orm/pg-core';

export const projects = pgTable('projects', {
  id: uuid('id').primaryKey().defaultRandom(),
  userId: uuid('user_id').notNull(),
  name: text('name').notNull(),
  createdAt: timestamp('created_at').defaultNow().notNull(),
});

// app/projects/page.tsx (Server Component)
import { db } from '@/lib/db';
import { projects } from '@/lib/db/schema';
import { eq } from 'drizzle-orm';
import { verifySession } from '@/lib/dal';

export default async function ProjectsPage() {
  const { userId } = await verifySession();
  // RLS protège déjà côté DB, mais on filtre aussi explicitement
  const items = await db.select().from(projects).where(eq(projects.userId, userId));

  return (
    <ul>
      {items.map(p => <li key={p.id}>{p.name}</li>)}
    </ul>
  );
}

9. Mythes courants démontés

"Postgres ne scale pas" — faux

Postgres tient 100K+ writes/sec sur une instance dédiée moderne (16 vCPU). 99 % des SaaS n'atteindront jamais ces volumes. Si vous y arrivez, vous avez les ressources pour optimiser (indexes, partitioning, read replicas, Neon autoscaling). Stripe, Notion, OpenAI tournent sur Postgres.

"Firebase est plus simple à apprendre" — partiellement vrai

Le SDK Firebase est plus simple en apparence (pas de SQL à apprendre). Mais dès que nous dépassons les CRUD basiques, Firestore Security Rules + indexes composites + denormalization manuelle deviennent plus complexes que SQL. SQL est documenté, enseigné, audité depuis 50 ans. Le ROI d'apprentissage Postgres dépasse largement Firestore en 6 mois de pratique.

"Supabase, c'est juste un wrapper Postgres" — sous-estime la valeur

Supabase est en effet du Postgres, mais avec : Auth integrated, Storage S3-compatible, Realtime via WebSockets sur les changements de la DB, Edge Functions Deno, Vector embeddings, dashboard joli, RLS GUI. Reproduire tout cela soi-même prend 3-6 mois de dev. Supabase = stack SaaS complet.

10. Quoi tester avant de choisir

  1. Cold start (Neon) : créer un compte free, attendre 5 min d'inactivité, mesurer le temps avant la première réponse.
  2. Latence read/write : créer une table, insérer 1000 lignes, mesurer p50/p95/p99 lecture.
  3. RLS : implémenter une policy multi-tenant simple, vérifier qu'un user ne peut pas voir les données d'un autre via l'API REST.
  4. Migration : importer un dump de 100 MB, mesurer le temps.
  5. DX : générer les types TypeScript depuis le schéma, voir si l'autocomplete vous plaît.
  6. Coût simulé : entrer vos volumes attendus dans le tableur Visionary (lead magnet ci-dessus) ou dans les calculateurs officiels.

Questions fréquentes

Postgres ou Firebase NoSQL pour un SaaS en 2026 ?

Postgres dans 90 % des cas. Firebase Firestore reste pertinent pour les apps mobiles temps-réel avec des données très simples. Pour un SaaS B2B/B2C web, Postgres gagne sur la flexibilité, la portabilité, et le coût à scale.

Supabase ou Neon pour Postgres serverless ?

Supabase si vous voulez une plateforme tout-en-un (DB + Auth + Storage + Realtime + Edge Functions) avec instances always-on. Neon si vous voulez du Postgres pur avec scale-to-zero, branching git-like, intégration Vercel parfaite. En 2026, Supabase est le choix par défaut pour la plupart des SaaS.

Combien coûte une base de données SaaS à 100 000 users ?

Estimation pour 100K MAU avec ~1 GB de données par 1000 users + ~10 reads/MAU/jour : Supabase ~$50-100/mois, Neon ~$130/mois, Firebase $400-800/mois (très variable). À 100K MAU, Supabase est généralement le moins cher.

Le cold start de Neon (30 s) est-il un problème ?

Cela dépend de votre profil d'usage. Pour un SaaS B2B avec users dispersés dans le temps, le cold start peut frapper plusieurs fois par jour. Pour un SaaS qui a 1+ requête / 5 minutes en heures ouvrées, la DB reste warm. Neon a réduit le cold start à ~500 ms en 2025 pour les plans payants (Launch et Scale).

Qu'est-ce que Row Level Security (RLS) et comment l'utiliser ?

RLS est une feature Postgres native qui permet de définir des policies au niveau de la table. Sécurité ultime : même si votre code applicatif a un bug, la DB ne renvoie pas les données d'un autre user. Pattern type : CREATE POLICY "users see own data" ON projects FOR SELECT USING (auth.uid() = user_id);

Comment migrer de Firebase à Supabase ?

1-1,5 semaine de travail. 1) Schéma SQL équivalent (collections → tables). 2) Export Firebase + import Postgres. 3) Refactoring code (listeners → Realtime ou polling, queries Firestore → SQL). 4) Auth Firebase → Supabase. 5) Storage. Comptez 5 600-17 500 € HT pour un accompagnement complet.

Firebase est-il encore une bonne option en 2026 ?

Oui pour 2 cas : apps mobiles native temps-réel et apps avec beaucoup d'écritures temps-réel. Pour un SaaS web B2B/B2C standard, Firebase a 3 problèmes : verrouillage Google, facturation imprévisible, schéma NoSQL difficile à requêter.

Que penser de PlanetScale, Turso, Xata ?

PlanetScale (MySQL) : excellent en branching et performance, mais a fermé son free tier en 2024. Turso (SQLite distribué edge) : génial en latence globale. Xata (Postgres + search + AI) : bonne alternative tout-en-un mais plus jeune. Supabase reste le défaut pour 90 % des SaaS.

Postgres pgvector : pourquoi c'est important ?

pgvector est une extension Postgres qui permet de stocker des embeddings et faire des recherches similarity en SQL. Game-changer pour le RAG : pas besoin d'une DB vectorielle séparée. Supabase et Neon le supportent en natif. Pour 100K vecteurs : ~50ms p95.

Comment choisir entre les 3 en 2026 ?

SaaS B2B/B2C web standard : Supabase. SaaS avec preview environments / Vercel-first : Neon. App mobile native temps-réel : Firebase. Vous changez d'avis plus tard : Supabase ↔ Neon = facile (Postgres standard). Firebase ↔ Postgres = projet à part entière.

Architecture SaaS sur-mesure ?

Choix DB optimal, schéma + RLS, intégration Auth, monitoring. Stack production-ready en 1-2 semaines. Dès 5600 €.

Voir l'offre SaaS →