Skip to main content
[ PIER ]

Supabase

La alternativa open-source a Firebase — Postgres + Auth + Realtime + Storage.

Service #firebase#postgresql#auth#realtime#api

Supabase es un backend-as-a-service open-source construido sobre PostgreSQL. Empaqueta autenticación, APIs REST + GraphQL instantáneas desde tu schema, suscripciones en tiempo real, almacenamiento de ficheros, edge functions y pgvector — todo corriendo sobre extensiones de Postgres. Pier despliega todo el stack como un servicio de un clic.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Supabase en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Supabase?

Supabase es “la alternativa open-source a Firebase” — un backend-as-a-service que empaqueta autenticación, una API REST + GraphQL autogenerada, suscripciones realtime, almacenamiento de ficheros, edge functions y búsqueda vectorial encima de PostgreSQL. Donde Firebase encierra tus datos en el Firestore propietario de Google, Supabase mantiene todo en Postgres puro — puedes pg_dump tu base de datos en cualquier momento y marcharte.

Arquitectónicamente es un stack Docker Compose: Postgres en el medio, PostgREST + pg_graphql exponiendo el schema como APIs, GoTrue manejando auth, Realtime broadcasteando cambios por WebSockets y Storage API envolviendo buckets compatibles con S3. Kong se sienta delante como gateway. Supabase Studio te da una UI web para navegar tablas, editar políticas RLS e inspeccionar logs.

Cómo lo despliega Pier

Pier despliega Supabase como plantilla Docker Compose multi-contenedor. Todos los sidecars — Postgres, PostgREST, GoTrue, Realtime, Storage, Kong, Studio — suben juntos con defaults sensatos y un JWT secret generado. El servicio expone los puertos 8000 (API) y 3000 (Studio) internamente.

Para HTTPS, adjunta un dominio — Traefik maneja la emisión del cert. Las env vars estándar de Supabase (SUPABASE_URL, ANON_KEY, SERVICE_ROLE_KEY) se muestran en la página del servicio de Pier para que las enchufes directamente a tu cliente SDK.

Cuándo NO usar Supabase

Para almacenamiento puro o auth pura, el stack empaquetado es overkill — usa PostgreSQL plano + una librería de auth. Para apps solo móvil sin lado web, PocketBase es más ligero. Para necesidades enterprise profundas de SSO y RBAC de fábrica, mira Keycloak. Supabase gana cuando quieres una experiencia de desarrollador estilo Firebase sin renunciar a Postgres ni a la libertad de autohospedaje.

Características clave

PostgreSQL como núcleo

Cada feature de Supabase es una extensión o sidecar de Postgres. Tus datos viven en Postgres puro — sin base de datos propietaria, sin lock-in. Los exports `pg_dump` funcionan.

REST + GraphQL autogenerados

PostgREST expone cada tabla y vista como endpoint REST con row-level security. pg_graphql añade GraphQL encima — sin resolvers que escribir.

Auth lista de fábrica

Email/password, magic links, OAuth (Google, GitHub, Apple, Discord, 30+ proveedores), MFA, anonymous sign-ins. Tokens JWT enforced vía políticas RLS de Postgres.

Suscripciones realtime

Suscríbete a INSERT/UPDATE/DELETE sobre cualquier tabla por WebSockets. Construido sobre replicación lógica de Postgres — mismo mecanismo que replicación cross-region.

Almacenamiento de objetos

Almacenamiento compatible con S3 con políticas RLS por bucket. Transformaciones de imagen, URLs firmadas, uploads grandes — todo sin salir de Supabase.

Búsqueda vectorial (pgvector)

Soporte de primera clase para embeddings de IA. Almacena, indexa y consulta vectores de 1536 dimensiones con índices HNSW. RAG y búsqueda semántica sin una vector DB aparte.

Casos de uso

Backend de apps SaaS

Reemplaza Firebase + Stripe + Algolia + S3 con un stack autohospedado. Auth, base de datos, almacenamiento, búsqueda, vector — todo en un Postgres.

Backend de herramientas internas

PostgREST + auth te da una API completa en minutos. Combina con Retool, Tooljet o la plantilla Directus de Pier para la UI.

Backend de apps móviles

Los SDKs Supabase JS/Swift/Kotlin/Flutter manejan auth, realtime, storage. Offline-first con capas como PowerSync o Watermelon.

Backend IA / RAG

pgvector para embeddings + storage para documentos + auth para acceso multi-tenant. El stack OSS de facto para productos RAG.

Colaboración en tiempo real (estilo Notion)

Suscripciones realtime en tablas Postgres sincronizan estado entre usuarios. Empareja con Yjs o Liveblocks para OT/CRDT en la capa de editor.

Ejemplos de código

Conectar desde un cliente JS javascript
import { createClient } from "@supabase/supabase-js";

const supabase = createClient(
  "https://your-supabase.example.com",
  "<anon key>"
);

const { data, error } = await supabase
  .from("posts")
  .select("id, title, author:profiles(name)")
  .eq("published", true)
  .order("created_at", { ascending: false })
  .limit(10);
Suscripción realtime javascript
const channel = supabase
  .channel("posts-changes")
  .on(
    "postgres_changes",
    { event: "INSERT", schema: "public", table: "posts" },
    (payload) => console.log("New post:", payload.new)
  )
  .subscribe();
Política RLS para multi-tenancy sql
ALTER TABLE projects ENABLE ROW LEVEL SECURITY;

CREATE POLICY "Users see only their own projects"
ON projects FOR ALL
USING (owner_id = auth.uid());
Consulta RAG con pgvector sql
SELECT id, title, content
FROM documents
ORDER BY embedding <-> '[0.1, 0.2, ...]'::vector
LIMIT 5;

Comparativa

vs Firebase Firebase es closed-source y Google-locked-in. Supabase es OSS, autohospedable, basada en Postgres. Feature set equivalente; portable el momento que quieras irte.
vs PocketBase PocketBase es un Firebase-alike single-binary basado en SQLite. Más ligero, simple, menor techo. Elige PocketBase para proyectos hobby; Supabase para SaaS multi-tenant en producción.
vs Hasura Hasura genera GraphQL desde cualquier Postgres. Supabase genera REST + GraphQL y empaqueta auth/storage/realtime/edge functions. Hasura es la capa GraphQL; Supabase es el stack completo.
vs Postgres + API hecha a mano Puedes construirlo todo sobre Postgres puro — pero reinventas auth, plumbing de RLS, websockets realtime y storage. Supabase ahorra meses de plumbing.

Preguntas frecuentes

¿Es Supabase realmente 100% open source?
Sí — el core (Postgres + PostgREST + GoTrue + Realtime + Storage) es Apache 2.0 o MIT. Supabase Studio (la UI) también es OSS. La cloud hosteada de Supabase añade soporte y escalado gestionado, pero cada componente es autohospedable.
¿Cómo lo despliega Pier?
Pier usa el stack Docker Compose oficial `supabase/supabase` (multi-contenedor). La plantilla compose provisiona Postgres, GoTrue (auth), PostgREST (REST API), Realtime, Storage API, Kong (gateway) y Studio (UI).
¿Puertos por defecto?
8000/tcp (Kong gateway / API), 8443 si HTTPS configurado. Pier los expone vía Traefik cuando adjuntas un dominio.
¿Cómo accedo a Supabase Studio?
Studio corre en una ruta aparte. Una vez el servicio está arriba, Pier muestra la URL en la página del servicio. El login usa las credenciales del dashboard que Pier generó.
¿Puedo migrar de Supabase hosted a self-hosted en Pier?
Sí — `supabase db dump` del lado hosted, `supabase db push` en el lado self-hosted. Los schemas y políticas RLS portan limpiamente.
¿Extensiones Postgres disponibles?
pg_graphql, pg_net, pgsodium, pgjwt, pgvector, postgis, pg_cron, pgaudit, http, plpgsql_check, pg_stat_statements — todas preinstaladas en la imagen Supabase.
¿Backups?
Pier respalda el Postgres subyacente en horario. Los ficheros de objetos de Storage requieren manejo aparte — respalda el volumen storage.

Servicios relacionados

Desplegar en tu VPS

Supabase es un backend-as-a-service open-source construido sobre PostgreSQL. Empaqueta autenticación, APIs REST + GraphQL instantáneas desde tu schema, suscripciones en tiempo real, almacenamiento de ficheros, edge functions y pgvector — todo corriendo sobre extensiones de Postgres. Pier despliega todo el stack como un servicio de un clic.

Desplegar este servicio →