Control de código
El código fuente del editor es legible. Puedes rastrear un comportamiento hasta la línea que lo causa, parchearlo y bifurcarlo si alguna vez lo necesitas.
PageKit: el creador de sitios GrapesJS autoalojado, con el código fuente incluido. Obtener acceso anticipado
Crea un creador de páginas visual que puedas alojar tú mismo, personalizar y ampliar. Usa GrapesJS como motor de edición de código abierto y añade la funcionalidad que tu producto necesita con plugins.
Bloques, lienzo y controles de estilo — ejecutándose dentro de tu aplicación, en tu infraestructura.
26k+
GitHub estrellas
BSD-3-Clause
Licencia principal
1.4M+
Descargas mensuales de npm
100+
Plugins en GJS.Market
El código abierto no es una lista de características: es un conjunto de derechos sobre el editor en tu producto. Estos son los seis que cambian la forma en que construyes.
El código fuente del editor es legible. Puedes rastrear un comportamiento hasta la línea que lo causa, parchearlo y bifurcarlo si alguna vez lo necesitas.
GrapesJS es una librería del lado del cliente que se agrupa. Nada llama a casa, y el editor sigue funcionando independientemente del tiempo de actividad de los demás.
Los proyectos, páginas y recursos van a tu base de datos a través de un adaptador de almacenamiento que escribes. El editor nunca ve un servidor que no controles.
Los paneles, botones, sectores y toda la carcasa circundante son tuyos para organizar. Tus usuarios no tienen que cumplir con una interfaz de editor genérica.
Tus APIs, tu autenticación, tu almacenamiento de activos, tu pipeline de publicación. El editor llama a las funciones que le asignas.
Tu experiencia principal de edición no está licenciada desde una plataforma alojada, así que el precio o la hoja de ruta de nadie más decide si tu producto sigue funcionando.
El error más caro que cometen los equipos aquí es tratar "queremos ser dueños de nuestro creador de páginas" y "tenemos que escribir un editor visual" como la misma frase. No lo son.
Código abierto
no significaCódigo abierto
mediosEl objetivo no es reinventar cada parte de un editor visual. Es partir de una base de código abierto y dedicar tu tiempo de ingeniería al producto que hace única tu aplicación.
Eso es un replanteamiento, no una promesa de almuerzo gratis. Una fundación de código abierto elimina el lienzo, el modelo de componentes y el motor de estilismo de tu lista de pendientes. No elimina tu backend, tu flujo de trabajo de publicación ni el trabajo de mantener una dependencia actualizada — esos pasan a tu agenda en cuanto te alojas por tu cuenta.
Una comparación útil debe ser honesta sobre qué capacidades funcionan, cuáles llegan como una API que aún tienes que usar y cuáles son simplemente tuyas en cualquier caso. Esta tabla separa esas tres.
| Capacidad | Construir desde cero | Fundación de código abierto |
|---|---|---|
| Lienzo visual | Constrúyelo | Incorporado |
| Modelo de componentes | Constrúyelo | Incorporado |
| Arrastrar y soltar | Constrúyelo | Incorporado |
| Bloques | Constrúyelo | API integrada — el contenido es tuyo |
| Estilo | Constrúyelo | Incorporado |
| Edición responsiva | Constrúyelo | Incorporado — lo configuras |
| Activos | Constrúyelo | Incorporado — lo configuras |
| Texto enriquecido | Constrúyelo | Incorporado |
| Deshacer / volver a hacer | Constrúyelo | Incorporado |
| Almacenamiento | Constrúyelo | Conecta tu backend |
| Publicación | Constrúyelo | Construye tu flujo de trabajo |
| Interfaz de editor personalizada | Constrúyelo | Incorporado — lo configuras |
| Arquitectura de plugins | Constrúyelo | Incorporado |
| Lógica del producto | Constrúyelo | Tu solicitud |
Verificado contra GrapesJS 0.23.6 en 2026-09-03 ejecutando cada API en un navegador, no leyendo una lista de funciones. "Integrado" significa que el módulo viene incluido en el paquete central; "API integrado" significa que el mecanismo se incluye pero el contenido no.
El código abierto te da ventaja sin quitarte el control.
GrapesJS es un editor visual independiente del framework que instalas desde npm y montas en tu propia interfaz. Estas son las partes sobre las que realmente construirás — y donde termina cada una.
Núcleo
Un lienzo en el que tus usuarios componen directamente: seleccionar, mover, anidar y editar el DOM real en lugar de una vista previa.
Núcleo
Estructuras de contenido reutilizables con rasgos tipados, así que un marketer edita un titular en un campo de formulario en lugar de un div.
API central
El panel arrastrable es el núcleo; los bloques que hay dentro no lo son. Registras el tuyo propio o instalas un plugin de bloques.
Núcleo
Un gestor de estilos con sectores y selectores, para que los usuarios cambien el aspecto de algo sin tocar CSS.
Núcleo
Los puntos de interrupción de dispositivos son un módulo central. Defines qué dispositivos ofrece tu producto y a qué anchos se asignan.
API central
Un plugin es una función que recibe el editor. Ese es todo el contrato, y es por eso que existe un ecosistema.
Núcleo
La salida es HTML y CSS que puedes leer, diferenciar y servir. Útil cuando lo que estás construyendo es genuinamente para la web.
A través de plugins
El correo electrónico no está en el paquete básico. MJML y los presets del boletín lo añaden — una capacidad real, pero instalada.
Cada capa entre "código abierto" y "un creador de páginas que posees" pertenece a alguien. Ser claro sobre cuáles son tuyos es la diferencia entre un plan realista y una sorpresa.
La base de edición visual de código abierto: lienzo, componentes, bloques, estilos, recursos y el contrato de plugins.
Autenticación, panel de control, facturación, usuarios, permisos y la experiencia del producto alrededor del editor.
Almacenamiento, proyectos, publicaciones, versiones y la lógica de negocio que hace que tu producto merezca la pena pagar.
Bloques opcionales, integraciones y funcionalidades especializadas — usadas donde comprar es mejor que construir, pero se saltan donde no lo hacen.
No estás externalizando tu producto. Estás rechazando reescribir un lienzo.
Todo lo que hace que tu producto sea tuyo. Nada de eso viene del editor.
Lo que ya tengas incorporado. GrapesJS es independiente del framework y se monta en un elemento contenedor.
La capa de código abierto. Instalado desde npm, configurado por ti, ejecutándose en tu infraestructura.
Tu API, tu base de datos, tus reglas. GrapesJS llama a las funciones de carga y almacenamiento que escribes.
GrapesJS se encarga de la experiencia de edición. Tu aplicación se encarga de todo lo que hace único a tu producto.
Mira cómo funciona la integraciónSeis equipos de productos realmente se entregan sobre esta base. Cada uno supone una cantidad diferente de trabajo alrededor del mismo editor.
Deja que tus clientes creen y personalicen páginas dentro de tu producto, con tus componentes y tus permisos.
Crea un creador de páginas SaaSSitios de varias páginas con edición visual. El módulo Pages es el núcleo; el enrutamiento, los dominios y el alojamiento son tuyos para construir.
Crea un creador de páginas webOfrece a los responsables del marketing una forma visual de lanzar páginas de campaña sin necesidad de desplegar — y sin salir de tu sistema de diseño.
Crea un generador de páginas de aterrizajeAñade edición visual a un CMS o CMS sin cabeza, para que los editores vean la página en lugar de una lista de campos.
Construye un editor CMSEl mismo editor, apuntando al correo electrónico. MJML y los presets del boletín se encargan de la salida; son plugins, no núcleos.
Crea un generador de correos electrónicosEdición visual personalizada para el equipo que sigue pidiendo a ingeniería que cambie un párrafo. No se requiere ningún producto público.
Cuatro situaciones en las que poseer al editor vale el trabajo que cuesta.
01
Quieres ofrecer a los clientes un editor visual sin externalizar la experiencia por la que se juzga tu producto.
02
Necesitas edición visual dentro de una aplicación que ya existe, en el framework que ya utiliza.
03
Quieres control sobre la arquitectura del editor, el modelo de datos y cada punto de integración.
04
Quieres una infraestructura de edición visual reutilizable que puedas llevar a través de proyectos de clientes en lugar de tener que relicenciar por sitio.
GrapesJS es una buena respuesta a un tipo específico de requisito. Si la mayor parte de esta lista es tuya, encaja.
Elige GrapesJS cuando necesites:
Lo que asumes a cambio: lo alojas, lo actualizas, escribes las capas de almacenamiento y publicación, y eres responsable del comportamiento del editor cuando algo falla. Eso es un coste real, y es el correcto para pagar solo si la lista anterior es realmente tuya.
Empieza con GrapesJSTres requisitos donde otra herramienta es mejor. Si uno de estos es tu caso, GrapesJS te enfrentará.
Una plataforma alojada
Tienes el editor, el alojamiento, las actualizaciones y el soporte como una sola factura, y renuncias al control de versiones, al autoalojamiento y a la posibilidad de cambiar el propio editor.
Un editor de componentes React
Si las páginas son árboles de tus propios componentes React y nunca HTML que editas a mano, un editor React-first se ajusta más directamente a tu modelo de datos que uno orientado a HTML/CSS.
Un creador de páginas web completo
Si quieres un producto de creación web terminado en lugar de un editor que incrustes, los proyectos que incluyan toda la aplicación te llevarán mucho más rápido.
Ninguna de estas es una debilidad en las otras herramientas. Son productos diferentes que responden a preguntas distintas, y elegir la categoría equivocada cuesta más que elegir la biblioteca equivocada.
Comparar los creadores de páginas de código abiertoEstos proyectos no son intercambiables. Algunos son librerías que incrustas, otros son aplicaciones que despliegas, y compararlas en una lista de características indiferenciada es cómo los equipos acaban comprometidos con la categoría equivocada. Se agrupan según lo que son antes de compararse con lo que hacen.
Bibliotecas que instalas desde npm y montas dentro de una aplicación que ya tienes. Tú suministras la interfaz, el backend y la cadena de publicación; la biblioteca se encarga de la edición.
En este grupo
Bibliotecas para construir un editor sobre tu propio árbol de componentes React. Una página es JSON que describe componentes, no marcado — que es el modelo correcto si tus páginas ya son React.
En este grupo
Aplicaciones que despliegas y usas, en lugar de librerías con las que construyes. Mucho más rápido para un sitio de trabajo y no diseñado para desaparecer dentro del producto de otra persona.
En este grupo
Plataformas de contenido completo donde la construcción visual de páginas es una capacidad entre modelado de contenido, roles y publicación. Adoptas la plataforma, no solo el editor.
En este grupo
| Capacidad | GrapesJS | Puck | Craft.js | Silex | Webstudio | Webiny |
|---|---|---|---|---|---|---|
| Licencia | BSD-3-Clause | MIT | MIT | AGPL-3.0 | AGPL-3.0 | MIT* |
| Autoalojado | Sí, una librería del lado del cliente que agrupas | Sí | Sí | Sí — Docker, npm o fuente | Sitios publicados, sí; la documentación desaconseja alojar el constructor en producción por sí mismo | Sí, pero solo AWS — la documentación es explícita en que no hay soporte para nada más |
| Incrustable en tu app | Sí — monta la biblioteca en cualquier elemento contenedor | Sí — "solo un componente React" en tu árbol | Sí, pero es un kit de herramientas: construyes tú mismo la interfaz del editor | Como servidor Node. No hay montaje documentado para el editor front-end | No — el paquete constructor es privado y no se publica en npm | No — un iframe en una pila Webiny completamente desplegada |
| Editor visual | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Arrastrar y soltar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Componentes personalizados | ✓ | ✓ | ✓ | ✓ | No verificado | ✓ |
| Edición responsiva | ✓ | ✓ | Personalizado — lo construyes tú | Parcial | ✓ | ✓ |
| Backend personalizado / almacenamiento | API de almacenamiento: tus propias funciones de carga y almacenamiento | onPublish / onChange — guardas los datos | serializar() / deserializar() — guardas el JSON | API de conector para almacenamiento y alojamiento | Sin API de conector; los datos salen mediante exportación de CLI | El almacenamiento está fijo en la creación del proyecto y no puede modificarse posteriormente |
| Arquitectura de plugins | ✓ | ✓ | Ninguno — por diseño | ✓ | No verificado | ✓ |
| Salida HTML / CSS | ✓ | — | — | ✓ | ✓ | — |
| Flujos de trabajo de correo electrónico | A través de un plugin | — | — | — | — | — |
| React | ✓ | ✓ | ✓ | No es el foco principal | ✓ | ✓ |
| Marco | Framework-agnostic | React | React | Framework-agnostic (built on GrapesJS) | React (React Router v7 output) | React (Next.js supported) |
| Versión verificada | grapesjs 0.23.6 | @puckeditor/core 0.23.0 | @craftjs/core 0.2.12 | @silexlabs/silex 3.9.0 | 0.296.0 | 6.4.9 |
| Última versión | Released 2026-08-26 | Released 2026-08-07 | No commits on any branch since 2025-02 | Released 2026-07-26 | Released 2026-09-01 | Released 2026-08-27 |
Licencias leídas desde el propio archivo LICENSE de cada repositorio, versiones y deprecaciones del registro npm, capacidades de la documentación propia de cada proyecto. 2026-09-03 verificado. "No verificado" significa que no pudimos encontrar una fuente primaria de ninguna manera — no es que falte la capacidad. Un guion significa que el proyecto no apunta a ese caso de uso. *La licencia raíz de Webiny crea un directorio empresarial y se remette a licencias por paquete; en la rama predeterminada actual ese directorio está ausente y todas las licencias por paquete son MIT.
Tres preguntas, en el orden que realmente reduce el campo. La primera elimina más opciones que las otras dos juntas.
Un producto — el editor vive dentro de mi aplicación
SigueQuieres una base que integres y controles. La pregunta 02 reduce qué tipo.
Una herramienta terminada — quiero construir sitios con ella
Creador de sitios webQuieres una aplicación, no una biblioteca. Los creadores de sitios web de código abierto desplegables te llevarán mucho más rápido que cualquier framework.
Una plataforma de contenido para todo un equipo
Plataforma CMSSi la creación de páginas es uno de los requisitos entre la publicación, los roles y el modelado de contenido, empieza desde una plataforma de contenido.
Marcado que puedo servir, exportar y diferenciar
GrapesJSSalida HTML y CSS, un editor independiente del framework y un adaptador de almacenamiento en tu propia base de datos.
Un árbol de mis propios componentes React
Editor ReactSi las páginas son árboles de componentes serializados como JSON y nunca marcado a mano, un editor React primero es el ajuste más cercano.
Ambos, dependiendo de la superficie
GrapesJS + ReactEl envoltorio oficial React monta el editor como un componente React mientras que la salida permanece en HTML/CSS. Este es el caso común en SaaS.
Sí — gestionamos nuestra propia infraestructura
Alojarlo por tu cuentaInstala, configúrala, escribe un adaptador de almacenamiento y el editor es realmente tuyo.
Ahora mismo no
Editor alojadoUna plataforma alojada intercambia el control por otra persona que lleva la infraestructura. Eso es un intercambio legítimo, no un fracaso.
Sí, pero no queremos construir todas las funciones
Foundation + pluginsAloja tú mismo al editor y compra las piezas que no sean el diferenciador de tu producto.
La elección correcta depende de si necesitas un producto completo para crear sitios web o una base de editor que se convierta en parte de tu propia aplicación. Todo lo demás — licencias, framework, API de plugins — solo importa una vez que se responde esa pregunta.
01 — Instalación
Una dependencia. Sin plugin de compilación, sin necesidad de framework.
npm install grapesjs02 — Inicializar
Apúntalo a un contenedor y elige los puntos de interrupción de tu dispositivo. Este es un editor que funciona.
import grapesjs from 'grapesjs';
import 'grapesjs/dist/css/grapes.min.css';
const editor = grapesjs.init({
container: '#gjs',
height: '100vh',
width: 'auto',
// Reads the markup already inside #gjs as the starting page.
fromElement: true,
// No storage yet — step 04 connects your backend.
storageManager: false,
deviceManager: {
devices: [
{ id: 'desktop', name: 'Desktop', width: '' },
{ id: 'tablet', name: 'Tablet', width: '768px', widthMedia: '992px' },
{ id: 'mobile', name: 'Mobile', width: '320px', widthMedia: '480px' },
],
},
});03 — Extensión
Un tipo de componente define lo que los usuarios pueden editar; un bloque lo hace arrastrable. Son dos registros, no uno.
// A component type owns its markup and the traits your users can edit.
editor.Components.addType('cta', {
model: {
defaults: {
tagName: 'a',
attributes: { class: 'cta', href: '#' },
components: 'Get started',
traits: [
{ name: 'href', type: 'text', label: 'Link' },
{ name: 'title', type: 'text', label: 'Title' },
],
},
},
});
// A block is what makes that type draggable from the panel — a separate,
// explicit registration, not something the type gives you for free.
editor.Blocks.add('cta-block', {
label: 'CTA',
category: 'Basic',
content: { type: 'cta' },
});04 — Conexión
El adaptador de almacenamiento es donde el editor se detiene y comienza tu producto.
// Your backend, your schema, your auth. GrapesJS calls load() and store();
// everything inside them is yours.
editor.Storage.add('your-backend', {
async load() {
const res = await fetch(`/api/pages/${pageId}`, { credentials: 'include' });
return res.ok ? res.json() : {};
},
async store(data) {
await fetch(`/api/pages/${pageId}`, {
method: 'PUT',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data),
});
return data;
},
});
// Publishing is your workflow, not the editor's. getHtml()/getCss() give you
// the output; what happens to it is a decision only your product can make.
editor.Commands.add('publish-page', {
run: (ed) => ({ html: ed.getHtml(), css: ed.getCss() }),
});Verificado contra el 0.23.6 de GrapesJS en 2026-09-03.
Eso es todo el aspecto: instalar, montar, extender, conectar. Todo lo que va después del paso 04 — autenticación, facturación, versiones, dominios — es tu aplicación, y nada de eso lo decide el editor.
La demo del proyecto — editor central, paneles por defecto, nada comprado.
Carga una demo de terceros en un iframe. Nada carga hasta que haces clic.
Empieza con un núcleo de editor de código abierto. Añade solo la funcionalidad que tu producto necesita — y construye el resto tú mismo, donde realmente sea tu diferencia.
Un set de bloques iniciales, para que el panel no esté vacío el primer día.
Bootstrap 5 componentes como bloques arrastrables.
Bloques de clase Tailwind para equipos que ya están en Tailwind.
Adaptadores que persisten proyectan en algún lugar distinto del navegador.
Navegar categoríaMJML y la salida de boletines — la capacidad que el paquete básico no incluye.
Navegar categoríaSalida MJML, es decir, el HTML del correo electrónico renderiza entre clientes.
Un conjunto de bloques y lienzo orientados a boletines.
Bloques de correo responsivo para un generador de correos de producción.
Navegar por capacidad
No un paquete — tres conjuntos que cubren el primer requisito real en cada una de las tres construcciones comunes. Cada elemento es un listado en vivo, y cada uno de ellos es opcional.
Tu primer editor visual
Lee el tutorialUn creador de páginas orientado al cliente
Creación visual de correos electrónicos
Los precios se leen en directo desde el catálogo.
La mayoría de las conclusiones de "GrapesJS no puede hacer X" son realmente "el paquete base no incluye X". Son problemas diferentes, y solo uno de ellos requiere un editor diferente.
¿Necesitas integración con React?
Integración de React
Un envoltorio oficial monta el editor como un componente React, así que permanece en tu árbol como cualquier otra cosa.
¿Necesitas correo electrónico?
Plugins de correo electrónico
MJML y los presets del boletín convierten el mismo lienzo en un generador de correos electrónicos.
¿Necesitas plantillas?
Plugins de plantillas
Los gestores de presets y plantillas ofrecen a los usuarios una biblioteca desde la que empezar en lugar de un lienzo en blanco.
¿Necesitas Tailwind?
Bloques Tailwind
Conjuntos de bloques de clase Tailwind, así que el editor emite las clases que ya usa tu base de código.
¿Necesitas bloques personalizados?
Plugins de bloques
O escríbelos tú mismo — un bloque es una etiqueta, una categoría y algo de contenido.
¿Necesitas almacenamiento?
Adaptadores de almacenamiento
Adaptadores ya preparados, o tu propio par de carga/almacenamiento contra tu API.
No cambies el editor solo porque falta una función. Extiéndelo.
El código abierto cambia la economía de un constructor de páginas. No elimina la ingeniería, y cualquier página que te diga lo contrario está vendiendo algo. Esto es lo que aún posees en cada ruta.
Tú posees:
Control total y el camino más largo para llegar a un editor en funcionamiento. Solo merece la pena cuando el propio editor es el diferenciador de tu producto.
Sigues construyendo:
La base de edición visual ya existe. Todo lo anterior sigue siendo tuyo para construir — esta lista es más corta que la de Ruta A, no está vacía.
Sigues construyendo:
Comprar un conjunto de bloques o un adaptador de almacenamiento elimina una tarea, no una dependencia. Cada uno es código en el que ahora confías y tienes que seguir funcionando.
Publicamos deliberadamente una cifra sin dinero por "construir un creador de páginas desde cero". No existe un referente público creíble para ello, la respuesta honesta depende totalmente de tu equipo y alcance, y un número inventado sería lo menos fiable en esta página. Cuenta las superficies anteriores en su lugar: son lo que realmente estás intercambiando.
Esto es un intercambio, no un ranking. El código abierto te da más control; alojado te da menos para operar. Ambas columnas contienen cosas que te importarán.
| Dimensión | Código abierto | Presentado |
|---|---|---|
| Control de versiones | A tu disposición para leer, parche y bifurcación | Limitado a lo que la plataforma exponga |
| Autoalojamiento | Normalmente es posible | Normalmente no |
| Ubicación de datos | Tu infraestructura | El proveedor |
| Personalización de la interfaz | Alto — la concha es tuya | Depende de la plataforma |
| Dependencia del proveedor | Inferior | Más alto |
| Mantenimiento | Tu responsabilidad | El proveedor |
| Infraestructura | Tu responsabilidad | El proveedor |
| Extensibilidad | Depende de la API de plugins del proyecto | Depende de los puntos de extensión de la plataforma |
| Hora de un editor en activo | Trabajo de integración antes de que cualquier cosa sea utilizable | Utilizable antes de que hayas escrito cualquier código |
El código abierto te da más control, pero también asumes la responsabilidad de la infraestructura y el mantenimiento. Si nadie en tu equipo quiere esa responsabilidad, la respuesta honesta es alojada.
Un editor visual de páginas cuyo código fuente se publica bajo una licencia de código abierto, para que puedas leerlo, ejecutarlo en tu propia infraestructura, modificarlo y construir un producto encima. Puede ser una biblioteca que incrustes en tu aplicación, o una aplicación completa de creación de sitios web que despliegues — son cosas muy diferentes que comparten la misma etiqueta.
No hay un mejor — hay uno mejor para tus necesidades. Si vas a integrar un editor en tu propia aplicación y quieres salida HTML/CSS, GrapesJS encaja. Si las páginas son árboles de tus componentes React, un editor React primero encaja mejor. Si quieres una aplicación terminada para crear sitios web en lugar de una base, un creador web desplegable será más rápido. Responde primero "¿biblioteca o aplicación?" elimina más opciones que cualquier comparación de funcionalidades.
Sí. El paquete core GrapesJS se publica bajo la licencia BSD-3-Clause, y el envoltorio oficial de @grapesjs/react bajo MIT. Ambas son licencias permisivas. Ten en cuenta que el núcleo GrapesJS no es MIT, a pesar de lo que dicen muchos artículos comparativos.
Sí. GrapesJS es una biblioteca JavaScript del lado del cliente que instalas desde npm y combinas con tu aplicación. No hay servicio que llamar ni cuenta que crear, así que se ejecuta donde esté tu frontend.
Sí, y es uno de los usos más comunes. BSD-3-Clause es una licencia permisiva que permite el uso comercial y propietario siempre que mantengas el aviso de derechos de autor y el texto de la licencia en tu distribución. Revisa la licencia de cada proyecto individualmente antes de comprometerte — algunos creadores de páginas de código abierto usan AGPL-3.0, que conlleva obligaciones que importan específicamente para productos alojados.
Sí. Los paneles, botones, sectores de estilo y la shell circundante son configurables, y varios editores publicados reemplazan completamente el diseño por defecto mientras ejecutan el mismo núcleo. Si quieres que el editor se parezca a tu producto en lugar de a GrapesJS, ese es un resultado soportado, no un hack.
Sí. GrapesJS tiene una API de almacenamiento donde registras un adaptador con funciones de carga y almacenamiento. Lo que ocurre dentro de ellas — qué endpoint, qué autenticación, qué esquema — es totalmente tuyo, así que los datos del proyecto van a tu propia base de datos en lugar de a la de nadie más.
Sí. El wrapper oficial de @grapesjs/react monta el editor como un componente React, así que está dentro de tu árbol de componentes con tu estado y enrutamiento alrededor de él. El núcleo del editor en sí sigue siendo agnóstico respecto al framework: el wrapper es una capa de integración, no una reescritura.
Sí, con una salvedad que merece la pena dejar claro. La edición multipágina es un módulo central, así que la parte de edición está cubierta. Todo lo que la convierte en un creador de sitios web en lugar de un editor de páginas — enrutamiento, dominios, alojamiento, despliegues, cuentas de usuario — es código de aplicación que escribes tú. GrapesJS te da el editor, no la plataforma.
Sí, usando plugins. La salida de correo no está en el paquete base: MJML y los presets del boletín añaden los bloques específicos de correo y la cadena de salida que sobrevive a los clientes de correo reales. Es una capacidad real, usada en producción, pero está instalada, no es algo que se obtenga por defecto.
El paquete base es BSD-3-Clause y el envoltorio React es MIT, y ambos permiten el uso comercial, incluso en productos de código cerrado, siempre que se conserven los avisos de derechos de autor y licencia. Esto es un resumen del texto de la licencia, no asesoramiento legal — lee el archivo LICENSE en el repositorio y pregunta a tu propio asesor si la respuesta es relevante para un contrato.
Se sitúan en categorías diferentes. GrapesJS es una biblioteca BSD-3-Clause que instalas e incrustas dentro de tu propia aplicación, donde suministras la interfaz, el backend y la publicación. Webstudio es un constructor visual de sitios web AGPL-3.0 — una aplicación independiente, con una oferta alojada. Las licencias también difieren en un aspecto que importa para productos alojados: AGPL-3.0 conlleva obligaciones de disponibilidad de código fuente que BSD-3-Clause no tiene.
Modelo de datos y framework. Puck es un editor React con licencia MIT: una página es un árbol JSON de tus componentes React, renderizado por React. GrapesJS es independiente del framework y funciona con salida HTML y CSS, lo que se adapta a productos que sirven o exportan marcado. Si tus páginas son componentes React, Puck se mapea a ellas de forma más directa; si son páginas web, GrapesJS lo hace.
Quién lleva el trabajo. Con el código abierto obtienes el código fuente, el autoalojamiento, tu propia ubicación de datos y un control profundo de la interfaz — y te encargas del alojamiento, las actualizaciones y el mantenimiento. Con un constructor alojado, el proveedor lleva todo eso, y aceptas sus precios, hoja de ruta y límites de personalización. Ninguno es universalmente mejor; depende de si operar el editor es un coste que quieres.
No. GrapesJS es totalmente utilizable sin comprar nada, y muchos editores de producción están construidos completamente sobre el núcleo más el código que escribió el equipo. Los plugins merecen la pena cuando una funcionalidad no es el diferenciador de tu producto — un preajuste de email, un conjunto de bloques, un adaptador de almacenamiento — y no merecen la pena cuando lo es.
Sí, y es la forma normal de usar el editor. Registras un tipo de componente que define el marcado y los rasgos que los usuarios pueden editar, luego registras un bloque que lo hace arrastrable desde el panel. Son dos registros separados, lo cual merece la pena saberlo antes de preguntarte por qué tu nuevo componente no está en el panel.
Empieza con GrapesJS, mantén el control de tu aplicación y amplía el editor con la funcionalidad que tu producto necesita.
Carga un editor real en el navegador, luego instálalo y móntalo en tu propia app.
Prueba GrapesJSBloques, adaptadores de almacenamiento, shells React y preajustes de correo electrónico — instalados solo donde te ahorran trabajo real.
Explora los plugins GJS.MarketObserva cómo difieren las opciones de código abierto antes de comprometer una arquitectura en una de ellas.
Comparar creadores de páginasPosee al editor. Posee los datos. Posee el producto.