Directus vs Supabase en 2026: Elegir tu Backend
Directus vs Supabase en 2026: Elige tu backend
He entregado proyectos tanto en Directus como en Supabase durante los últimos tres años. Cada vez que alguien me pregunta "¿cuál debería elegir?", mi respuesta es la misma: depende de lo que estés construyendo. No es una evasión -- estas dos herramientas genuinamente sirven para propósitos primarios diferentes, aunque se superponen de formas sorprendentes. Directus es un CMS headless que envuelve cualquier base de datos SQL en una hermosa interfaz de administración y API REST/GraphQL. Supabase es una alternativa a Firebase construida sobre PostgreSQL que te da autenticación, suscripciones en tiempo real, almacenamiento y funciones edge. ¿La superposición? Ambas te dan una base de datos, ambas te dan una API, y ambas tienen un panel para administrar datos. Pero la filosofía detrás de cada una es fundamentalmente diferente, y esa filosofía moldea cada decisión que tomarás después.
Déjame guiarte a través de lo que he aprendido construyendo con ambas en producción.
Tabla de contenidos
- Filosofía e identidad central
- Base de datos y modelado de datos
- Comparación de capas de API
- Experiencia de gestión de contenido
- Autenticación y autorización
- Capacidades en tiempo real
- Auto-hospedaje e infraestructura
- Desglose de precios 2026
- Experiencia del desarrollador
- Cuándo usar cada uno
- Preguntas frecuentes

Filosofía e identidad central
Directus se llama a sí mismo una "plataforma de datos" pero seamos realistas -- es un CMS headless en su núcleo. Toma tu base de datos SQL existente (PostgreSQL, MySQL, MariaDB, MS SQL, SQLite, Oracle, CockroachDB) y coloca una interfaz de gestión de contenido encima. La idea clave: Directus no es dueño de tu esquema de datos. Puedes apuntarlo a una base de datos existente y hará introspección de las tablas y relaciones automáticamente. Eso es poderoso si ya tienes una base de datos y necesitas una capa de administración.
Supabase es un Backend-as-a-Service (BaaS). Es PostgreSQL con baterías incluidas: autenticación, almacenamiento de archivos, suscripciones en tiempo real, funciones edge, e incrustaciones vectoriales para cargas de trabajo de IA. Supabase asume que estás construyendo una aplicación, no gestionando contenido. El panel está diseñado para desarrolladores, no para editores de contenido.
Esta diferencia filosófica importa más que cualquier comparación de características. Si estás construyendo un sitio impulsado por contenido donde los editores necesitan publicar publicaciones de blog, gestionar medios y previsualizar cambios -- Directus está específicamente diseñado para eso. Si estás construyendo una aplicación SaaS donde los usuarios se registran, almacenan datos e interactúan en tiempo real -- Supabase está construida para eso.
Pero la mayoría de los proyectos reales no son tan claros. Y ahí es donde las cosas se ponen interesantes.
Base de datos y modelado de datos
Directus
Directus utiliza un enfoque "database-first". Defines tu esquema a través de la interfaz de Directus o directamente en tu base de datos -- ambas funcionan. La aplicación de administración genera automáticamente formularios, relaciones y validación basados en tu esquema. ¿Quieres una relación many-to-many entre articles y tags? Crea la tabla de unión (o deja que Directus la cree), y la interfaz de administración automáticamente renderiza un bonito selector de etiquetas.
Una cosa que aprecio: Directus no crea su propia capa de abstracción sobre tus tablas. Los nombres de tus tablas, nombres de columnas y relaciones son exactamente lo que definiste. Las tablas del sistema (prefijadas con directus_) se sientan junto a tus datos pero no interfieren con ellos.
Bases de datos soportadas en 2026:
- PostgreSQL 12+
- MySQL 8+
- MariaDB 10.5+
- MS SQL 2019+
- SQLite 3+
- CockroachDB 22+
- Oracle 19c+
Supabase
Supabase es PostgreSQL. Punto. Obtienes una instancia completa de Postgres con extensiones como PostGIS, pgvector, pg_cron, y cientos de otras. La gestión de esquema ocurre a través del editor SQL del panel, su interfaz de editor de tablas, o migraciones a través de la CLI de Supabase.
El flujo de migración en Supabase ha madurado significativamente. La CLI genera archivos de migración, y puedes usar supabase db diff para capturar cambios de esquema hechos a través del panel. En 2026, también han agregado ramificación -- ramas de base de datos que te permiten probar cambios de esquema en aislamiento antes de fusionarse a producción.
-- Ejemplo de migración Supabase
create table public.articles (
id uuid default gen_random_uuid() primary key,
title text not null,
slug text unique not null,
content jsonb,
published_at timestamptz,
author_id uuid references auth.users(id),
created_at timestamptz default now()
);
alter table public.articles enable row level security;
create policy "Published articles are viewable by everyone"
on public.articles for select
using (published_at is not null and published_at <= now());
El modelo de Row Level Security (RLS) es tanto el superpoder de Supabase como su curva de aprendizaje más pronunciada. Más sobre eso después.
| Característica | Directus | Supabase |
|---|---|---|
| Motor de base de datos | PostgreSQL, MySQL, MariaDB, MS SQL, SQLite, CockroachDB, Oracle | PostgreSQL solo |
| Gestión de esquema | GUI + SQL directo | GUI + editor SQL + migraciones CLI |
| Ramificación de base de datos | No integrado (usa instancias separadas) | Sí (nativa, desde finales de 2024) |
| Extensiones | Depende de la BD elegida | 60+ extensiones Postgres |
| Soporte Vector/IA | A través de extensiones | pgvector integrado |
| Acceso directo a BD | Acceso completo siempre | Acceso completo siempre |
Comparación de capas de API
APIs de Directus
Directus genera automáticamente APIs REST y GraphQL desde tu esquema. La API REST sigue un patrón predecible:
# Obtener todos los artículos con relación de autor
GET /items/articles?fields=*,author.name&filter[status][_eq]=published&sort=-published_at&limit=10
El sistema de filtrado es expresivo. Puedes hacer filtros relacionales anidados, agregación, e incluso consultas geográficas. El SDK envuelve todo esto bien:
import { createDirectus, rest, readItems } from '@directus/sdk';
const client = createDirectus('https://your-instance.com').with(rest());
const articles = await client.request(
readItems('articles', {
fields: ['*', { author: ['name', 'avatar'] }],
filter: { status: { _eq: 'published' } },
sort: ['-published_at'],
limit: 10,
})
);
El SDK de TypeScript en Directus 11 (estable actual a partir de 2026) ha mejorado mucho en inferencia de tipos, aunque aún necesitas generar tipos de tu esquema para seguridad de tipos completa.
APIs de Supabase
Supabase genera una API REST a través de PostgREST y proporciona una biblioteca de cliente JavaScript que se siente más como un ORM:
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
const { data: articles, error } = await supabase
.from('articles')
.select('*, author:profiles(name, avatar_url)')
.eq('status', 'published')
.order('published_at', { ascending: false })
.limit(10);
Supabase no ofrece GraphQL de forma predeterminada. Tuvieron pg_graphql por un tiempo, y aún está disponible como una extensión, pero la DX primaria es su cliente JS y la API REST. Honestamente? No echo de menos GraphQL cuando uso Supabase. La sintaxis select con unión de relaciones cubre el 95% de los casos de uso.
Un área donde Supabase se adelanta: suscripciones en tiempo real sobre WebSockets y funciones edge para lógica del lado del servidor. Directus tiene Flows (su motor de automatización), pero no es lo mismo que tener un runtime de función serverless completo.

Experiencia de gestión de contenido
Aquí es donde Directus absolutamente domina. Ni siquiera es cercano.
La aplicación de administración de Directus está diseñada para equipos de contenido. Obtienes:
- Diseños personalizados: tableros kanban, calendarios, mapas, vistas divididas para exploración de colecciones
- Editores WYSIWYG y de bloques: El editor de bloques en Directus 11 es genuinamente bueno
- Soporte de traducción: Internacionalización integrada con interfaces de traducción lado a lado
- Historial de revisión: Control de versiones de contenido completo con vistas de diferencias
- Vista previa en vivo: Configura URLs de vista previa para que los editores vean cambios antes de publicar
- Permisos granulares: Control de acceso basado en roles hasta campos individuales
- Paneles personalizados: Paneles de análisis e información general para equipos de contenido
El editor de tablas de Supabase es... un editor de tablas. Es excelente para desarrolladores que quieren una GUI para su base de datos. Es terrible para un equipo de marketing que necesita actualizar una sección héroe de una página de inicio. Si estás construyendo un sitio impulsado por contenido y tus editores tocarán el backend directamente, Directus gana por defecto.
He visto equipos intentar construir una interfaz de administrador personalizada en Supabase para edición de contenido. Funciona, pero esencialmente estás construyendo un CMS desde cero. Eso es meses de trabajo que Directus te da en el día uno.
Si buscas una configuración adecuada de CMS headless para tu sitio, nuestro equipo trabaja regularmente con Directus en proyectos de CMS headless -- es una de nuestras recomendaciones principales para sitios con mucho contenido.
Autenticación y autorización
Autenticación Supabase
Supabase Auth es un sistema de autenticación completamente funcional. Email/contraseña, enlaces mágicos, OAuth (Google, GitHub, Apple, etc.), teléfono/SMS, y SSO SAML están todos integrados. Se integra directamente con la Row Level Security de PostgreSQL, lo que significa que tus reglas de autenticación viven en la base de datos misma.
-- Solo permitir a los usuarios leer sus propios perfiles
create policy "Users can view own profile"
on profiles for select
using (auth.uid() = id);
-- Permitir a los usuarios actualizar su propio perfil
create policy "Users can update own profile"
on profiles for update
using (auth.uid() = id);
Este modelo es elegante una vez que lo entiendes, pero las políticas RLS pueden volverse complejas rápidamente. Depurar por qué una consulta devuelve resultados vacíos debido a una política faltante es una de esas alegrías que aprendes a aceptar.
Autenticación Directus
Directus maneja la autenticación de sus propios usuarios de administración y también soporta SSO externo a través de OpenID Connect, SAML, LDAP, y OAuth2. Para usuarios de aplicaciones front-end, típicamente usarías el sistema de usuarios de Directus con roles personalizados.
El modelo de permisos en Directus es dirigido por GUI. Creas roles, luego para cada rol configuras permisos CRUD por colección, opcionalmente con reglas de nivel de campo e item. Es más visual y argumentablemente más fácil de razonar que las políticas RLS, pero menos flexible para lógica de aplicación compleja.
Para aplicaciones donde la autenticación de usuario final es la preocupación principal (piensa en aplicaciones SaaS), el sistema de autenticación de Supabase es significativamente más maduro. Para administrar el acceso del equipo de contenido, el sistema de roles de Directus es más apropiado.
Capacidades en tiempo real
El motor en tiempo real de Supabase está listo para producción y maneja presencia, transmisión y oyentes de cambios de base de datos:
const channel = supabase
.channel('articles')
.on('postgres_changes', {
event: 'INSERT',
schema: 'public',
table: 'articles',
}, (payload) => {
console.log('New article:', payload.new);
})
.subscribe();
Esto es genuinamente útil para aplicaciones de chat, herramientas colaborativas, paneles en vivo, y sistemas de notificación.
Directus agregó soporte para WebSocket y tiene suscripciones en tiempo real a través de su punto final de suscripción GraphQL. Funciona, pero no es el mismo nivel de madurez. Realtime de Directus es correcto para escenarios de "notifícame cuando cambie el contenido" pero no está construido para aplicaciones colaborativas de alta frecuencia.
Auto-hospedaje e infraestructura
Ambas herramientas son de código abierto y pueden ser auto-hospedadas.
Directus es una aplicación Node.js distribuida como un paquete npm e imagen Docker. El auto-hospedaje es directo -- apúntalo a tu base de datos, configura variables de entorno, y estás ejecutando. Lo he desplegado en Railway, Fly.io, AWS ECS, e instancias VPS simples sin problemas.
Supabase el auto-hospedaje es más complicado. La pila completa incluye PostgreSQL, PostgREST, GoTrue (auth), Realtime, Storage, Kong (puerta de enlace API), y el panel Studio. Su configuración Docker Compose funciona para desarrollo, pero el auto-hospedaje en producción requiere más conocimiento operacional. La mayoría de los equipos optan por la plataforma hospedada de Supabase y se ahorran la sobrecarga operacional.
| Aspecto | Auto-hospedaje Directus | Auto-hospedaje Supabase |
|---|---|---|
| Complejidad | Bajo-medio (aplicación Node.js única + BD) | Alto (7+ servicios) |
| Soporte Docker | Imagen oficial, simple | Docker Compose, complejo |
| Recursos mín. | 1 vCPU, 1GB RAM | 4 vCPU, 8GB RAM (todos los servicios) |
| Guías comunitarias | Extensas | Crecientes pero menos maduras |
| Alternativa gestionada | Directus Cloud | Plataforma Supabase |
Desglose de precios 2026
Hablemos de dinero. Estos son precios publicados actuales a partir de principios de 2026.
Directus Cloud
| Plan | Precio | Incluye |
|---|---|---|
| Community (auto-hospedado) | Gratis | Todo, auto-gestionado |
| Standard | $99/mes | 1 proyecto, 100K solicitudes de API, 5GB de activos |
| Professional | $399/mes | Dominio personalizado, más recursos, soporte prioritario |
| Enterprise | Personalizado | SSO, SLA, infra dedicada |
Plataforma Supabase
| Plan | Precio | Incluye |
|---|---|---|
| Free | $0 | 500MB BD, 1GB almacenamiento, 50K usuarios auth, 500K invocaciones de funciones edge |
| Pro | $25/mes | 8GB BD, 100GB almacenamiento, 100K usuarios auth, 2M invocaciones de funciones edge |
| Team | $599/mes | Soporte prioritario, SOC2, copias de seguridad diarias, retención de logs 28 días |
| Enterprise | Personalizado | SLA, soporte dedicado, contratos personalizados |
La diferencia de precio es cruda. El nivel gratuito de Supabase es genuinamente utilizable para proyectos secundarios y MVPs. El punto de entrada de Directus Cloud en $99/mes es empinado para experimentación -- pero auto-hospedar Directus en una VPS de $5/mes funciona perfectamente bien para proyectos pequeños.
Para una startup construyendo una aplicación, el plan Pro de Supabase de $25/mes te da mucho. Para una empresa ejecutando un sitio con mucho contenido, Directus auto-hospedado más una instancia PostgreSQL gestionada podría costar $20-50/mes total.
Experiencia del desarrollador
Construyo muchos proyectos Next.js y sitios Astro, así que la integración de frameworks me importa mucho.
DX de Directus
- El SDK de TypeScript es bueno, mejorando con cada versión
- Los tipos de esquema pueden generarse desde tu instancia
- Sistema de extensiones para puntos finales personalizados, hooks, paneles e interfaces
- Flows (automatización visual) puede reemplazar lógica de backend simple
- La aplicación de administración es personalizable con módulos y diseños personalizados
- Transformaciones de imagen integradas en la API de entrega de activos
DX de Supabase
- Tipos de TypeScript auto-generados desde tu esquema (
supabase gen types typescript) - Desarrollo local con
supabase start(ejecuta todo en Docker) - Edge Functions (basadas en Deno) para lógica del lado del servidor
- Búsqueda vectorial integrada con pgvector para características de IA
- Flujo dirigido por CLI con migraciones, ramificación, y CI/CD
- Integración Vercel/Netlify para sincronización de variables de entorno
Ambas tienen documentación sólida. Los documentos de Supabase están particularmente bien organizados con guías específicas de frameworks (Next.js, Nuxt, SvelteKit, Flutter, etc.). Los documentos de Directus son exhaustivos pero a veces se quedan atrás de los cambios más recientes del SDK.
Cuándo usar cada uno
Después de construir extensivamente con ambas, aquí está mi marco de decisión:
Elige Directus cuando:
- Los editores de contenido necesitan una interfaz de administración pulida
- Estás construyendo un sitio de marketing, blog, o plataforma editorial
- Necesitas gestión de contenido multilingüe
- Tu base de datos existente necesita una interfaz de administración
- Los flujos de trabajo de contenido (borradores, revisiones, aprobaciones) son importantes
- Quieres usar MySQL, MariaDB, u otra base de datos que no sea PostgreSQL
Elige Supabase cuando:
- Estás construyendo una aplicación orientada al usuario (SaaS, marketplace, social)
- Necesitas autenticación y gestión de usuarios
- Las características en tiempo real son un requisito central
- Quieres funciones edge para lógica del lado del servidor
- Búsqueda de IA/vector es parte de tu hoja de ruta
- Quieres el camino más rápido desde la idea a la aplicación desplegada
Usa ambas cuando:
Esto no es una locura. He construido sistemas donde Supabase maneja la autenticación de usuarios, datos de aplicación y características en tiempo real, mientras que Directus gestiona el contenido del sitio de marketing, blog y documentación. Pueden compartir la misma instancia de PostgreSQL o usar bases de datos separadas. La separación de preocupaciones en realidad hace la arquitectura más limpia.
Si estás intentando averiguar la arquitectura de backend correcta para tu proyecto, eso es literalmente lo que hace nuestro equipo -- siéntete libre de contactarnos y hablar a través de tu situación específica.
Preguntas frecuentes
¿Puede Directus reemplazar Supabase como backend para aplicaciones web? Parcialmente. Directus te da una API de base de datos y gestión de usuarios, así que para aplicaciones CRUD simples, puede funcionar. Pero te faltarán el sistema de autenticación integrado de Supabase, suscripciones en tiempo real, funciones edge, y servicio de almacenamiento de archivos. Directus está optimizado para gestión de contenido, no cargas de trabajo de backend de aplicación. Para una aplicación simple con principalmente operaciones de contenido, Directus está bien. Para cualquier cosa con flujos de autenticación de usuario, características en tiempo real, o lógica compleja del lado del servidor, querrás Supabase u un BaaS similar.
¿Es Supabase bueno como CMS headless? Puede funcionar como uno, pero requiere trabajo personalizado significativo. Necesitarías construir tu propia interfaz de administrador para editores de contenido, manejar transformaciones de imagen por separado, implementar control de versiones de contenido manualmente, y crear tu propio sistema de vista previa. Los equipos han hecho esto con herramientas como Supabase + paneles de administrador React personalizados, pero estás reinventando lo que Directus (o Strapi, o Payload) te da de forma inmediata. Si la gestión de contenido es tu necesidad principal, usa un CMS headless dedicado.
¿Cuál es mejor para una aplicación Next.js?
Ambas se integran bien con Next.js. Supabase tiene ayudantes oficiales de Next.js (@supabase/ssr) que manejan la gestión de cookies de autenticación en componentes de servidor y middleware. Directus funciona excelente con Next.js también -- buscas datos a través del SDK en componentes de servidor y usas ISR o SSG para rendimiento. Para un sitio de marketing con un blog, emparearía Next.js con Directus. Para una aplicación SaaS con cuentas de usuario, Next.js con Supabase. Cubrimos esto en profundidad en nuestra práctica de desarrollo Next.js.
¿Puedo auto-hospedar tanto Directus como Supabase gratis? Sí. Ambas son de código abierto con licencias permisivas (Directus usa una licencia BSL 1.1 que se convierte en Apache 2.0 después de 3 años; Supabase usa Apache 2.0 para la mayoría de componentes). Directus es más fácil de auto-hospedar -- es una aplicación Node.js única. El auto-hospedaje de Supabase requiere ejecutar múltiples servicios (PostgreSQL, PostgREST, GoTrue, Realtime, Storage, Kong). Para Supabase, la mayoría de desarrolladores usan la plataforma hospedada y se ahorran la sobrecarga operacional.
¿Cómo manejan Directus y Supabase almacenamiento de archivos y medios? Directus tiene un sistema integrado de gestión de activos con transformaciones de imagen al vuelo (redimensionar, recortar, conversión de formato). Subes archivos a través de la interfaz de administrador o API, y solicitas versiones transformadas a través de parámetros de URL. Supabase Storage es un servicio de almacenamiento de archivos compatible con S3 con control de acceso basado en RLS. Maneja descargas y subidas bien pero no tiene transformaciones de imagen integradas -- lo emparearía con un servicio como Imgix, Cloudinary, o la transformación de imagen propia de Supabase (que se lanzó como beta en 2025).
¿Qué hay sobre rendimiento y escalabilidad? La infraestructura de Supabase está construida sobre AWS con agrupación de conexiones a través de Supavisor y puede manejar tráfico sustancial. Su plan Pro puede escalar bases de datos hasta instancias de 64GB RAM. El rendimiento de Directus depende en gran medida de tu configuración de hospedaje y base de datos. Con almacenamiento en caché apropiado (Redis, CDN), Directus maneja tráfico alto bien, pero eres responsable de la infraestructura. En benchmarks, ambas pueden manejar miles de solicitudes por segundo con recursos apropiados. El cuello de botella es casi siempre la base de datos, no la capa de API.
¿Es Directus o Supabase mejor para un equipo con miembros no técnicos? Directus, sin pregunta. Su interfaz de administración está diseñada para no-desarrolladores. Puedes crear paneles personalizados, configurar flujos de trabajo de aprobación de contenido, y restringir acceso por rol -- todo sin escribir código. El panel de Supabase es una herramienta de desarrollador. Tu equipo de marketing no va a escribir SQL para actualizar una página de inicio. Si miembros no técnicos del equipo necesitan gestionar datos, la interfaz de Directus es la opción correcta.
¿Puedo migrar de uno a otro después? Como ambas son compatibles con PostgreSQL (y Directus soporta bases de datos adicionales), la migración es factible pero no trivial. Si estás en Directus con PostgreSQL y quieres agregar Supabase, podrías apuntar Supabase a tu base de datos existente o migrar los datos. Las tablas del sistema de Directus y el esquema de autenticación de Supabase necesitarían coexistir o ser separadas. Ir en la otra dirección -- agregar Directus encima de una base de datos Supabase -- es en realidad un patrón bien documentado. Directus puede hacer introspección de tablas existentes y crear su capa de administración sin modificar tu esquema de datos.