Supabase : guide pour débutant (tutoriel)


Supabase est une plateforme open source qui fournit un backend complet pour vos applications, souvent présentée comme l’alternative open source à Firebase.
Supabase est ce qu’on appelle un Backend as a Service (BaaS) à contrario des outils frontend, voir ma liste des tops outils no-code.
Comprendre les bases de Supabase
Chaque projet Supabase inclut une base PostgreSQL complète.
Le tableau de bord Supabase offre une vue de type feuille de calcul pour gérer vos tables, rendant Postgres aussi simple qu’un tableur. Vous pouvez ainsi créer des tables, ajouter des colonnes par menus, et modifier les données directement dans les cellules, sans taper une requête SQL.
En parallèle, un éditeur SQL intégré vous permet d’exécuter des requêtes (SELECT, INSERT, UPDATE…) et même de sauvegarder vos requêtes préférées pour les réutiliser.
Supabase prend en charge l’import de données depuis des fichiers CSV ou Excel et gère automatiquement les sauvegardes de votre base.
Pour aller plus loin, vous pouvez activer des extensions comme PostGIS pour les données géospatiales ou http pour effectuer des requêtes web directement depuis la base.
La base étant 100% PostgreSQL, elle reste portable : vous pouvez migrer vos données vers n’importe quel autre serveur Postgres en cas de besoin ou tout simplement hébergé Supabase sur un autre serveur (ici nous ne traiteront pas de cette éventualité).
Qu’est-ce qu’un BaaS (Backend as a Service) ?
Un Backend-as-a-Service (BaaS) est un service cloud qui prend en charge toutes les composantes du backend d’une application.
Cela inclut notamment :
- la base de données,
- l’authentification des utilisateurs,
- le stockage de fichiers,
- et des API automatiques.
Concrètement, au lieu de configurer vous-même un serveur ou une base de données, vous utilisez ces services via des API prêtes à l’emploi.
Supabase est précisément un BaaS open source : il fournit une base de données PostgreSQL « prête à l’emploi », ainsi qu’une suite complète de services backend.
Vous pouvez vous concentrer sur le front-end (grâce à Weweb ou Webstudio par exemple) et les fonctionnalités métier, laissant Supabase s’occuper de la scalabilité, de la sécurité et de la maintenance du backend.
Le cœur de Supabase : PostgreSQL
Au cœur de Supabase se trouve PostgreSQL, la base de données relationnelle open-source la plus utilisée au monde (après SQLite).
L’un des avantages majeurs est la portabilité : puisque la base est 100% PostgreSQL, vous pouvez migrer vos données vers une autre instance Postgres (par exemple hébergée ailleurs ou sur vos propres serveurs) à tout moment.
De plus, vous pouvez activer ou installer de nombreuses extensions directement depuis le dashboard Supabase, afin d’étendre les capacités de votre base selon vos besoins.
Les fonctionnalités clés de Supabase
API et GraphQL
Dès qu’on crée une table, Supabase génère automatiquement une API REST correspondante.
Concrètement, vous pouvez faire des requêtes HTTP basiques sur vos tables. Par exemple, GET /rest/v1/clients
renvoie la liste des clients, POST /rest/v1/clients
ajoute un nouveau client, et ainsi de suite.
Grâce à ces API générer automatiquement, vous pouvez facilement connecter vos outils no-code aux tables.
En complément de l’API REST, Supabase prend en charge GraphQL.
Pour les utilisateurs qui préfèrent le modèle GraphQL (notamment dans certains outils no-code qui le supportent), c’est une fonctionnalité intéressante.
Authentification
Supabase intègre un système d’authentification complet.
Vous pouvez activer facilement l’inscription et la connexion par e-mail/mot de passe, ainsi que des logins via Google, GitHub, Apple et bien d’autres fournisseurs tiers (OAuth).
Vous devez utiliser les politiques de sécurité au niveau des lignes (Row-Level Security, RLS) de Postgres pour contrôler précisément l’accès aux données.
Par exemple, vous pourriez configurer la base pour qu’un client voit uniquement ses propres commandes, ou qu’un vendeur ne puisse modifier que ses propres fiches produit. Ce système intégré d’authentification et de sécurité fait que vous n’avez pas à écrire vous-même ces mécanismes : Supabase les gère pour vous.
Base de données
La base PostgreSQL de Supabase est entièrement gérée pour vous. Le tableau de bord web vous permet de :
-
Visualiser et éditer les tables en mode feuille de calcul. Vous pouvez ajouter/modifier des champs ou des enregistrements directement dans l’interface, comme si vous utilisiez un tableur ;
-
Exécuter du SQL dans l’éditeur intégré ;
-
Importer des données depuis un fichier CSV ou Excel ;
-
Gérer les sauvegardes automatiques.
Bref, Supabase simplifie la gestion quotidienne de la base. Même sans être expert SQL, vous pouvez créer et modifier votre schéma via l’interface graphique, tout en ayant la puissance de Postgres en cas de besoin.
Stockage de fichiers (S3)
Supabase propose un service de stockage d’objets compatible S3 pour héberger vos fichiers (images, vidéos, documents, etc.).
Par exemple, vous pouvez l’utiliser pour stocker les photos de profil des utilisateurs ou des vidéos promotionnelles. Les fichiers uploadés sont servis par un CDN global, garantissant une bonne performance.
Vous pouvez définir des règles pour qu’un fichier ne soit accessible qu’à certains utilisateurs (ou reste privé).
Edge functions
Pour ajouter de la logique personnalisée côté serveur, Supabase offre les Edge Functions.
Ce sont des fonctions serverless écrites en TypeScript et déployées aux « Edge » (proches des utilisateurs finaux). Concrètement, vous pouvez écrire des fonctions pour interagir avec votre base, envoyer des emails, appeler des APIs externes ou effectuer des traitements intensifs sans avoir de serveur acheté à cet effet.
Par exemple, vous pourriez créer une fonction qui s’active lorsqu’un nouvel utilisateur s’inscrit : elle génère une entrée dans une table, envoie un email de bienvenue et l’inscrit à une newsletter.
Realtime
Le service Realtime de Supabase vous permet de construire des fonctionnalités en temps réel (chats, jeux multi-joueurs, tableaux collaboratifs, etc.).
Supabase fournit un serveur Realtime distribué globalement. Les principales fonctionnalités incluent la diffusion de messages (Broadcast), le suivi de présence des utilisateurs (Presence), et surtout l’écoute des changements en base (Postgres Changes).
Par exemple, si un enregistrement de la table messages
est ajouté par un client, tous les autres clients abonnés pourront recevoir automatiquement ce nouveau message sans recharger la page, ce qui permet de créer un WhatsApp like.
Les fonctionnalités avancées de Supabase
Vector store (pour l’IA)
Supabase propose un support natif pour le stockage de vecteurs (embeddings) utilisé en intelligence artificielle.
Vous avez la possibilité de stocker des vecteurs de taille arbitraire dans la base.
L’idée est de transformer vos documents ou données en vecteurs (via un modèle ML comme OpenAI ou Hugging Face) et de les sauvegarder en base.
Ensuite, vous pouvez exécuter une recherche sémantique pour retrouver les valeurs proches, très utiles pour les IA.
Cette fonctionnalité est idéale pour des applications comme des chatbots ou moteurs de recherche intelligents.
Cron (tâches planifiées)
Supabase inclut un module Cron bâti sur pg_cron, pour exécuter des tâches planifiées directement en base.
Vous pouvez définir des jobs récurrents selon une syntaxe cron, ou même en langage naturel (via une interface).
Les jobs peuvent être de plusieurs types : exécuter une requête SQL, appeler une fonction stockée Postgres, effectuer un appel HTTP (webhook) ou déclencher une Edge Function.
Par exemple, vous pourriez programmer tous les jours une requête SQL pour envoyer un rapport par email via une fonction.
Queues
Pour gérer des traitements asynchrones et des files de messages, Supabase fournit un système de Queues via l’extension pgmq.
Il s’agit d’une file d’attente native PostgreSQL, durable et garantie, permettant de mettre en file des tâches à exécuter ultérieurement.
Par exemple, si vous avez besoin d’envoyer 1000 emails, vous pouvez placer 1000 messages dans la queue. Un consommateur (par exemple une Edge Function ou un service tiers) va lire ces messages un par un.
Wrapper
Supabase propose également un framework de Wrappers, qui permet de créer des Foreign Data Wrappers (FDW) dans Postgres. Pour simplifier, ce sont des données extérieur à la base de données qui sera intégrées comme une table.
Par exemple, Supabase met à disposition des wrappers pour Stripe. Vous pourriez ainsi créer une table virtuelle stripe_products
qui reflète les produits depuis l’API Stripe en temps réel ou récupérer les opérations bancaires.
Étendre Supabase grâce aux extensions PostgreSQL
PostgreSQL dispose de nombreuses extensions qui étendent ses capacités, et Supabase vous permet d’en activer la plupart directement depuis l’interface. Vous pouvez consulter la liste des extensions disponibles et ajouter celles de votre choix via l’éditeur SQL ou le tableau de bord. Par exemple :
- HTTP client : permet de faire des requêtes web externes et récupérer des données en temps réel ;
- PostGIS : cette extension ajoute des types géométriques (points, lignes, polygones) et des fonctions spatiales pour effectuer des requêtes géographiques (calcul de distances, intersections, etc.). Indispensable si votre application gère des données de localisation ou de cartographie.
En résumé, tout ce que vous pouvez installer sur une base Postgres standard, vous pouvez le faire sur Supabase. Cela vous donne une flexibilité quasi infinie…
Exemples d’applications réalisables
Supabase est suffisamment flexible pour construire de nombreuses applications backend. En voici trois exemples concrets (parmi tant d’autres) :
CRM
Imaginez un CRM interne pour suivre vos clients et projets. Vous pourriez créer une table Clients (nom, coordonnées, entreprise, etc.) et une table Interactions (emails, appels, réunions) liée aux clients.
Avec Supabase Auth, chaque commercial se connecte avec son compte. En configurant les politiques RLS, vous faites en sorte que chaque utilisateur ne voie que ses propres clients.
Selon les cas d’usage présentés par Supabase, un CRM interne utiliserait l’authentification et le RLS pour restreindre l’accès par utilisateur. On peut aussi ajouter une table Tâches/Projets avec un pipeline de ventes (Kanban), stocker des notes, et gérer le tout via l’API REST fournie.
Si vous ne savez pas par où commencer pour construire un CRM, je vous propose cet article qui traite sur la création d’un CRM.
Marketplace
Pour une marketplace, Supabase peut gérer les utilisateurs (acheteurs et vendeurs) et le catalogue de produits.
Par exemple, chaque vendeur a une table Produits avec ses articles. Grâce aux rôles et politiques RLS, un vendeur ne verra/ modifiera que ses propres fiches produit, tandis qu’un administrateur verra tout.
Les transactions (commandes) peuvent être stockées dans une table Commandes.
Vous pouvez utiliser le stockage de fichiers pour héberger les images produits. Si nécessaire, vous pouvez même connecter des services externes : par exemple, un wrapper Stripe pour les paiements.
Base de données pour IA (chatbot, etc.)
Supabase peut servir de backend IA.
Par exemple, vous pouvez stocker un corpus de documents (articles, fiches produits, FAQ…) dans une table Postgres.
Ensuite, utilisez une Edge Function pour interroger un modèle IA (comme OpenAI) et générer un embedding vectoriel de chaque document, que vous stockez avec pgvector.
Pour le chatbot, lorsqu’un utilisateur pose une question, vous générez son embedding (via une fonction Edge), puis vous effectuez une recherche vectorielle dans Postgres pour trouver les documents les plus pertinents.
Enfin, vous pouvez renvoyer ces informations au chatbot ou directement à l’utilisateur.
Supabase gère ainsi le stockage des données (textes et vecteurs) et facilite l’interfaçage avec les modèles ML.
Vous avez la possibilité d’utilisé n8n pour orchestrer votre chatbot. Si vous ne connaissez pas n8n, voici un tutoriel sur n8n pour bien débuter.
Conclusion
La page d’accueil résume bien l’offre : « Supabase est la plateforme de développement Postgres » offrant une base Postgres gérée, l’authentification, des API instantanées, des fonctions Edge, des services temps réel, du stockage de fichiers et du vectoriel.
En pratique, Supabase rassemble un ensemble de services backend (BaaS) dans une même plateforme intégrée. L’avantage est double : d’une part, vous bénéficiez de la puissance de PostgreSQL (robustesse, SQL standard, extensions), et d’autre part, vous accédez à des fonctionnalités prêtes à l’emploi via une interface simple.
Supabase gère les aspects complexes (sécurité, scalabilité, maintenance) pour vous, ce qui accélère le développement.
Le tableau suivant récapitule les principales fonctionnalités :
Fonctionnalité | Description |
---|---|
Base de données (Postgres) | Base SQL relationnelle complète, stable et 100% portable. Vue table intégrée (feuille de calcul) pour éditer les données. |
Authentification | Inscription/connexion (email/mot de passe, logins sociaux). RLS pour sécuriser les données utilisateur. |
API REST et GraphQL | API REST auto-générées pour chaque table. GraphQL possible via l’extension pg_graphql. |
Stockage de fichiers | Stockage d’objets compatible S3 pour images/vidéos, avec CDN. Accès contrôlé par projet Supabase (sécurisé par RLS). |
Fonctions Edge | Fonctions serverless TypeScript (Javascript). Idéal pour logique métier ou tâches asynchrones (ex. envoi d’email). |
Temps réel | Notifications en temps réel des changements de données (utile pour chats, tableaux collaboratifs, etc.). |
Recherche vectorielle (IA) | Outils pgvector pour embeddings et recherche sémantique. Permet d’intégrer l’IA (OpenAI, Hugging Face) pour des recherches intelligentes. |
Tâches planifiées (Cron) | Module Cron (pg_cron) pour exécuter des jobs récurrents (requêtes SQL, fonctions, webhooks). Ex. : rapports quotidiens, maintenance automatique. |
Files d’attente (Queues) | Système de queue de messages durable (pgmq). Utile pour le traitement asynchrone garanti (emails, jobs AI, etc.). |
Extensions PostgreSQL | Support de nombreuses extensions. Exemples : HTTP pour requêtes web depuis la base, PostGIS pour données géospatiales, etc. |
Supabase s’adresse particulièrement aux créateurs d’applications no-code. Sa facilité d’usage (installation en un clic) et son interface « point-and-click » sont conçues pour des non-développeurs.
Néanmoins, si vous avez un minimum de connaissances SQL, vous pouvez tirer pleinement parti de la plateforme : écrire quelques requêtes SQL reste utile pour des opérations avancées.
Au final, Supabase offre un compromis performant : la puissance du SQL et des services backend complets, tout en restant accessible sans coder toute l’infrastructure.
FAQ
-
Supabase est-il gratuit et open-source ? Supabase est entièrement open-source (le code est disponible sur GitHub) et propose un plan gratuit généreux. On peut même auto-héberger Supabase si on le souhaite, car tout le code est libre ;
-
Ai-je besoin de coder pour l’utiliser ? Pas vraiment. Vous gérez la base et les utilisateurs principalement via l’interface visuelle (tables, formulaires d’authentification, etc.). La plupart des tâches d’administration se font en point-and-click. De plus, Supabase propose un assistant IA qui peut générer les requêtes SQL à votre place : il suffit de décrire en langage naturel ce que vous voulez obtenir, et Supabase écrit la requête. Bien sûr, un peu de SQL de base peut aider, mais ce n’est pas obligatoire pour démarrer ;
-
Quelle différence avec Firebase ? Firebase est une plateforme BaaS de Google basée sur une base NoSQL (Firestore) et des services propriétaires. Supabase, lui, utilise PostgreSQL (un SQL reconnu) et est 100% open-source. Les deux offrent des fonctionnalités similaires (auth, stockage, realtime), mais Supabase convient mieux si vous voulez travailler en SQL standard ou bénéficier de la portabilité (vous pouvez facilement migrer vos données car Postgres est universel). Firebase est très mature et intégré à l’écosystème Google, tandis que Supabase mise sur la flexibilité de l’open source ;
-
Est-ce compatible avec des outils no-code ? Oui. Supabase fournit des API REST standard et utilise des webhooks/WebSockets, on peut donc le connecter à des plateformes comme Weweb, n8n, ou même Bubble. Par exemple, n8n propose un connecteur Supabase, ce qui permet de déclencher des automatisations sans code. Il existe également des plugins pour Bubble ou d’autres builders qui facilitent l’intégration. En pratique, vous pouvez garder votre frontend no-code et utiliser Supabase comme backend, en appelant son API ou en écoutant son flux Realtime.