¿Qué es Supabase?
Supabase es una alternativa de código abierto a Firebase que ofrece todos los servicios backend que necesitas para construir aplicaciones modernas. Está construido sobre PostgreSQL y brinda una base de datos potente, autenticación, suscripciones en tiempo real, almacenamiento y Edge Functions.
🚀 ¿Por qué elegir Supabase?
- Código abierto: Autoalojado o plataforma administrada
- PostgreSQL: Base de datos SQL completa con todas las funciones
- Tiempo real: Suscripciones en tiempo real integradas
- APIs auto-generadas: APIs REST y GraphQL automáticamente
- Row Level Security: Control de acceso granular
Supabase vs Firebase
| Característica | Supabase | Firebase |
|---|---|---|
| Base de datos | PostgreSQL (SQL) | Firestore (NoSQL) |
| Código abierto | Sí | No |
| Autoalojamiento | Sí | No |
| Tiempo real | Sí | Sí |
| Funciones Edge | Deno | Node.js |
Funciones principales
🔐 Autenticación
Email, OAuth, magic links, auth con teléfono
🗄️ Base de datos
PostgreSQL completo con extensiones
📁 Storage
Almacenamiento de archivos con CDN
⚡ Edge Functions
Funciones serverless con Deno
Configurar tu primer proyecto
Paso 1: Crear una cuenta de Supabase
Visita supabase.com y regístrate con GitHub o email.
Paso 2: Crear un nuevo proyecto
Haz clic en "New Project" y configura:
- Nombre del proyecto
- Contraseña de base de datos (¡guárdala de forma segura!)
- Región (elige la más cercana a tus usuarios)
Paso 3: Instalar el cliente de Supabase
# Using npm
npm install @supabase/supabase-js
# Using yarn
yarn add @supabase/supabase-js
Paso 4: Inicializar el cliente
import { createClient } from '@supabase/supabase-js'
const supabaseUrl = 'https://your-project.supabase.co'
const supabaseKey = 'your-anon-key'
export const supabase = createClient(supabaseUrl, supabaseKey)
⚠️ Nota de seguridad
La clave anon es segura para usar en el cliente porque las políticas de Row Level Security
protegen tus datos. Nunca expongas la clave service_role en el cliente.
Tu primera consulta
// Fetch all rows from a table
const { data, error } = await supabase
.from('posts')
.select('*')
if (error) {
console.error('Error:', error)
} else {
console.log('Posts:', data)
}
Estructura del proyecto
my-supabase-app/
├── src/
│ ├── lib/
│ │ └── supabase.js # Supabase client
│ ├── components/
│ └── pages/
├── .env.local # Environment variables
└── package.json
Variables de entorno
# .env.local
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
💡 Puntos clave
- • Supabase es una alternativa open-source a Firebase basada en PostgreSQL
- • Proporciona auth, base de datos, storage, realtime y Edge Functions
- • La clave anon es segura en el cliente con RLS habilitado
- • Las APIs auto-generadas simplifican el acceso a la base de datos
📚 Más recursos
-
Documentación de Supabase →
Documentación oficial con guías y referencia de API.
-
Guía de inicio →
Guías rápidas para distintos frameworks.
-
Supabase en GitHub →
Repositorio open‑source y comunidad.