Contentful vs Sanity vs Payload: Comparación de CMS Headless 2026
He desarrollado proyectos en producción con los tres CMSes durante los últimos cuatro años. Algunos fueron proyectos desde cero, otros fueron migraciones desde WordPress o sistemas heredados que se estaban desmoronando. Cada vez que un cliente me pregunta "¿qué CMS headless deberíamos usar?", me resisto a dar una respuesta universal — pero tras lanzar decenas de proyectos a lo largo de 2025 y hasta 2026, tengo opiniones firmes respaldadas por cicatrices del mundo real.
Este artículo analiza Contentful, Sanity y Payload CMS en las dimensiones que realmente importan cuando estás construyendo algo real: precios a escala, experiencia del desarrollador en las trincheras, flexibilidad del modelado de contenido, diseño de API y el flujo de trabajo editorial cotidiano que tu equipo de contenido amará u odiará.
Tabla de Contenidos
- Resumen en 30 Segundos
- Desglose de Precios: Lo Que Realmente Pagarás
- Experiencia del Desarrollador
- Modelado de Contenido
- APIs: REST, GraphQL y Todo lo Demás
- Experiencia Editorial
- Autoalojamiento vs SaaS: Los Tradeoffs Reales
- Rendimiento y Escalabilidad
- Ecosistema y Comunidad
- El Veredicto
- FAQ

Resumen en 30 Segundos
Contentful es el incumbente. Existe desde 2013 y potencia sitios empresariales a gran escala. Es pulido, fiable y caro.
Sanity es el favorito de los desarrolladores con su enfoque de contenido estructurado en tiempo real y su studio personalizable. Es potente pero tiene una curva de aprendizaje y un modelo de precios que puede sorprenderte.
Payload es el recién llegado que silenciosamente se ha convertido en un competidor serio. Es de código abierto, autoalojado por defecto (con una opción en la nube ahora), escrito en TypeScript, y cobra cero en tarifas de licencia. En 2025, Payload 3.0 se lanzó con una reescritura completa sobre Next.js, y cambió la ecuación por completo.
| Característica | Contentful | Sanity | Payload |
|---|---|---|---|
| Tipo | SaaS | SaaS (studio autoalojable) | Código Abierto / Autoalojado |
| Lenguaje | N/A (solo API) | JavaScript/React | TypeScript/Next.js |
| Tarifa de Licencia | Sí | Sí (basada en uso) | Ninguna (MIT) |
| GraphQL | Sí | Sí (GROQ preferido) | Sí (generado automáticamente) |
| REST API | Sí | Sí | Sí (generado automáticamente) |
| Colaboración en Tiempo Real | Limitada | Excelente | Buena (2.0+) |
| Autoalojamiento | No | Solo el Studio | Stack completo |
| Base de Datos | Propietaria | Propietaria | MongoDB o Postgres |
Desglose de Precios: Lo Que Realmente Pagarás
Aquí es donde las cosas se ponen serias. Los precios son la razón número uno por la que he visto equipos cambiar de CMS a mitad de un proyecto, y es lo que más se subestima durante la evaluación.
Precios de Contentful (2026)
El nivel gratuito de Contentful te ofrece 1 espacio, 5 usuarios y 25K llamadas a la API. Está bien para un blog.
El plan Basic empieza en $300/mes y ofrece más entornos y roles. El plan Premium — que es lo que la mayoría de los equipos serios necesitan — tiene precio personalizado, pero típicamente empieza alrededor de $2.000-$3.000/mes para organizaciones medianas. He visto contratos empresariales por encima de los $80K al año.
El problema: los cargos por exceso en llamadas a la API. Contentful cobra por separado las llamadas a la Content Delivery API, a la Content Management API y el ancho de banda de activos. En un sitio de alto tráfico con más de 10M de páginas vistas al mes, puedes superar fácilmente las cuotas incluidas. Un cliente con el que trabajé vio su factura mensual saltar de $2.500 a $4.800 tras un lanzamiento de producto viral, debido a excesos en CDN y API que no habían anticipado.
Precios de Sanity (2026)
Sanity usa un modelo basado en uso que llaman "paga a medida que creces". El plan Free incluye 3 usuarios no administradores, 500K solicitudes a la API, 20GB de ancho de banda y 10GB de almacenamiento. Generoso para empezar.
El plan Growth es de $15/usuario/mes más excesos por uso. El plan Enterprise tiene precio personalizado.
Lo que sorprende a la gente sobre los precios de Sanity: las consultas GROQ y las solicitudes a la API CDN se miden, y los costes escalan con la complejidad de tu contenido. Una sola consulta GROQ que obtiene contenido profundamente anidado y referenciado puede consumir más cuota de la esperada. Sanity ha mejorado la transparencia aquí, pero sigo recomendando a los equipos que configuren alertas de presupuesto desde el principio.
Coste típico de un proyecto mediano: $200-$800/mes según el tamaño del equipo y el tráfico.
Precios de Payload (2026)
Payload tiene licencia MIT. El CMS en sí cuesta $0. Para siempre. No hay tarifa por asiento, no se miden las llamadas a la API, no hay cargos de ancho de banda de Payload.
Tus costes son de infraestructura: alojar una aplicación Node.js y una base de datos. En un servicio como Railway, Render, o una configuración básica de AWS/DigitalOcean, estás viendo $20-$100/mes para la mayoría de los proyectos. Incluso un despliegue a gran escala con Postgres gestionado en AWS RDS, un EC2 o ECS correctamente dimensionado, y CloudFront delante raramente supera los $300-$500/mes — y eso es para tráfico serio.
Payload Cloud (su oferta alojada) empieza en $50/mes con planes que escalan según almacenamiento y ancho de banda, pero es completamente opcional.
| Escenario | Contentful | Sanity | Payload (autoalojado) |
|---|---|---|---|
| Desarrollador individual, sitio pequeño | $0 (nivel gratuito) | $0 (nivel gratuito) | $20-40/mes (alojamiento) |
| Equipo de 5, tráfico medio | $300-500/mes | $200-400/mes | $50-100/mes (alojamiento) |
| Equipo de 10, tráfico alto | $2.000-4.000/mes | $500-1.500/mes | $150-400/mes (alojamiento) |
| Empresa, 50+ editores | $5.000-10.000+/mes | $2.000-5.000/mes | $300-800/mes (alojamiento) |
La historia de los precios es inequívoca. Payload gana en costes en cada nivel.
Experiencia del Desarrollador
Los precios atraen a la gente. La experiencia del desarrollador les mantiene — o les aleja.
DX de Contentful
La experiencia del desarrollador de Contentful es... aceptable. El soporte de SDK es amplio (JavaScript, Python, Ruby, Java, Swift, etc.), la documentación es madura, y las APIs REST y GraphQL están bien documentadas.
Pero esto es lo que me frustra: todo se configura a través de la interfaz web. Tipos de contenido, campos, validaciones — todo es clic-clic-clic en el navegador. Sí, puedes usar el CLI de Contentful y scripts de migración para versionar tu esquema, pero se siente como algo añadido a posteriori. No es código primero; es interfaz primero con una vía de escape al código.
Las herramientas de migración han mejorado con su paquete contentful-migration, pero comparado con definir tu esquema en TypeScript y obtener seguridad de tipos instantánea, se siente una generación por detrás.
DX de Sanity
La experiencia del desarrollador de Sanity es genuinamente excelente en muchos aspectos. El esquema se define en archivos JavaScript/TypeScript. El studio es una aplicación React que puedes personalizar extensamente — componentes de entrada personalizados, vistas personalizadas, plugins de flujo de trabajo.
GROQ, su lenguaje de consulta, es potente una vez que lo aprendes. Pero "una vez que lo aprendes" hace mucho trabajo pesado en esa frase. GROQ no es SQL. No es GraphQL. Es algo propio, y cada nuevo desarrollador de tu equipo necesita aprenderlo. He visto a desarrolladores junior luchar con las proyecciones GROQ durante semanas.
// Consulta GROQ - sintaxis potente pero única
*[_type == "post" && publishedAt < now()] | order(publishedAt desc) [0...10] {
title,
slug,
"author": author->{ name, image },
"categories": categories[]->{ title, slug },
body[] {
...,
_type == "image" => {
"url": asset->url
}
}
}
Sin embargo, las funciones en tiempo real de Sanity son increíbles. Múltiples editores trabajando en el mismo documento con indicadores de presencia y sin conflictos al guardar — simplemente funciona. La arquitectura de content lake lo hace posible de maneras que los competidores no pueden igualar.
DX de Payload
Payload 3.0 lo cambió todo. Construido sobre Next.js, escrito completamente en TypeScript, con tu archivo de configuración como única fuente de verdad. Defines colecciones, campos, hooks, control de acceso y endpoints personalizados, todo en código.
Así es como se ve una colección típica de Payload:
import { CollectionConfig } from 'payload'
export const Posts: CollectionConfig = {
slug: 'posts',
admin: {
useAsTitle: 'title',
defaultColumns: ['title', 'status', 'publishedAt'],
},
access: {
read: () => true,
create: ({ req: { user } }) => Boolean(user),
update: ({ req: { user } }) => Boolean(user),
delete: ({ req: { user } }) => user?.role === 'admin',
},
fields: [
{
name: 'title',
type: 'text',
required: true,
},
{
name: 'content',
type: 'richText',
},
{
name: 'author',
type: 'relationship',
relationTo: 'users',
},
{
name: 'status',
type: 'select',
options: ['draft', 'published'],
defaultValue: 'draft',
},
{
name: 'publishedAt',
type: 'date',
admin: {
position: 'sidebar',
},
},
],
hooks: {
beforeChange: [
({ data, operation }) => {
if (operation === 'create') {
data.publishedAt = new Date()
}
return data
},
],
},
}
Todo está tipado. Tu IDE autocompleta los nombres de los campos. Los hooks te dan control del ciclo de vida. El control de acceso se define como funciones justo al lado de tus campos, no en alguna interfaz de permisos separada. Y como es simplemente una aplicación Next.js, puedes añadir páginas personalizadas, rutas de API o server actions junto a tu código de CMS.
Para equipos que hacen desarrollo en Next.js, Payload 3.0 es una elección obvia desde la perspectiva de DX. Tu CMS y tu frontend viven en el mismo proyecto. Mismo despliegue. Mismo repositorio.

Modelado de Contenido
El modelado de contenido es donde te preparas para el éxito o creas una pesadilla con la que vivirás durante años.
El Enfoque de Contentful
Contentful usa un modelo tradicional de tipo de contenido → entrada. Defines tipos de contenido con campos y los editores crean entradas. Las referencias entre tipos de contenido son explícitas. Funciona bien para estructuras de contenido sencillas.
Las limitaciones aparecen con el texto enriquecido. El campo de texto enriquecido de Contentful almacena el contenido como un árbol JSON estructurado, lo cual es excelente para la flexibilidad de renderizado, pero modelar diseños de página complejos con componentes anidados requiere un uso creativo de entradas y referencias incrustadas. Puede volverse engorroso.
Contentful admite 50 tipos de contenido en el plan Basic y más de 100 en Premium. Para sitios grandes con muchos tipos de contenido, esto puede convertirse en una limitación.
El Enfoque de Sanity
El modelado de contenido de Sanity es posiblemente el más flexible de los tres. Su block content (Portable Text) es una especificación abierta para texto enriquecido que almacena el contenido como datos estructurados. Puedes definir tipos de bloques personalizados, objetos en línea y anotaciones.
El sistema de esquemas admite tipos de objetos profundamente anidados, campos condicionales y validación personalizada. He construido modelos de contenido genuinamente complejos en Sanity que serían dolorosos en Contentful.
// Esquema de Sanity con personalización de Portable Text
export default {
name: 'post',
type: 'document',
fields: [
{
name: 'body',
type: 'array',
of: [
{ type: 'block',
marks: {
annotations: [
{ name: 'internalLink', type: 'object',
fields: [{ name: 'reference', type: 'reference', to: [{ type: 'post' }] }]
}
]
}
},
{ type: 'image', options: { hotspot: true } },
{ type: 'codeBlock' },
{ type: 'callout' },
]
}
]
}
El Enfoque de Payload
El modelado de contenido de Payload se sitúa en algún punto entre la simplicidad estructurada de Contentful y la flexibilidad libre de Sanity — pero con la ventaja de estar completamente en TypeScript.
El campo blocks de Payload es especialmente potente para la construcción de páginas. Defines tipos de bloques, cada uno con sus propios campos, y los editores pueden componer páginas a partir de estos bloques. Combinado con el tipo de campo layout y la lógica condicional, puedes modelar casi cualquier cosa.
El editor de texto enriquecido Lexical de Payload 3.0 es destacable. Reemplazó a Slate (que estaba bien pero envejeciendo) con un editor moderno que admite nodos personalizados, bloques en línea y renderizado del lado del servidor de forma nativa. Puedes incrustar componentes React directamente en el contenido de texto enriquecido.
El sistema de versiones también merece mención. Payload te ofrece flujos de trabajo de borrador/publicación e historial completo de versiones de documentos con comparación de diferencias. Esto está integrado, no es un complemento de pago.
APIs: REST, GraphQL y Todo lo Demás
APIs de Contentful
Contentful ofrece APIs separadas para entrega (con caché CDN, solo lectura), vista previa (sin caché, contenido en borrador), gestión (CRUD) e imágenes. La separación es sensata pero significa que manejas múltiples tokens de API y URLs base.
Su API GraphQL es sólida pero tiene limitaciones de profundidad y límites de velocidad que pueden ser frustrantes al modelar contenido con referencias profundas. Las consultas complejas pueden requerir múltiples viajes de ida y vuelta.
APIs de Sanity
El lenguaje de consulta principal de Sanity es GROQ, servido sobre HTTP. Ofrecen una API GraphQL, pero se despliega por separado y se siente como un ciudadano de segunda clase. GROQ es de todas formas más potente para la mayoría de los casos de uso de Sanity.
La verdadera magia es la API de escucha en tiempo real de Sanity. Puedes suscribirte a cambios en cualquier consulta y recibir actualizaciones instantáneas. Esto permite experiencias de vista previa en vivo que son genuinamente impresionantes.
APIs de Payload
Payload genera automáticamente APIs REST y GraphQL a partir de las configuraciones de tus colecciones. Sin configuración adicional. Define una colección, obtén endpoints CRUD completos para REST y GraphQL al instante.
# Consulta GraphQL generada automáticamente
query {
Posts(where: { status: { equals: published } }, sort: "-publishedAt", limit: 10) {
docs {
id
title
content
author {
name
}
publishedAt
}
totalDocs
hasNextPage
}
}
Pero aquí es donde Payload tiene una ventaja única: como se ejecuta en el mismo proceso que tu aplicación Next.js, puedes omitir la API por completo y usar la API Local de Payload para la obtención de datos del lado del servidor. Consultas directas a la base de datos con el mismo control de acceso, hooks y validación — pero con cero sobrecarga HTTP.
// API Local - sin HTTP, sin sobrecarga de serialización
const posts = await payload.find({
collection: 'posts',
where: { status: { equals: 'published' } },
sort: '-publishedAt',
limit: 10,
})
Esto supone una enorme ganancia de rendimiento para las páginas renderizadas en el servidor. Sin viaje de red a una API de CMS. Solo una llamada a función.
Experiencia Editorial
Los desarrolladores eligen el CMS, pero los editores viven en él a diario. Ignorar su experiencia tiene consecuencias.
Contentful tiene la interfaz editorial más madura. Es limpia, predecible, y tu equipo no técnico la aprenderá rápidamente. La programación, los flujos de trabajo y las cadenas de aprobación en el plan Premium son sólidos. Sin embargo, puede sentirse rígido — personalizar la interfaz editorial requiere construir una Contentful App, que es toda una aplicación React separada.
Sanity Studio es el más personalizable. Puedes construir experiencias de edición completamente a medida. Pero esa personalización tiene un coste: de serie, Sanity Studio puede resultar abrumador para editores no técnicos. El constructor de estructura requiere tiempo de desarrollo para configurarse bien.
El panel de administración de Payload ha mejorado drásticamente en la versión 3.0. Es limpio, rápido (es una aplicación Next.js) y admite componentes personalizados, renderizado condicional de campos y vista previa en vivo. No está tan pulido como la interfaz de Contentful, pero es más personalizable con menos esfuerzo que Contentful y más accesible de serie que Sanity.
Autoalojamiento vs SaaS: Los Tradeoffs Reales
Esta es la división filosófica. Contentful y Sanity son plataformas SaaS. Tú no gestionas la infraestructura; les pagas a ellos para que lo hagan. Payload es autoalojado por defecto.
El argumento SaaS: menos carga operativa, CDN integrada, tiempo de actividad gestionado. Estas son ventajas reales, especialmente para equipos pequeños sin experiencia en DevOps.
El argumento del autoalojamiento: propiedad de los datos, sin bloqueo de proveedor, costes predecibles, cumplimiento normativo (GDPR, HIPAA, residencia de datos) y libertad para personalizar cualquier cosa.
Para agencias como la nuestra que hacen desarrollo de CMS headless, el autoalojamiento se ha convertido en la recomendación para la mayoría de los clientes en 2026. Las herramientas de infraestructura han madurado hasta el punto en que desplegar una aplicación Payload en Railway, Vercel o AWS es sencillo. Docker lo hace reproducible. Y el ahorro de costes frente a un CMS SaaS se acumula año tras año.
Si te preocupa la carga operativa, Payload Cloud se encarga del alojamiento mientras mantiene los beneficios del código abierto.
Rendimiento y Escalabilidad
La API de entrega respaldada por CDN de Contentful es rápida. Los tiempos de respuesta típicos son de 50-100ms desde los nodos edge. Ha sido probada a escala durante una década.
La API CDN de Sanity ofrece un rendimiento similar para el contenido en caché, con su capa en tiempo real añadiendo quizás 20-30ms para las consultas en vivo.
El rendimiento de Payload depende de tu infraestructura, pero aquí está la clave — cuando usas la API Local con los server components de Next.js, estás haciendo una llamada de función a una base de datos local. Los tiempos de respuesta pueden ser inferiores a 10ms. Añade una CDN delante de tu salida de Next.js (Vercel, CloudFront, etc.) y estás igualando o superando a las opciones SaaS.
Para proyectos basados en Astro, los tres funcionan bien como fuentes de API, pero las APIs REST y GraphQL de Payload son particularmente sencillas de consumir en la capa de obtención de datos de Astro.
Ecosistema y Comunidad
Contentful tiene el ecosistema empresarial más grande. Toneladas de integraciones, un marketplace de aplicaciones y amplio soporte de agencias.
Sanity tiene una comunidad de desarrolladores apasionada, excelente documentación y un ecosistema de plugins en crecimiento. Su Slack de la comunidad es genuinamente útil.
Payload tiene la comunidad de más rápido crecimiento de los tres. Su Discord es extremadamente activo, con el equipo principal respondiendo preguntas con regularidad. El ecosistema de plugins es más pequeño pero crece rápidamente — y como Payload es simplemente Node.js/TypeScript, puedes hacer npm install de lo que necesites.
El GitHub de Payload tiene más de 30K estrellas a principios de 2026 y la trayectoria es pronunciada.
El Veredicto
Seré directo: Payload es el mejor CMS headless para la mayoría de los proyectos en 2026.
Por qué:
- Sin tarifas de licencia a ninguna escala. Tu equipo empresarial de 50 editores no le paga ni un céntimo a Payload.
- Configuración nativa en TypeScript significa que tu modelo de contenido es código, versionado, con seguridad de tipos y revisable en PRs.
- La API Local + integración con Next.js te da un rendimiento que los CMSes SaaS físicamente no pueden igualar.
- Propiedad de los datos — tu contenido vive en tu base de datos, no en el almacén propietario de otra persona.
- Sin bloqueo de proveedor — si quieres cambiar, tus datos están en Postgres o MongoDB. Solo consúltalos.
Hay escenarios donde los otros ganan:
- Elige Contentful si eres una gran empresa con un equipo de contenido establecido que necesita una experiencia editorial pulida y sin operaciones, y tiene el presupuesto.
- Elige Sanity si la colaboración en tiempo real es crítica para tu flujo de trabajo, necesitas el Portable Text sin igual de texto enriquecido estructurado, o estás construyendo una experiencia de studio altamente personalizada.
- Elige Payload para todo lo demás. Startups, agencias, empresas medianas, equipos liderados por desarrolladores, industrias reguladas que necesitan control de datos, y cualquiera que no quiera despertarse con una factura sorpresa.
Si estás evaluando un CMS headless para un nuevo proyecto y quieres hablar sobre los detalles, estaremos encantados de ayudarte. Hemos lanzado proyectos en producción con Payload, Sanity y Contentful, y podemos darte un consejo honesto basado en tus requisitos reales y presupuesto.
FAQ
¿Es Payload CMS realmente gratuito?
Sí. Payload es software de código abierto con licencia MIT. No hay tarifas de licencia, ni cargos por usuario, ni límites de llamadas a la API de Payload. Tus únicos costes son la infraestructura de alojamiento (servidor y base de datos), que típicamente cuesta entre $20-$500/mes según la escala. Payload Cloud está disponible como opción alojada de pago si prefieres no gestionar la infraestructura.
¿Se puede autoalojar Sanity?
Parcialmente. Sanity Studio (la interfaz de administración) es una aplicación React que puedes desplegar en cualquier lugar. Sin embargo, el content lake — donde viven tus datos reales — es un servicio alojado gestionado por Sanity. No puedes autoalojar la capa de datos. Esto significa que tu contenido siempre vive en la infraestructura de Sanity, lo cual puede ser una preocupación para requisitos de residencia de datos o cumplimiento normativo.
¿Qué CMS headless tiene el mejor soporte de GraphQL?
Contentful y Payload ofrecen APIs GraphQL sólidas. Payload genera automáticamente su esquema GraphQL directamente desde las configuraciones de tus colecciones, lo que significa cero mantenimiento manual del esquema. La API GraphQL de Contentful es madura y está bien documentada. Sanity ofrece GraphQL pero prefiere GROQ como lenguaje de consulta principal, y su implementación GraphQL no soporta todas las funciones de GROQ.
¿Vale la pena Contentful en 2026?
Para grandes empresas con operaciones de contenido complejas, flujos de trabajo existentes en Contentful y equipos que valoran el enfoque SaaS sin intervención operativa — sí, puede valer la pena. Para equipos pequeños y medianos, el coste es cada vez más difícil de justificar cuando Payload ofrece funcionalidad comparable (y en algunos aspectos superior) a una fracción del precio. Hemos visto a varios clientes migrar desde Contentful específicamente por motivos de coste.
¿Cómo gestiona Payload CMS la optimización de imágenes?
Payload tiene redimensionado de imágenes y recorte por punto focal integrados. Cuando subes una imagen, Payload puede generar múltiples tamaños automáticamente según tu configuración. En Payload 3.0 con Next.js, puedes combinar esto con la optimización de imágenes de Next.js para servir imágenes responsivas en WebP/AVIF. No es tan rico en funciones como la API de imágenes de Contentful (que ofrece transformaciones basadas en URL), pero cubre el 90% de los casos de uso sin un servicio de terceros.
¿Puedo migrar de Contentful a Payload?
Sí. Como Payload usa bases de datos estándar (Postgres o MongoDB), la migración implica exportar tu contenido de Contentful a través de su Management API e importarlo en colecciones de Payload. La traducción del modelado de contenido de los tipos de contenido de Contentful a las colecciones de Payload suele ser sencilla. Hemos gestionado varias de estas migraciones — la parte más complicada suele ser la conversión del texto enriquecido, no los datos estructurados.
¿Qué CMS es mejor para editores no técnicos?
Contentful tiene la experiencia editorial más intuitiva de serie para usuarios no técnicos. El panel de administración de Payload es un cercano segundo y mejora rápidamente. Sanity Studio puede ser el mejor de los tres si un desarrollador invierte tiempo en personalizarlo, pero la experiencia predeterminada tiene una curva de aprendizaje más pronunciada para los editores.
¿Funciona Payload CMS con otros frameworks además de Next.js?
Absolutamente. Aunque Payload 3.0 usa Next.js como framework para su interfaz de administración, las APIs REST y GraphQL funcionan con cualquier frontend — Astro, Nuxt, SvelteKit, Remix, o incluso aplicaciones móviles. La API Local es específica de Next.js, pero las APIs externas no tienen dependencias de framework. Combinamos regularmente Payload con Next.js y Astro según los requisitos del proyecto.