Arrastrar y soltar visualComponentes personalizadosBloques reutilizablesREST & GraphQLTu CMSTu frontendTus datos
Editor Visual CMS headless
API de contenido
Componentes
Hero
Características
Precios
Testimonios
FAQ
Llamada a la acción
Lienzo
Página web
Borrador · guardado automáticamente a través de tu contenido API
Propiedades
Tipografía
Colores
Espaciado
Disposición
EscritorioTabletaMóvil
Una capa de edición visual sobre una API de contenido existente: la biblioteca de componentes a la izquierda, la página en el lienzo, las propiedades del componente seleccionado a la derecha.
Editor Visual CMS headless
API de contenido
Componentes
Hero
Características
Precios
Testimonios
FAQ
Llamada a la acción
Lienzo
Página web
Borrador · guardado automáticamente a través de tu contenido API
Propiedades
Tipografía
Colores
Espaciado
Disposición
EscritorioTabletaMóvil
Una capa de edición visual sobre una API de contenido existente: la biblioteca de componentes a la izquierda, la página en el lienzo, las propiedades del componente seleccionado a la derecha.
Míralo funcionando
Esta es la superficie de edición que estás añadiendo
La pantalla de arriba es un prototipo de la disposición, dibujado en CSS para que la página no cueste nada. El motor de edición que hay detrás es real y público: abre la demo oficial de GrapesJS, arrastra una sección al lienzo, y estás viendo los mismos controles de lienzo, árbol de componentes y estilo que tu equipo de contenido tendría encima de tu propio CMS.
La demo funciona en grapesjs.com con almacenamiento en el navegador. Nada en ella toca tu contenido.
El valor
Dale a tu CMS headless una experiencia de edición visual
Un CMS headless le da a tu aplicación una base de contenido API en primer lugar. Lo que no siempre aporta a quienes escriben el contenido es una forma de ver la página mientras la construyen.
Los campos estructurados son excelentes para un artículo, un registro de producto o un documento de configuración. No encajan bien con una página cuyo significado es su diseño — una página de campaña, un recorrido de reportajes, una comparación de precios. Para esos, las personas que hacen el trabajo suelen pedir la misma lista corta:
Lo que piden los editores
un lienzo visual
arrastrar y soltar
Secciones de página reutilizables
Edición responsiva
Plantillas
Configuración de componentes
Vista previa en directo
GrapesJS proporciona esa capa de edición visual sin obligarte a cambiar tu CMS.
El CMS headless te da contenido. Tus usuarios siguen necesitando un editor.
Una arquitectura headless separa el contenido de la presentación, por eso mismo deja un hueco de edición: el CMS conoce los campos, el frontend conoce el renderizado y nada intermedio conoce la página. Añadir una capa de edición visual cierra ese hueco sin deshacer ninguno de los lados.
CMS headless tradicional
CMS
Contenido estructurado
API
Frontend
Falta
Edición visual
Arrastrar y soltar
Composición de páginas
Diseño responsivo
CMS headless + GrapesJS
CMS
Contenido estructurado
Editor visual GrapesJS
API
Frontend
La misma pila, con una capa añadida. Nada que esté arriba ni por debajo cambia.
Añade edición visual sin renunciar a la arquitectura headless.
División del trabajo
¿Por qué añadir un editor visual a un CMS headless?
Porque cada una de las tres capas es buena en algo que las otras dos no, y una capa de edición visual es la única que nadie te entrega. Aquí tienes quién es dueño de qué una vez que el editor está en su lugar.
Tu CMS headless
La infraestructura de contenidos que ya gestionas.
Contenido
Datos estructurados
Medios de comunicación
Usuarios
Publicación
APIs
GrapesJS
La capa de edición visual que vas a añadir.
Lienzo visual
Arrastrar y soltar
Componentes
Bloques
Estilo
Edición responsiva
Composición visual de la página
Tu frontend
Sin cambios. Conserva todo lo que poseía antes.
Renderizado
Enrutamiento
Lógica de aplicación
Experiencia de usuario
Despliegue
Mantén la arquitectura. Mejora la experiencia de edición.
Arquitectura
Cómo funciona un editor visual CMS headless
Cuatro capas, en el orden en que pasa una partida guardada. El editor nunca se comunica con tu base de datos ni renderiza tus páginas de producción: lee y escribe un documento a través de un endpoint que controlas.
GrapesJS
La experiencia de edición visual: lienzo, árbol de componentes, bloques, controles de estilo, anchos de dispositivos.
↓
REST / GraphQL
Persistencia a través de REST, GraphQL o tu propio API. Un adaptador de almacenamiento tiene dos funciones: una que carga y otra que guarda.
↓
CMS headless
Tu infraestructura de contenido existente. Mantiene el esquema, la biblioteca multimedia, los usuarios y las reglas de publicación que ya tiene.
↓
API de contenido
El API de entrega que ya leen tus frontends. Añadir un editor añade un escritor, no una segunda fuente de contenido.
La capa de edición se conecta a través del mismo API que tu frontend ya llama. Tanto si ejecutas Strapi, Contentful, Sanity, Directus, Hygraph, Prismic, Payload o un CMS que escribió tu propio equipo, el punto de integración es un par de endpoints que cargan y guardan un documento.
Estas plataformas pueden integrarse a través de sus APIs, con la implementación exacta dependiendo del modelo de contenido de CMS y API. GJS.Market no publica una integración oficial para la mayoría de ellas, y esta página nunca implica lo contrario.
Quédate con tu CMS. Conserva tu frontend. Añade un editor visual mejor.
Compatibilidad
Funciona con el CMS que ya usas
Las tarjetas que aparecen a continuación describen la superficie de integración que ofrece cada plataforma, no una afirmación de soporte. Una de ellas tiene un plugin de almacenamiento comunitario en el catálogo GJS.Market; el resto son integraciones que tú o un socio de implementación construiríais contra su API publicado.
ST
Strapi
REST · GraphQL
Autoalojado, con tipos de contenido que definas. El documento editor suele convertirse en un campo JSON en un tipo de colección de páginas.
CF
Contentful
REST · GraphQL
Entrega y gestión separadas APIs. El editor escribe a través dla API de gestión; tu frontend sigue leyendo el de entrega.
SN
Sanity
GROQ · GraphQL
Portable Text y un almacén de documentos. El documento editor está junto a tus campos existentes en lugar de reemplazarlos.
DR
Directus
REST · GraphQL
La única plataforma de esta lista con un plugin de almacenamiento comunitario ya publicado en GJS.Market.
GraphQL primero, así que el adaptador es una consulta y una mutación en lugar de dos URLs.
PX
Prismic
REST
Contenido basado en slices. Los bloques del editor se asignan limpiamente a los slices cuando mantienes el conjunto de bloques alineado con ellos.
PL
Payload
REST · GraphQL
Colecciones definidas por código, de modo que el campo en el que escribe el editor se declara en el mismo repositorio que el editor.
API
CMS personalizado
REST · GraphQL · Personalizado
Cualquier cosa que pueda responder a una solicitud de carga y aceptar una solicitud de guardado. Dos endpoints es todo el contrato.
El único adaptador con nombre CMS en el catálogo
Directus Storage es un plugin de almacenamiento para GrapesJS gratuito y publicado por la comunidad, extraído del proyecto Silex. Es una referencia realmente útil sobre cómo se construye un adaptador — comandos de autenticación, cargar, guardar — pero su propia ficha señala que apunta a un SDK de Directus antiguo, así que trátalo como un punto de partida que leer, no como un producto soportado que instalar.
Un editor visual solo es útil en una configuración sin interfaz si lo que produce sigue encajando con el esquema que diseñaste. En GrapesJS, un tipo de componente personalizado declara su propio traits editable — y esos traits son donde van los nombres de los campos CMS.
Componente GrapesJS
Bloque visual
Tu esquema de contenido
CMS
Ejemplo práctico
hero-section
CampoTipo
titlecadena
subtitleTexto
imageMedios
buttonObjeto
metadataJSON
Un tipo de componente, el traits que ve un editor, y los campos que ya declara tu entrada CMS — deliberadamente los mismos nombres.
Declarar los mismos campos en el componentejavascript
El editor visual debería adaptarse a tu modelo de contenido, no obligar a tu CMS a adaptarse al editor.
Formato de almacenamiento
¿Qué deberías guardar?
Dos representaciones salen del mismo editor y responden a preguntas diferentes. Una puede reabrirse para editar; la otra puede renderizarse. La mayoría de los montajes de producción mantienen ambos, en columnas diferentes, y eso es una decisión de diseño más que una regla.
El documento del proyecto
Datos de proyecto / componentes
→Fuente editable
→Abrir más tarde
editor.getProjectData()
El árbol de componentes, estilos, páginas y recursos como datos estructurados. Es lo que el editor necesita para reconstruir la sesión exactamente como se dejó, que es la única representación que sobrevive intacta a una segunda ronda de edición.
Úsalo cuando: Alguien volverá a abrir esta página en el editor.
El marcado renderizado
HTML + CSS
→Salida renderizada
→Vista previa / publicación
editor.getHtml() + editor.getCss()
Marcado y hoja de estilo generados a partir del mismo árbol. Es lo que consume una iframe de previsualización, una exportación estática o una cadena de publicación, y no es fiable reimportable como sesión de edición.
Úsalo cuando: Algo más abajo tiene que renderizarlo sin el editor.
Almacena la representación que tu editor necesita para futuras ediciones y genera la salida que requiere tu frontend o pipeline de publicación.
Casos de uso
¿Qué puedes construir con un editor visual CMS headless?
La misma capa de edición, apuntando a diferentes partes de tu producto. Cada una de estas tiene su propia página en GJS.Market, porque cada una plantea diferentes preguntas una vez que superas el propio editor.
Qué viene con el motor, qué añade un plugin y qué sigue siendo el trabajo de tu aplicación. La distinción importa cuando estás definiendo el alcance del trabajo en lugar de leer una lista de funciones.
Arrastrar y soltar — Núcleo GrapesJS
Componentes — Núcleo GrapesJS
Bloques — Núcleo GrapesJS
Gestor de estilos — Núcleo GrapesJS
Edición responsiva — Núcleo GrapesJS
Capas — Núcleo GrapesJS
Recursos — Plugin
Plantillas — Plugin
Vista previa — Tu aplicación
Proporcionado porTu aplicaciónNúcleo GrapesJSPlugin
GrapesJS no entrega CMS, ni hosting, ni cuentas de usuario ni modelo de permisos. Esos se quedan con tu CMS y tu aplicación.
Elección por tipo de contenido
¿Editor CMS o creador de páginas?
Esta no es una decisión que tomes una sola vez para todo el producto. Es una decisión que tomas por tipo de contenido, y la mayoría de los equipos acaban ejecutando ambos.
Editor de contenido estructurado
La edición basada en formularios de tu propio CMS, impulsada por el esquema.
Mejor para
Artículos
Texto
Campos estructurados
Contenido simple
Creador visual de páginas
Un lienzo, donde la disposición es el contenido.
Mejor para
Landing pages
Páginas de marketing
Disposiciones personalizadas
Sitios web visuales
Composición compleja de páginas
Utiliza campos estructurados donde la estructura importa. Utiliza la edición visual donde el diseño y la composición importen.
Flujo de trabajo
Previsualiza el contenido antes de publicarlo
La edición y la publicación son eventos separados, y una configuración headless facilita su aplicación: el borrador del documento y el documento publicado son filas diferentes, leídas por tokens distintos.
1
Borrador CMS
La entrada existe en tu CMS con estatus de reclutamiento.
2
Editor GrapesJS
Alguien compone la página en el lienzo.
3
Vista previa
Tu interfaz representa el borrador en cualquier ancho de dispositivo.
4
Reseña
Una segunda persona lee la página tal y como la verán los visitantes.
5
Aprobar
La aprobación la registra tu aplicación, no el editor.
6
Publicar
Tu CMS promueve el reclutamiento y tu frontend se revalida.
Puerta humana
Entre qué debería poder alternar un revisor
Escritorio
Tableta
Móvil
Borrador
Publicado
Edición separada de la publicación.
Multicanal
Crea una vez. Entrega en todas partes.
Este es el beneficio que ya adquiriste al elegir un CMS headless, y añadir un editor visual no lo gasta — siempre que lo que escriba el editor permanezca en el contenido API en lugar de en una plantilla.
CMS headless
Un contenido, API, leído por cada canal
Páginas
Bloques
Recursos
Sitio web
Next.js
Móvil
React Native
Aplicación
Nuxt
Cada canal interpreta la misma carga útil con su propio renderizador.
Una arquitectura headless permite que la misma infraestructura de contenido sirva a diferentes frontends.
Multiinquilino
Construye un editor CMS headless multiusuario
Si el editor forma parte de un producto y no una herramienta interna, cada organización cliente necesita sus propias páginas, recursos y plantillas — y nunca debe ver las de nadie más.
Tu aplicación
La división se hace cumplir aquí, en el servidor
Organización A
Páginas
Recursos
Plantillas
Permisos
Organización B
Páginas
Recursos
Plantillas
Permisos
Organización C
Páginas
Recursos
Plantillas
Permisos
Un editor, un contenido, API, datos separados por organización.
GrapesJS no ofrece multitenencia propia. El aislamiento entre inquilinos, la marca por inquilino y las reglas de publicación son responsabilidad de tu aplicación, y cada llamada de almacenamiento debe limitarse en el servidor.
Si tus clientes usan el editor, debería parecer parte de tu producto. Los paneles, el conjunto de iconos, la biblioteca de bloques y las plantillas son configurables, y la aplicación que lo rodea proporciona todo lo que el editor no.
Logotipo personalizado
Colores personalizados
Interfaz personalizada
Bloques personalizados
Plantillas personalizadas
Roles
Permisos
Los roles y permisos están en esa lista porque un editor de marca los necesita — no porque el editor los proporcione. Los hace cumplir tu backend.
El motor es un peldaño más del montón. A continuación está toda la escalera, con una etiqueta honesta en cada peldaño: qué viene en GrapesJS en sí, qué puedes comprar o descargar en GJS.Market y qué sigue siendo tu propio trabajo.
Núcleo GrapesJSCódigo abierto
Integración de CMSTu trabajo
BloquesGJS.Market
PlantillasGJS.Market
RecursosGJS.Market
AlmacenamientoGJS.Market
FormulariosGJS.Market
SEOGJS.Market
ExportaciónGJS.Market
PublicaciónGJS.Market
Permisos y auditoríaTu trabajo
Dos peldaños están marcados como tu propio trabajo a propósito. La integración de CMS es específica para tu modelo de contenido, y el catálogo no tiene permisos ni plugin de registro de auditoría — un socio de implementación puede construir ambos, pero ningún producto aquí lo hará.
Fichas reales
Plugins que importan para una configuración sin interfaz
Cada anuncio a continuación se ha comprobado con el catálogo en vivo y es publicado y comprable. Los precios se leen en el mercado en el momento de la compilación, así que lo que ves es lo que dice el anuncio hoy.
Almacenamiento y persistencia
A dónde va el documento del proyecto y qué ocurre cuando un navegador falla antes de que llegue.
Cinco sets iniciales, extraídos de los mismos anuncios verificados. Ninguno de ellos es un paquete que compras con un solo clic — son las combinaciones que siguen apareciendo para cada tipo de producto.
CMS de marketing
Bloques, plantillas, un componente de formulario y un panel SEO — suficiente para un equipo que envía páginas de campaña sin desarrollador.
Un adaptador para leer, recuperación de fallos, una auditoría de accesibilidad y SEO, y renderizado en servidor del documento almacenado. Las pruebas y las pruebas de auditoría siguen siendo trabajo personalizado.
Los precios provienen del catálogo en vivo en el momento de la compilación. Los listados gratuitos están marcados.
Construir vs ampliar
No construyas todas las funciones de CMS tú mismo
Todas las capacidades de la escalera superior son construibles. La cuestión es cuáles merecen la pena para tu equipo cuando ya existe una extensión mantenida.
Construye todo
Extender con plugins
Más desarrollo
Implementación más rápida
Más mantenimiento
Extensiones reutilizables
Construye todas las características
Añade solo lo que necesites
Herramientas internas
Soluciones listas para usar
Empieza con el editor visual. Añade capacidades a medida que tu producto crezca.
Construye un editor CMS headless desde cero frente a GrapesJS
No es una comparación con proveedores, sino una comparación de alcance. Cada fila es un subsistema que necesita un editor visual, y la única pregunta es si tu equipo lo escribe.
Capacidad
Desde cero
GrapesJS
Lienzo
Construir
Incluido
Arrastrar y soltar
Construir
Incluido
Componentes
Construir
Incluido
Bloques
Construir
Extensible
Estilo
Construir
Incluido
Edición responsiva
Construir
Incluido
Capas
Construir
Incluido
Recursos
Construir
Extensible
Plantillas
Construir
Extensible
Almacenamiento
Construir
Extensible
Exportación
Construir
Extensible
"Extensible" significa que el subsistema existe y tiene un punto de extensión — el conjunto de bloques, la biblioteca de plantillas, el backend de recursos, el destino de almacenamiento y el formato de exportación son tuyos para suministrar, ya sea desde el catálogo o desde tu propio código. 2026-09-03 verificado por las afirmaciones del catálogo.
Construye tu producto CMS. No reconstruyas el motor del editor visual.
Objeción
¿Por qué no usar simplemente el editor integrado de mi CMS?
A menudo deberías hacerlo. Un editor integrado ya está integrado, ya tiene permisos y es familiar, y para contenido estructurado suele ser la respuesta correcta. Una capa dedicada a la edición visual se gana su lugar cuando necesitas cosas para las que el editor integrado no fue diseñado:
Edición visual más rica en la propia página
bloques personalizados que coincidan con tu sistema de diseño
Configuraciones responsivas comprobadas en cada ancho de dispositivo
Componentes personalizados vinculados a tus propios tipos de contenido
Integración más profunda con el resto de tu producto
una interfaz de marca blanca que tus clientes pueden usar
Flujos de trabajo personalizados de revisión y publicación
independencia de cualquier frontend concreto
Esto no es una afirmación de que los editores integrados sean inferiores. Es una afirmación de que la superficie de edición y la infraestructura de contenido son decisiones separables.
Quédate con tu CMS. Elige tu propia experiencia de edición.
Implementación
Cómo construir un editor visual CMS headless
1
Paso 1
Define tu modelo de contenido
Decide qué puede crear el editor y en qué tipos de contenido existentes escribe. Esta decisión limita a todos los que siguen, así que hazlo antes de que se escriba cualquier código del editor.
Configura los tipos de componentes, la biblioteca de bloques y los controles de estilo que tienen tus editores — y, igual de importante, los que no tienen.
Renderiza el borrador con tu frontend real, en una ruta a la que solo pueda llegar un revisor autenticado. Cualquier otra cosa es una vista previa de otro sitio.
El editor más pequeño que se comunica con un contenido, API. Dos endpoints, una política autosave y las dos llamadas que te dan representación a cada una.
npm install grapesjs
Inicializa el editor contra tu APIjavascript
import grapesjs from 'grapesjs';
import 'grapesjs/dist/css/grapes.min.css';
const editor = grapesjs.init({
container: '#editor',
height: '100vh',
// Load and save the project through your CMS API. Both endpoints are
// yours: GrapesJS only decides when to call them.
storageManager: {
type: 'remote',
autosave: true,
stepsBeforeSave: 10,
options: {
remote: {
urlLoad: '/api/cms/pages/home',
urlStore: '/api/cms/pages/home',
// Send the session the CMS already issued — never a CMS admin token
// that reached the browser.
fetchOptions: (opts) => ({ ...opts, credentials: 'include' }),
},
},
},
});
// The two representations, whenever you need them.
const project = editor.getProjectData(); // re-openable source
const output = { html: editor.getHtml(), css: editor.getCss() };
Envía la sesión que tu CMS ya emitió. Un token de administración del CMS que llega al navegador es un token de administración que tienen tus visitantes.
A GrapesJS no le importa si el otro extremo es REST, GraphQL o algo que haya inventado tu equipo. Un adaptador de almacenamiento es una función de carga y una función de almacenamiento, y todo lo que hay debajo es una elección que tomas dentro de ellos.
GrapesJS
↓→
Adaptador de almacenamiento
↓→
REST / GraphQL
↓→
CMS headless
Lo que el adaptador tiene que cubrir
Cargar el proyecto
Recupera el documento almacenado de una página y entrégalo al editor al inicio.
Guardar el proyecto
Escríbelo de vuelta, idealmente como una actualización de un borrador en lugar de una entrada publicada.
Guardado automático
Ahorra un recuento de cambios o un temporizador, y haz que el endpoint tolere ser llamado con frecuencia.
Recursos
Sube a través de tu canal de medios y devuelve la URL que debería mostrar el gestor de recursos.
Vista previa
Expone el borrador a tu frontend detrás de un token, y a nadie más.
Publicar
Un punto final separado y autorizado. Nunca es la misma llamada que un guardado.
El mismo adaptador, contra GraphQLjavascript
// A storage adapter is just two functions, so GraphQL needs no extra plugin.
editor.Storage.add('cms', {
async load() {
const res = await gql(`query Page($id: ID!) { page(id: $id) { project } }`);
return res.page.project;
},
async store(data) {
await gql(`mutation Save($id: ID!, $project: JSON!) {
updatePage(id: $id, data: { project: $project }) { id }
}`, { project: data });
},
});
No se publica ningún paquete adaptador GraphQL en GJS.Market — el fragmento anterior es toda la integración, por eso no se necesita ninguno.
Dos funciones son todo el contrato entre un editor visual y una API de contenido.
Producción
Editor CMS headless listo para producción
La lista que un equipo recorre entre un prototipo funcional y algo que los clientes tocan. Nada aquí es exótico; todo se omite al menos una vez.
Editor
✓Ciclo de vida del editor: inicializar y destruir limpiamente al cambiar la ruta
✓Tipos de componentes personalizados registrados antes de que se cargue cualquier proyecto
✓Solo los plugins que este editor realmente utiliza están empaquetados
Datos
✓Persistencia del proyecto probada frente a una API real, no un simulacro
✓Intervalo de guardado automático ajustado y un estado guardado visible
✓Las revisiones se mantuvieron, así que una partida mala se puede recuperar
Contenido
✓Validación de esquema en el servidor antes de que se escriba nada
✓Modelo de contenido documentado y versionado con los tipos de componentes
✓Salida estructurada regenerada al publicar, no almacenada en caché desde el editor
Seguridad
✓Autenticación API en cada carga, guardado y subida
✓Autorización comprobada en el lado del servidor para la página específica
✓Validación de subida: tipo, tamaño y destino
✓Aislamiento de tenant aplicado en la consulta, no en la interfaz
Flujo de trabajo
✓Estado de borrador distinto del estado publicado en el CMS
✓Ruta de vista previa autenticada y excluida de la indexación
✓Paso de revisión grabado con quién y cuándo
✓Publicación de endpoints separados, autorizados y auditables
Seguridad
Consideraciones de seguridad
Un editor visual es una ruta de escritura hacia tu infraestructura de contenido, por lo que hereda todas las reglas que esa ruta ya tenía — y añade subidas de archivos y marcado arbitrario a la superficie.
Autorizar en el servidor
Cada carga, guardado, subido y publicación se comprueba con la sesión, para esa página específica, en el servidor.
Aislar los inquilinos en la consulta
Alcance por tenant en la propia consulta de la base de datos. Un filtro aplicado tras la lectura no es aislamiento.
Autenticar la API
El editor utiliza la sesión que emitió tu CMS. Ningún token de gestión o administrador pertenece al código del navegador.
Validar subidas
Comprueba el tipo, tamaño y destino en el lado del servidor, y sirve el contenido de usuario desde un origen separado donde puedas.
Sanea el contenido
Los editores pueden colocar código personalizado. Decide deliberadamente quién puede hacerlo y limpia lo que se muestra a los visitantes.
Proteger la publicación
Un endpoint separado con su propia comprobación de permisos, así que poder editar no es lo mismo que poder publicar.
Nunca te bases únicamente en permisos del lado del cliente. Ocultar un panel es una decisión de la interfaz de usuario, no un control de seguridad.
Rendimiento
Consideraciones de rendimiento
El runtime del editor es una herramienta de desarrollo y solo pertenece a la ruta de edición. Casi todos los problemas de rendimiento en esta arquitectura provienen de dejar que se filtre en las páginas que cargan los visitantes.
Carga el editor de forma diferida
Importarla en la ruta de edición. Nada en una página orientada al visitante necesita el paquete de edición.
Pagina las bibliotecas de recursos grandes
Una biblioteca multimedia crece sin límite. Paginala y búscala en el lado del servidor en vez de cargarla entera.
Incluye solo los plugins que utilices
Cada plugin registra componentes, comandos y paneles al inicio. Los que no se usan consumen tiempo en cada apertura.
Evita el tiempo de ejecución de las páginas publicadas
La salida publicada debería ser marcado y estilos renderizados por tu frontend, sin que se incluya código de editor.
Caché respuestas API deliberadamente
El API de entrega puede almacenarse en caché completamente; el borrador leído detrás de la vista previa normalmente no puede. Trátalos por separado.
Aquí no se citan tiempos porque no se han medido para esta página. Mide tu propio editor con tu propio conjunto de bloques — la biblioteca de bloques y el número de recursos dominan los números.
¿Quién construye estos
¿Quién construye editores para CMS headless?
Cinco formas recurrentes. Plantean diferentes preguntas sobre la misma arquitectura, y cada una tiene aquí una página que responde a la suya propia.
Es la interfaz que la gente usa para crear contenido en un CMS headless — la capa que se sitúa sobre el contenido API. En una arquitectura headless, la interfaz de edición no está ligada al frontend, por lo que puede ser el editor basado en formularios propio del CMS, un editor visual que añades, o ambos para diferentes tipos de contenido.
¿Qué es un editor visual CMS headless?
Un editor visual es aquel en el que la persona que edita ve la página mientras la compone: un lienzo, secciones arrastrables, controles de estilo y anchos de dispositivos, en lugar de una lista de campos. Sigue escribiendo a través del contenido API, por lo que el contenido permanece sin pantalla.
¿Puedo usar GrapesJS con un CMS headless?
Sí. GrapesJS persiste a través de un adaptador de almacenamiento — una función de carga y una función de almacenamiento que apuntas a tu API. Cualquier CMS que pueda devolver un documento y aceptar una actualización puede hacer una copia de seguridad.
¿Puedo usar GrapesJS con Strapi?
No hay integración oficial con Strapi ni plugin Strapi en GJS.Market. El enfoque habitual es un campo JSON en un tipo de contenido de página, con el adaptador de almacenamiento del editor llamando a REST o GraphQL API de Strapi usando la sesión del llamante.
¿Puedo usar GrapesJS con Contentful?
No existe una integración oficial. Contentful separa su entrega y gestión APIs, por lo que una integración lee la entrega y escribe a través de la gestión desde tu servidor — nunca con un token de gestión expuesto en el navegador.
¿Puedo usar GrapesJS con Sanity?
No existe una integración oficial. El almacén de documentos de Sanity puede almacenar el documento del proyecto del editor junto con tus campos existentes, con el adaptador leyendo y parchear ese documento a través dla API de Sanity.
¿Puedo usar GrapesJS con Directus?
Directus es la única plataforma con un plugin de almacenamiento comunitario publicado en GJS.Market. Es gratuito y útil como referencia, pero su propia ficha indica que apunta a un SDK de Directus antiguo, así que cuenta con actualizar o reescribir parte de él.
¿Puedo usar GrapesJS con Payload?
No existe una integración oficial. Las colecciones de Payload están definidas en código, por lo que el campo en el que escribe el editor puede declararse en el mismo repositorio que el editor, lo que hace que el adaptador sea inusualmente corto.
¿Puedo conectar un CMS personalizado?
Sí, y a menudo es el caso más sencillo. Si tu backend puede responder a una solicitud de carga y aceptar una solicitud de guardado para un documento, puede respaldar al editor. Nada en el editor asume un producto en particular.
¿Puedo usar REST APIs?
Sí. El almacenamiento remoto integrado toma una URL de carga y una URL de almacenamiento, además de tus opciones de obtención, así que una integración con REST puede ser configuración en lugar de código.
¿Puedo usar GraphQL?
Sí. Registra un adaptador de almacenamiento personalizado cuya carga ejecute una consulta y cuyo almacenamiento ejecute una mutación. No se necesita ningún plugin específico para GraphQL, y ninguno se publica en GJS.Market.
¿Puedo almacenar proyectos GrapesJS como JSON?
Sí — el documento del proyecto es un dato estructurado, y normalmente va una columna o campo JSON. Esa es la representación que hay que mantener si la página se vuelve a abrir en el editor.
¿Puedo generar HTML y CSS?
Sí. El editor expone el marcado renderizado y la hoja de estilos del mismo árbol de componentes, que es lo que consume una iframe de previsualización, una exportación estática o una pipeline de publicación.
¿Debería almacenar HTML o datos de proyectos?
Guarda los datos del proyecto si la página se va a editar de nuevo, porque es la única representación que reconstruye fielmente la sesión. Genera el marcado para renderizar y publicar. Muchas configuraciones de producción mantienen ambas cosas, en campos separados.
¿Puedo crear bloques personalizados?
Sí. Los bloques se registran a través del gestor de bloques, y un bloque puede insertar cualquier tipo de componente que hayas definido — incluyendo uno vinculado a tu propio esquema de contenido.
¿Puedo asignar bloques a mi esquema CMS?
Sí. Define un tipo de componente cuyos traits usan tus nombres de campo CMS, y luego haz que el adaptador lea esos traits en una entrada. Mantener los nombres idénticos en ambos lados es lo que hace que el mapeo sea trivial.
¿Puedo crear un generador visual de landing pages?
Sí, y es el primer caso de uso más común. Una página de campaña es donde los campos estructurados son más débiles y un lienzo es más fuerte.
¿Puedo construir un editor CMS multi-inquilino?
Sí, pero la tenencia es de tu aplicación, no del editor. GrapesJS no tiene concepto de tenant; cada llamada de almacenamiento y activo debe ser alcanzada en el servidor.
¿Puedo crear un creador de páginas SaaS?
Sí. Eso significa añadir cuentas, planes, límites y publicar encima del editor — todo lo cual está en tu producto y no en el motor de edición.
¿Puedo crear un editor de marca blanca?
Sí. Los paneles, iconos, estilo, la biblioteca de bloques y las plantillas son configurables, así que el editor puede ser leído como parte de tu propio producto.
¿Puedo añadir mi propia gestión de recursos?
Sí. El gestor de recursos tiene un gancho de subida, así que puede apuntarse a tu canal de medios o CDN. Existen plugins para los uploaders alojados comunes.
¿Puedo crear flujos de trabajo de borrador y publicación?
Sí, usando los estados que ya tiene tu CMS. Sigue publicando detrás de un endpoint autorizado separado para que poder editar no implique poder publicar.
¿Puedo ampliar el editor con plugins?
Sí. Los plugins añaden componentes, bloques, comandos, paneles y objetivos de almacenamiento. El catálogo de GJS.Market abarca bloques, plantillas, recursos, almacenamiento, formularios, SEO, exportación y publicación; los permisos y el registro de auditoría no están cubiertos y siguen siendo trabajo personalizado.
Servicios
¿Necesitas ayuda para construir tu editor CMS headless?
¿Necesitas ayuda para integrar GrapesJS con Strapi, Contentful, Sanity, Directus, Payload o un CMS propio? Te ayudamos con la integración del editor, componentes personalizados, almacenamiento, plugins y flujos de trabajo de producción.
Dale a tu CMS headless la experiencia de edición que merece
Mantén tu CMS existente, el modelo de contenido y la arquitectura frontend. Añade GrapesJS como capa de edición visual y luego amplíalo con plugins GJS.Market a medida que tu producto crezca.
Empieza aquí
Construye tu editor CMS headless
Cuéntanos el CMS, el modelo de contenido y las páginas que tu equipo necesita componer, y vuelve a tener una configuración con alcance.