Code-Steuerung
Der Quellcode des Editors ist lesbar. Du kannst ein Verhalten auf die Zeile zurückverfolgen, die es verursacht, patchen und gegebenenfalls forken.
PageKit — der selbst gehostete GrapesJS-Website-Builder, als Quellcode. Early Access sichern
Baue einen visuellen Seitenbauer, den du selbst hosten, anpassen und erweitern kannst. Nutze GrapesJS als Open-Source-Bearbeitungs-Engine und füge die Funktionalität hinzu, die dein Produkt mit Plugins benötigt.
Blöcke, Leinwand und Stilsteuerungen – laufen innerhalb Ihrer Anwendung, auf Ihrer Infrastruktur.
26k+
GitHub-Sterne
BSD-3-Clause
Kernlizenz
1.4M+
Monatliche npm-Downloads
100+
Plugins auf GJS.Market
Open Source ist keine Feature-Liste – es ist eine Reihe von Rechten über den Editor in deinem Produkt. Das sind die sechs, die beeinflussen, wie du baust.
Der Quellcode des Editors ist lesbar. Du kannst ein Verhalten auf die Zeile zurückverfolgen, die es verursacht, patchen und gegebenenfalls forken.
GrapesJS ist eine clientseitige Bibliothek, die man bündelt. Nichts ruft nach Hause, und der Editor arbeitet weiter, egal wie hoch die Verfügbarkeit der anderen ist.
Projekte, Seiten und Assets gelangen über einen von dir geschriebenen Speicheradapter in deine Datenbank. Der Editor sieht niemals einen Server, den du nicht kontrollierst.
Panels, Buttons, Sektoren und die gesamte umliegende Shell stehen bei dir. Deine Nutzer müssen keine generische Editor-UI nutzen.
Deine APIs, deine Authentifizierung, dein Asset-Speicher, deine Veröffentlichungspipeline. Der Editor ruft die Funktionen auf, die du ihm gibst.
Deine Kern-Bearbeitungserfahrung ist nicht von einer gehosteten Plattform lizenziert, daher entscheidet niemand sonst über Preise oder Roadmaps, ob dein Produkt noch funktioniert.
Der teuerste Fehler, den Teams hier machen, ist, "wir wollen unseren Page Builder besitzen" und "wir müssen einen visuellen Editor schreiben" als denselben Satz zu behandeln. Das sind sie nicht.
Open Source
bedeutet nicht, dassOpen Source
MittelDas Ziel ist nicht, jeden Teil eines visuellen Editors neu zu erfinden. Es geht darum, von einer Open-Source-Basis auszugehen und deine Entwicklungszeit in das Produkt zu investieren, das deine Anwendung einzigartig macht.
Das ist eine Neuformulierung, kein Versprechen eines kostenlosen Mittagessens. Eine Open-Source-Stiftung entfernt die Leinwand, das Komponentenmodell und die Styling-Engine aus Ihrem Backlog. Sie entfernt nicht Ihr Backend, Ihren Veröffentlichungsworkflow oder die Arbeit, eine Abhängigkeit aktuell zu halten – all das kommt sofort auf Ihren Teller, sobald Sie selbst hosten.
Ein nützlicher Vergleich muss ehrlich sein, welche Fähigkeiten funktionieren, welche als API verfügbar sind, die du noch nutzen musst und welche einfach dir gehören. Diese Tabelle trennt diese drei.
| Leistungsfähigkeit | Von Grund auf neu bauen | Open-Source-Stiftung |
|---|---|---|
| Visuelle Leinwand | Bau es | Eingebaut |
| Komponentenmodell | Bau es | Eingebaut |
| Drag & Drop | Bau es | Eingebaut |
| Blöcke | Bau es | API eingebaut – der Inhalt gehört dir |
| Design | Bau es | Eingebaut |
| Responsive Bearbeitung | Bau es | Eingebaut – du konfigurierst es |
| Vermögenswerte | Bau es | Eingebaut – du konfigurierst es |
| Rich Text | Bau es | Eingebaut |
| Rückgängig machen / neu machen | Bau es | Eingebaut |
| Lagerung | Bau es | Verbinden Sie Ihr Backend |
| Verlagswesen | Bau es | Bauen Sie Ihren Arbeitsablauf auf |
| Benutzeroberfläche des benutzerdefinierten Editors | Bau es | Eingebaut – du konfigurierst es |
| Plugin-Architektur | Bau es | Eingebaut |
| Produktlogik | Bau es | Ihr Antrag |
Verifiziert gegen GrapesJS 0.23.6 auf 2026-09-03, indem jede API im Browser ausgeführt wird, nicht durch das Lesen einer Funktionsliste. "Eingebaut" bedeutet, dass das Modul im Kernpaket ausgeliefert wird; "API eingebaut" bedeutet, dass der Mechanismus ausgeliefert wird, aber der Inhalt nicht.
Open Source verschafft dir einen Vorsprung, ohne dir die Kontrolle zu nehmen.
GrapesJS ist ein framework-unabhängiger visueller Editor, den du von npm installierst und in deine eigene Benutzeroberfläche montierst. Das sind die Teile, auf denen du tatsächlich aufbaust – und wo jeder einzelne endet.
Kern
Eine Leinwand, auf der deine Nutzer direkt schreiben: Auswählen, verschieben, verschachteln und bearbeiten echtes DOM statt einer Vorschau davon.
Kern
Wiederverwendbare Inhaltsstrukturen mit getippten Merkmalen, sodass ein Marketer eine Überschrift in einem Formularfeld statt in einem Div bearbeitet.
Kern-API
Das ziehbare Panel ist der Kern; die Blöcke darin sind es nicht. Du registrierst dein eigenes oder installierst ein Block-Plugin.
Kern
Ein Style-Manager mit Sektoren und Selektoren, sodass Nutzer das Aussehen von etwas ändern können, ohne CSS zu berühren.
Kern
Geräte-Breakpoints sind ein Kernmodul. Du definierst, welche Geräte dein Produkt bietet und auf welche Breiten sie abgebildet sind.
Kern-API
Ein Plugin ist eine Funktion, die den Editor empfängt. Das ist der ganze Vertrag, und deshalb existiert überhaupt ein Ökosystem.
Kern
Die Ausgabe ist HTML und CSS, die du lesen, differentialen und servieren kannst. Nützlich, wenn das, was du baust, wirklich für das Web ist.
Über Plugins
E-Mail ist nicht im Kernpaket. MJML und Newsletter-Presets fügen sie hinzu – eine echte Fähigkeit, aber eine installierte.
Jede Ebene zwischen "Open Source" und "ein Seitenbauer, den du besitzt" gehört jemandem. Klar zu sein, welche Pläne dir gehören, ist der Unterschied zwischen einem realistischen Plan und einer Überraschung.
Die Open-Source-Basis für visuelle Bearbeitung: Leinwand, Komponenten, Blöcke, Stile, Assets und der Plugin-Vertrag.
Authentifizierung, Dashboard, Abrechnung, Benutzer, Berechtigungen und das Produkterlebnis rund um den Editor.
Speicher, Projekte, Veröffentlichungen, Versionen und die Geschäftslogik, die dein Produkt lohnenswert macht.
Optionale Blöcke, Integrationen und spezialisierte Funktionen – dort verwendet, wo Kauf besser ist als bauen, übersprungen, wo es nicht klappt.
Du lagerst dein Produkt nicht aus. Du lehnst es ab, eine Leinwand neu zu schreiben.
Alles, was dein Produkt zu deinem macht. Nichts davon kommt vom Editor.
Was auch immer du bereits eingebaut hast. GrapesJS ist framework-agnostisch und mountet in ein Container-Element.
Die Open-Source-Schicht. Installiert von npm, von dir konfiguriert, läuft auf deiner Infrastruktur.
Deine API, deine Datenbank, deine Regeln. GrapesJS ruft die Load- und Store-Funktionen auf, die du schreibst.
GrapesJS übernimmt das Bearbeitungserlebnis. Ihre Anwendung übernimmt alles, was Ihr Produkt einzigartig macht.
Sehen Sie, wie die Integration funktioniertSechs Produktteams liefern tatsächlich auf dieser Grundlage aus. Jedes ist eine unterschiedliche Arbeitsmenge rund um denselben Editor.
Lassen Sie Ihre Kunden Seiten innerhalb Ihres Produkts erstellen und anpassen, mit Ihren Komponenten und Ihren Berechtigungen.
Baue einen SaaS-SeitenbauerMehrseitige Seiten mit visueller Bearbeitung. Das Seiten-Modul ist der Kern; Routing, Domains und Hosting sind deine Optionen.
Baue einen Website-BuilderGeben Sie Marketern eine visuelle Möglichkeit, Kampagnenseiten ohne Deployment zu veröffentlichen – und ohne Ihr Designsystem zu verlassen.
Baue einen Landing-Page-BuilderFüge visuelle Bearbeitung in ein CMS oder ein headless CMS hinzu, damit Redakteure die Seite sehen und nicht nur eine Feldliste.
Baue einen CMS-EditorDerselbe Editor, der auf E-Mail zeigt. MJML und Newsletter-Presets übernehmen die Ausgabe; sie sind Plugins, kein Kern.
Baue einen E-Mail-BuilderIndividuelle visuelle Bearbeitung für das Team, das die Ingenieure ständig bittet, einen Absatz zu ändern. Kein öffentliches Produkt erforderlich.
Vier Situationen, in denen der Besitz des Editors die Arbeit wert ist.
01
Sie möchten den Kunden einen visuellen Editor bieten, ohne das Erlebnis, nach dem Ihr Produkt bewertet wird, auszulagern.
02
Du brauchst visuelle Bearbeitung in einer bereits existierenden Anwendung auf dem bereits verwendeten Framework.
03
Du willst Kontrolle über die Editor-Architektur, das Datenmodell und jeden Integrationspunkt.
04
Du möchtest wiederverwendbare visuelle Bearbeitungsinfrastruktur, die du über Kundenprojekte hinweg tragen kannst, anstatt pro Website neu zu lizenzieren.
GrapesJS ist eine gute Antwort auf eine bestimmte Anforderung. Wenn der Großteil dieser Liste deine Liste ist, passt sie.
Wählen Sie GrapesJS, wenn Sie Folgendes benötigen:
Was du im Gegenzug übernimmst: Du hostest es, du aktualisierst es, schreibst die Speicher- und Veröffentlichungsschichten und besitzt das Verhalten des Editors, wenn etwas kaputtgeht. Das ist ein echter Kostenfaktor, und es ist der richtige Preis nur, wenn die obige Liste wirklich deine Liste ist.
Fang mit GrapesJS anDrei Voraussetzungen, bei denen etwas anderes das bessere Werkzeug ist. Wenn eine davon deine Situation ist, wird GrapesJS gegen dich kämpfen.
Eine gehostete Plattform
Man nimmt den Editor, das Hosting, die Upgrades und den Support als eine Rechnung zusammen und verzichtet auf Versionskontrolle, Selbsthosting und die Möglichkeit, den Editor selbst zu ändern.
Ein React-Komponenteneditor
Wenn Seiten aus Bäumen deiner eigenen React-Komponenten bestehen und nie aus HTML, das du von Hand bearbeitest, passt ein React-First-Editor direkter zu deinem Datenmodell als ein HTML/CSS-orientierter.
Ein kompletter Website-Builder
Wenn du ein fertiges Website-Building-Produkt möchtest statt eines Editors, den du einbettest, bringen Projekte, die die gesamte Anwendung ausliefern, dich viel schneller dorthin.
Keines davon ist eine Schwäche der anderen Tools. Es sind verschiedene Produkte, die unterschiedliche Fragen beantworten, und die falsche Kategorie zu wählen kostet mehr als die falsche Bibliothek.
Vergleichen Sie Open-Source-SeitenbauerDiese Projekte sind nicht austauschbar. Manche sind Bibliotheken, die man einbettet, manche sind Anwendungen, die man bereitstellt, und wenn man sie auf einer undifferenzierten Feature-Liste vergleicht, landet Teams am Ende in der falschen Kategorie. Sie werden danach gruppiert, was sie sind, bevor sie mit dem, was sie tun, verglichen werden.
Bibliotheken, die du aus npm installierst und in einer bereits vorhandenen Anwendung mountest. Du stellst die Benutzeroberfläche, das Backend und die Veröffentlichungspipeline bereit; die Bibliothek übernimmt das Editieren.
In dieser Gruppe
Bibliotheken zum Erstellen eines Editors über deinem eigenen React-Komponentenbaum. Eine Seite ist JSON, das Komponenten beschreibt, kein Markup – was das richtige Modell ist, wenn deine Seiten bereits React sind.
In dieser Gruppe
Anwendungen, die du bereitstellst und nutzt, statt Bibliotheken, mit denen du baust. Viel schneller auf einer funktionierenden Seite und nicht darauf ausgelegt, in einem fremden Produkt zu verschwinden.
In dieser Gruppe
Vollwertige Content-Plattformen, bei denen visuelles Seitenaufbauen eine Fähigkeit zwischen Content-Modellierung, Rollen und Veröffentlichung ist. Du übernimmst die Plattform, nicht nur den Editor.
In dieser Gruppe
| Leistungsfähigkeit | GrapesJS | Puck | Craft.js | Silex | Webstudio | Webiny |
|---|---|---|---|---|---|---|
| Lizenz | BSD-3-Clause | MIT | MIT | AGPL-3.0 | AGPL-3.0 | MIT* |
| Selbstgehostet | Ja – eine clientseitige Bibliothek, die du bündelst | Ja | Ja | Ja – Docker, npm oder Quellcode | Veröffentlichte Seiten ja; die Dokumentation rät davon ab, den Builder in der Produktion selbst zu hosten | Ja, aber nur AWS – die Dokumentation ist ausdrücklich klar, dass sonst nichts unterstützt wird |
| Einbettbar in deiner App | Ja – mounte die Bibliothek in ein beliebiges Containerelement | Ja – "nur eine React-Komponente" in deinem Baum | Ja, aber es ist ein Werkzeugkasten: Du baust die Benutzeroberfläche des Editors selbst | Als Node-Server. Keine dokumentierte Frontend-Editor-Montage | Nein – das Builder-Paket ist privat und nicht in npm veröffentlicht | Nein – ein iframe in einen vollständig implementierten Webiny-Stack |
| Visueller Editor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Drag & Drop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Individuelle Komponenten | ✓ | ✓ | ✓ | ✓ | Nicht verifiziert | ✓ |
| Responsive Bearbeitung | ✓ | ✓ | Individuell – man baut es selbst | Teilweise | ✓ | ✓ |
| Benutzerdefiniertes Backend / Speicher | Speicher-API – Ihre eigenen Lade- und Speicherfunktionen | onPublish / onChange – du speicherst die Daten | serialize() / deserialize() — du speicherst das JSON | Connector-API für Speicher und Hosting | Keine Connector-API; Daten verlassen sich über CLI-Export | Speicher ist bei der Projekterstellung festgelegt und kann später nicht mehr geändert werden |
| Plugin-Architektur | ✓ | ✓ | Keine – absichtlich | ✓ | Nicht verifiziert | ✓ |
| HTML / CSS-Ausgabe | ✓ | — | — | ✓ | ✓ | — |
| E-Mail-Workflows | Via Plugin | — | — | — | — | — |
| React | ✓ | ✓ | ✓ | Nicht der Hauptfokus | ✓ | ✓ |
| Rahmenwerk | Framework-agnostic | React | React | Framework-agnostic (built on GrapesJS) | React (React Router v7 output) | React (Next.js supported) |
| Verifizierte Version | 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 |
| Neueste Veröffentlichung | 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 |
Lizenzen, die aus der eigenen LICENSE-Datei jedes Repositorys gelesen wurden, Versionen und Deprekationen aus der npm-Registry, Funktionen aus der eigenen Projektdokumentation. 2026-09-03 wurde verifiziert. "Nicht verifiziert" bedeutet, dass wir keine Primärquelle finden konnten – nicht, dass die Funktionalität fehlt. Ein Bindestrich bedeutet, dass das Projekt diesen Anwendungsfall nicht anspricht. *Die Root-Lizenz von Webiny definiert ein Unternehmensverzeichnis und überlässt sich an Lizenzen pro Paket; im aktuellen Standardzweig fehlt dieses Verzeichnis, und jede Pro-Package-Lizenz ist MIT.
Drei Fragen, in der Reihenfolge, die das Feld tatsächlich eingrenzt. Die erste eliminiert mehr Optionen als die anderen beiden zusammen.
Ein Produkt – der Editor lebt in meiner Anwendung
Mach weiterDu willst ein Fundament, das du verankerst und kontrollierst. Frage 02 grenzt ein, welche Art.
Ein fertiges Werkzeug – ich möchte damit Seiten bauen
Website-BuilderDu willst eine Anwendung, keine Bibliothek. Deployable Open-Source-Website-Builder bringen dich viel schneller dorthin als jedes Framework.
Eine Content-Plattform für ein ganzes Team
CMS-PlattformWenn Seitenaufbau eine Voraussetzung für Publishing, Rollen und Content Modeling ist, sollte man stattdessen auf einer Content-Plattform starten.
Aufschlag kann ich servieren, exportieren und differentieren
GrapesJSHTML- und CSS-Ausgabe, einen framework-agnostischen Editor und einen Speicheradapter in deine eigene Datenbank.
Ein Baum meiner eigenen React-Komponenten
React-EditorWenn Seiten Komponentenbäume sind, die als JSON serialisiert und nie handbearbeitet werden, ist ein React-First-Editor die bessere Wahl.
Beides, je nach Oberfläche
GrapesJS + ReactDer offizielle React-Wrapper montiert den Editor als React-Komponente, während die Ausgabe HTML/CSS bleibt. Dies ist der übliche Fall bei SaaS.
Ja – wir betreiben unsere eigene Infrastruktur
Selbst hostenInstalliere, konfiguriere, schreibe einen Speicheradapter, und der Editor gehört wirklich dir.
Im Moment nicht
Gastgeber-RedakteurEine gehostete Plattform tauscht die Kontrolle für jemand anderen, der die Infrastruktur trägt. Das ist ein legitimer Handel, kein Fehler.
Ja, aber wir wollen nicht jedes Feature entwickeln
Foundation + PluginsHoste den Redakteur selbst und kaufe die Beiträge, die nicht das Unterscheidungsmerkmal deines Produkts sind.
Die richtige Wahl hängt davon ab, ob Sie ein vollständiges Website-Building-Produkt oder eine Editor-Basis benötigen, die Teil Ihrer eigenen Anwendung wird. Alles andere – Lizenz, Framework, Plugin-API – ist erst dann relevant, wenn diese Frage beantwortet ist.
01 — Installation
Eine Abhängigkeit. Kein Build-Plugin, keine Framework-Anforderung.
npm install grapesjs02 — Initialisieren
Richte es auf einen Container und wähle die Breakpoints deines Geräts aus. Das ist ein funktionierender Editor.
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 — Verlängern
Ein Komponententyp definiert, was Benutzer bearbeiten können; ein Block macht es ziehbar. Es sind zwei Registrierungen, nicht eine.
// 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 — Verbinden
Der Speicheradapter ist der Ort, an dem der Editor endet und dein Produkt startet.
// 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() }),
});Verifiziert mit GrapesJS 0.23.6 auf 2026-09-03.
Das ist das ganze Surface: installieren, mounten, erweitern, verbinden. Alles jenseits von Schritt 04 – Authentifizierung, Abrechnung, Versionen, Domains – ist deine Anwendung, und nichts davon wird vom Editor entschieden.
Die eigene Demo des Projekts – Kerneditor, Standardpanels, nichts gekauft.
Lädt eine Drittanbieter-Demo in einem iframe. Nichts lädt, bis du klickst.
Beginne mit einem Open-Source-Editor-Kern. Füge nur die Funktionalität hinzu, die dein Produkt benötigt – und baue den Rest selbst, wo sie tatsächlich dein Unterscheidungsfaktor ist.
Ein Starterblock-Set, damit das Panel am ersten Tag nicht leer ist.
Bootstrap 5-Komponenten als ziehbare Blöcke.
Tailwind-Klassenblöcke für Teams, die bereits auf Tailwind sind.
Presets und Shells für Teams, die den Editor in einer React-App montieren.
Durchsuchen-KategorieMJML und Newsletter-Ausgaben – die Funktionalität, die das Kernpaket nicht enthält.
Durchsuchen-KategorieMJML-Ausgabe, also rendert E-Mail-HTML über alle Clients hinweg.
Ein Blockset mit Schwerpunkt auf Newsletter und Leinwand.
Responsive E-Mail-Blockierungen für einen Produktions-E-Mail-Builder.
Nach Fähigkeit durchsuchen
Kein Bundle – drei Sets, die die erste wirkliche Anforderung in jedem der drei gängigen Builds abdecken. Jeder Artikel ist ein Live-Listing, und jeder einzelne davon ist optional.
Ihr erster visueller Editor
Lies das TutorialEin kundenorientierter Seitenbauer
Visuelle E-Mail-Erstellung
Die Preise werden live aus dem Katalog vorgelesen.
Die meisten "GrapesJS kann X nicht machen"-Schlussfolgerungen sind eigentlich "das Kernpaket liefert X nicht aus". Das sind unterschiedliche Probleme, und nur eines davon erfordert einen anderen Editor.
Benötigen Sie eine React-Integration?
React-Integration
Ein offizieller Wrapper montiert den Editor als React-Komponente, sodass er wie alles andere in deinem Baum lebt.
Brauchen Sie eine E-Mail?
E-Mail-Plugins
MJML und Newsletter-Presets verwandeln dieselbe Leinwand in einen E-Mail-Builder.
Brauchst du Vorlagen?
Vorlagen-Plugins
Preset- und Template-Manager geben den Nutzern eine Bibliothek, von der aus sie starten können, anstatt einer leeren Leinwand.
Brauchen Sie Tailwind?
Tailwind-Blöcke
Tailwind-Klassen-Blocksets, sodass der Editor die Klassen ausgibt, die dein Codebase bereits verwendet.
Brauchst du benutzerdefinierte Blöcke?
Block-Plugins
Oder schreib sie selbst – ein Block ist ein Label, eine Kategorie und etwas Inhalt.
Brauchst du Aufbewahrung?
Speicheradapter
Fertige Adapter oder dein eigenes Load/Store-Paar gegen deine API.
Ersetze den Editor nicht, nur weil ein Feature fehlt. Erweitere ihn.
Open Source verändert die Ökonomie eines Page Builders. Es beseitigt nicht die Technik, und jede Seite, die dir etwas anderes sagt, verkauft etwas. Hier ist, was du auf jeder Route noch besitzt.
Sie besitzen:
Totale Kontrolle und der längste Weg zu einem ersten funktionierenden Editor. Es lohnt sich nur, wenn der Editor selbst das Unterscheidungsmerkmal deines Produkts ist.
Du baust trotzdem:
Das visuelle Bearbeitungsfundament existiert bereits. Alles oben liegt dir weiterhin zur Verfügung – diese Liste ist kürzer als die von Route A, nicht leer.
Du baust trotzdem:
Der Kauf eines Blocksets oder eines Speicheradapters nimmt eine Aufgabe weg, keine Abhängigkeit. Jeder einzelne ist Code, auf den du jetzt angewiesen bist und der weiterarbeiten muss.
Wir veröffentlichen absichtlich keine Dollarzahl für "einen Page Builder von Grund auf aufbauen". Es gibt keinen glaubwürdigen öffentlichen Benchmark dafür, die ehrliche Antwort hängt ganz von deinem Team und deinem Umfang ab, und eine erfundene Zahl wäre das unzuverlässigste auf dieser Seite. Zähle stattdessen die oben genannten Flächen – sie sind das, was du tatsächlich handelst.
Das ist ein Tausch, kein Ranking. Open Source gibt dir mehr Kontrolle; gehostet gibt dir weniger Betriebsmöglichkeiten. Beide Spalten enthalten Dinge, die dir wichtig sind.
| Dimension | Open Source | Moderiert |
|---|---|---|
| Quellcode-Kontrolle | Deine zum Lesen, Patchen und Gabeln | Begrenzt auf das, was die Plattform offenlegt |
| Selbsthosting | In der Regel ist das möglich | Normalerweise nicht |
| Datenstandort | Deine Infrastruktur | Der Anbieter |
| UI-Anpassung | Hoch – die Hülle gehört dir | Kommt auf die Plattform an |
| Herstellerabhängigkeit | Lower | Höher |
| Instandhaltung | Deine Verantwortung | Der Anbieter |
| Infrastruktur | Deine Verantwortung | Der Anbieter |
| Erweiterbarkeit | Das hängt von der Plugin-API des Projekts ab | Das hängt von den Erweiterungspunkten des Bahnsteigs ab |
| Zeit für einen arbeitenden Redakteur | Integrationsarbeit, bevor irgendetwas nutzbar ist | Nutzbar, bevor du Code geschrieben hast |
Open Source gibt dir mehr Kontrolle, aber du übernimmst auch Verantwortung für Infrastruktur und Wartung. Wenn niemand in deinem Team diese Verantwortung will, ist gehostet die ehrliche Antwort.
Ein visueller Seiteneditor, dessen Quellcode unter einer Open-Source-Lizenz veröffentlicht wird, sodass Sie ihn lesen, auf Ihrer eigenen Infrastruktur ausführen, anpassen und ein Produkt darauf aufbauen können. Es kann eine Bibliothek sein, die Sie in Ihre Anwendung einbetten, oder eine komplette Website-Building-Anwendung, die Sie bereitstellen – das sind sehr unterschiedliche Dinge, die dasselbe Label teilen.
Es gibt kein einziges Bestes – es gibt ein Bestes für deine Anforderungen. Wenn du einen Editor in deine eigene Anwendung einbindest und HTML/CSS-Ausgaben möchtest, passt GrapesJS. Wenn Seiten Bäume deiner React-Komponenten sind, passt ein React-First-Editor besser. Wenn du eine fertige Website-Bauanwendung statt einer Basis möchtest, ist ein einsetzbarer Website-Builder schneller. Beantworte zuerst "Bibliothek oder Anwendung"; er eliminiert mehr Optionen als jeder Feature-Vergleich.
Ja. Das Core GrapesJS-Paket wird unter der BSD-3-Clause-Lizenz veröffentlicht, und der offizielle @grapesjs/react-Wrapper unter MIT. Beide sind permissive Lizenzen. Beachte, dass der GrapesJS-Kern nicht MIT ist, trotz vieler Vergleichsartikel.
Ja. GrapesJS ist eine clientseitige JavaScript-Bibliothek, die du von npm installierst und mit deiner Anwendung bündelst. Es gibt keinen Dienst zum Anrufen und kein Konto zum Erstellen, also läuft es überall dort, wo dein Frontend läuft.
Ja, und es ist eine der häufigsten Verwendungszwecke. BSD-3-Clause ist eine permissive Lizenz, die kommerzielle und proprietäre Nutzung erlaubt, vorausgesetzt, Sie behalten den Urheberrechtshinweis und den Lizenztext in Ihrer Distribution. Überprüfen Sie die Lizenz jedes Projekts einzeln, bevor Sie sich festlegen – einige Open-Source-Seitenentwickler verwenden AGPL-3.0, das spezifische Verpflichtungen für gehostete Produkte mit sich bringt.
Ja. Panels, Buttons, Style-Sektoren und die umgebende Shell sind alle konfigurierbar, und mehrere veröffentlichte Editoren ersetzen das Standard-Layout komplett, während sie denselben Kern verwenden. Wenn du möchtest, dass der Editor wie dein Produkt aussieht und nicht wie GrapesJS, ist das ein unterstütztes Ergebnis, kein Hack.
Ja. GrapesJS hat eine Speicher-API, mit der man einen Adapter mit Lade- und Speicherfunktionen registriert. Was darin passiert – welcher Endpunkt, welche Authentifizierung, welches Schema – gehört ganz Ihnen, sodass Projektdaten in Ihre eigene Datenbank und nicht in die anderer gelangen.
Ja. Der offizielle @grapesjs/react-Wrapper mountet den Editor als React-Komponente, sodass er in deinem Komponentenbaum mit deinem Zustand und der Route darum her lebt. Der Editor-Kern selbst bleibt framework-unabhängig – der Wrapper ist eine Integrationsschicht, kein Rewrite.
Ja, mit einem Vorbehalt, den man klarstellen sollte. Mehrseitiges Bearbeiten ist ein Kernmodul, daher ist die Bearbeitungsseite abgedeckt. Alles, was es zu einem Website-Builder und nicht zu einem Seiteneditor macht – Routing, Domains, Hosting, Deployments, Benutzerkonten – ist Anwendungscode, den du selbst schreibst. GrapesJS gibt dir den Editor, nicht die Plattform.
Ja, mit Plugins. E-Mail-Ausgabe ist nicht im Kernpaket: MJML und Newsletter-Presets fügen die e-mail-spezifischen Blöcke und die Output-Pipeline hinzu, die echte E-Mail-Clients überlebt. Es ist eine echte, produktionsgenutzte Funktion, aber eine installierte, nicht etwas, das man standardmäßig bekommt.
Das Kernpaket ist BSD-3-Clause und der React-Wrapper ist MIT, und beide erlauben kommerzielle Nutzung, auch in Closed-Source-Produkten, solange Sie die Urheberrechts- und Lizenzhinweise behalten. Dies ist eine Zusammenfassung des Lizenztextes, keine Rechtsberatung – lesen Sie die LICENSE-Datei im Repository und fragen Sie Ihren eigenen Anwalt, ob die Antwort für einen Vertrag relevant ist.
Sie fallen in verschiedene Kategorien ein. GrapesJS ist eine BSD-3-Clause-Bibliothek, die Sie installieren und in Ihrer eigenen Anwendung einbetten, in der Sie UI, Backend und Publishing bereitstellen. Webstudio ist ein AGPL-3.0 visueller Website-Builder – eine eigenständige Anwendung mit einem gehosteten Angebot. Die Lizenzen unterscheiden sich auch in einer Weise, die für gehostete Produkte relevant ist: AGPL-3.0 hat Quellcode-Verfügbarkeits-Verpflichtungen, die BSD-3-Clause nicht hat.
Datenmodell und Framework. Puck ist ein MIT-lizenzierter React-Editor: Eine Seite ist ein JSON-Baum deiner React-Komponenten, gerendert von React. GrapesJS ist framework-agnostisch und arbeitet mit HTML- und CSS-Ausgaben, was sich für Produkte eignet, die Markup bereitstellen oder exportieren. Wenn deine Seiten React-Komponenten sind, wird Puck direkter darauf abgebildet; wenn es Webseiten sind, tut GrapesJS das.
Wer trägt die Arbeit. Mit Open Source bekommst du die Quellcode, Self-Hosting, deinen eigenen Datenstandort und die tiefe UI-Kontrolle – und übernimmst Hosting, Upgrades und Wartung. Mit einem gehosteten Builder übernimmt der Anbieter all das, und du akzeptierst deren Preise, Fahrplan und Anpassungsbeschränkungen. Keines von beiden ist universell besser; es hängt davon ab, ob du den Editor bedienen möchtest.
Nein. GrapesJS ist vollständig nutzbar, ohne etwas zu kaufen, und viele Produktionseditoren basieren ausschließlich auf dem Core plus Code, den das Team geschrieben hat. Plugins lohnen sich, wenn eine Funktion nicht das Unterscheidungsmerkmal deines Produkts ist – ein E-Mail-Preset, ein Blockset, ein Speicheradapter – und nicht lohnenswert, wenn sie es doch ist.
Ja, und es ist die übliche Methode, den Editor zu verwenden. Du registrierst einen Komponententyp, der das Markup und die Traits definiert, die Nutzer bearbeiten können, und registrierst dann einen Block, der es aus dem Panel ziehbar macht. Es sind zwei separate Registrierungen, was man wissen sollte, bevor man sich fragt, warum die neue Komponente nicht im Panel ist.
Beginnen Sie mit GrapesJS, behalten Sie die Kontrolle über Ihre Anwendung und erweitern Sie den Editor um die Funktionalität, die Ihr Produkt benötigt.
Lade einen echten Editor im Browser, installiere ihn und mounte ihn in deiner eigenen App.
Probier GrapesJSBlöcke, Speicheradapter, React-Shells und E-Mail-Presets – nur dort installiert, wo sie dir echte Arbeit ersparen.
Durchsuchen Sie GJS.Market-PluginsSehen Sie, wie sich die Open-Source-Optionen unterscheiden, bevor Sie eine Architektur für eine dieser Optionen festlegen.
Vergleichsseiten-BuilderBesitze den Editor. Besitze die Daten. Besitze das Produkt.