Qué es Supabase
Supabase es una plataforma BaaS (Backend as a Service -- un backend listo para usar sin tener que construirlo desde cero). Es open-source y está construido sobre PostgreSQL, una de las bases de datos más sólidas que existen.
En términos prácticos: Supabase te da una base de datos, autenticación de usuarios, almacenamiento de archivos, funciones en el edge y suscripciones en tiempo real. Todo desde un dashboard y un SDK (Software Development Kit -- la librería que instalas en tu proyecto para conectarte a Supabase).
Por qué Supabase y no Firebase
| Supabase | Firebase | |
|---|---|---|
| Base de datos | PostgreSQL (SQL relacional) | Firestore (NoSQL documental) |
| Open-source | Sí, puedes hacer self-hosting | No |
| Pricing | Generoso free tier, pricing predecible | Puede escalar rápido en costos |
| Queries | SQL real, JOINs, funciones | Queries limitados por la estructura NoSQL |
| Auth | Built-in con RLS | Built-in |
| Real-time | Sí | Sí |
Si ya sabes SQL o quieres aprenderlo, Supabase es la opción natural. Si vienes de Firebase, la transición es directa.
Qué incluye Supabase
Base de datos PostgreSQL
Una instancia completa de PostgreSQL. No es una versión recortada -- tienes acceso a todo: tipos de datos, funciones, triggers, extensiones, vistas, índices. Puedes usar SQL directamente desde el dashboard o desde el SDK.
Autenticación
Sistema de auth (autenticación) completo: registro con email y contraseña, OAuth (iniciar sesión con Google, GitHub, etc.), magic links (enlaces que te loguean sin contraseña) y OTP (One-Time Password -- códigos de un solo uso).
Row Level Security (RLS)
RLS son reglas de seguridad que defines a nivel de base de datos. En vez de validar permisos en tu backend, PostgreSQL se encarga directamente. Si un usuario no tiene permiso para leer una fila, simplemente no la ve.
Storage
Almacenamiento de archivos (imágenes, PDFs, videos) con buckets (contenedores de archivos) y permisos configurables. Soporta URLs firmadas para acceso temporal.
Edge Functions
Funciones serverless que corren en Deno (un runtime de JavaScript/TypeScript). Las usas para lógica que no quieres exponer en el cliente: webhooks, integraciones con APIs externas, procesamiento de datos.
Realtime
Suscripciones en tiempo real a cambios en tu base de datos. Cuando alguien inserta, actualiza o elimina una fila, tus clientes conectados reciben la notificación al instante.
API auto-generada
Supabase genera automáticamente una API REST (y GraphQL si lo habilitas) basada en tu esquema de base de datos. Cada tabla se convierte en un endpoint. No necesitas escribir ni una línea de código backend para tener tu API lista.
Cómo funciona la arquitectura
Tu App (NextJS, React, etc.)
|
v
Supabase Client SDK (@supabase/supabase-js)
|
v
Supabase API (PostgREST + GoTrue + Realtime + Storage)
|
v
PostgreSQL (tu base de datos)Tu app se comunica con Supabase a través del SDK. El SDK habla con varios servicios internos:
- PostgREST convierte tu base de datos en una API REST automáticamente
- GoTrue maneja toda la autenticación
- Realtime gestiona las suscripciones en tiempo real
- Storage API maneja los archivos
Todo esto corre sobre una instancia de PostgreSQL que es tuya. Si algún día quieres migrar, te llevas tu base de datos completa.
Requisitos previos
Para seguir esta documentación necesitas:
- Node.js 18+ instalado
- Conocimiento básico de JavaScript o TypeScript
- Una cuenta gratuita en supabase.com
- Opcional: saber SQL básico (lo iremos cubriendo)
No necesitas experiencia previa con Supabase ni con bases de datos relacionales. Cada concepto se explica desde cero.
Estructura de esta documentación
La documentación está organizada de forma progresiva. Empieza desde lo básico y avanza hacia lo más complejo:
- Fundamentos -- Crear proyecto, instalar SDK, conocer el dashboard
- Base de datos -- PostgreSQL, tablas, tipos, relaciones, consultas
- Autenticación -- Email, OAuth, magic links, protección de rutas
- Row Level Security -- Políticas de seguridad a nivel de base de datos
- Storage -- Subir y gestionar archivos
- Realtime -- Suscripciones en tiempo real
- Edge Functions -- Funciónes serverless en Deno
- API -- La API auto-generada y sus filtros
- CLI y migraciones -- Desarrollo local y control de versiones del esquema
- Integración con NextJS -- Server Components, Server Actions, SSR
- Producción -- Checklist y seguridad para ir a producción