PageKit — der selbst gehostete GrapesJS-Website-Builder, als Quellcode. Early Access sichern

Drag-and-drop-Page-Builder

Baue einen Drag-and-drop-Page-Builder mit GrapesJS

Gib deinen Nutzern einen visuellen Editor, mit dem sie Webseiten aus Drag-and-drop-Komponenten, wiederverwendbaren Blöcken und responsiven Styles bauen – ohne dass du die Editor-Infrastruktur von Grund auf schreibst.

Open SourceSelbst gehostetErweiterbarAnpassbar

26k+

GitHub-Sterne

1.4M+

npm-Downloads pro Monat

100+

Plugins auf GJS.Market

BSD-3-Clause

Lizenz des Cores

Ausprobieren

Probiere den Drag-and-drop-Editor aus

Zieh einen Block aus der Palette auf die Arbeitsfläche – oder tippe erst den Block an, dann die Fläche. Bearbeite den Text direkt, verändere Abstand und Radius und wechsle den Viewport, um zu sehen, wie sich das Layout anpasst. Das hier ist ein Modell der Interaktion; der echte GrapesJS-Editor kommt einen Abschnitt weiter unten.

Blöcke

Zieh einen Block herein – oder tippe erst den Block an, dann die Fläche.

Seiten ausliefern statt Tickets

Klick in diesen Text und schreib ihn um.

Das bekommst du

Drei Spalten auf dem Desktop, eine auf dem Handy.

Das Original

… und hier ist GrapesJS selbst

Drei öffentliche GrapesJS-Builds, die erst laden, wenn du es willst – vorher wird nichts angefordert.

In neuem Tab öffnen

Die Standard-Demo von GrapesJS: Blockpalette rechts, Arbeitsfläche in der Mitte, Style-Manager und Ebenenbaum. Alles, was du hier siehst, steckt im Open-Source-Core.

grapesjs.com/demo.htmlKostenlos

Lädt eine Drittanbieter-Demo in einem iframe. Vor deinem Klick wird nichts angefordert.

Der Kreislauf

Ziehen. Ablegen. Gestalten. Veröffentlichen.

Eine Seite, von Anfang bis Ende

  1. Block wählen
  2. Auf die Fläche ziehen
  3. Anpassen
  4. Vorschau
  5. Speichern
  6. Veröffentlichen
Funktionen

Was der Editor bereits kann

Sechs Teilsysteme, die mit dem Core kommen – und die deine Nutzer als eine einzige Geste erleben.

Drag & Drop

Ziehe Blöcke und Komponenten direkt auf die Arbeitsfläche und sortiere sie dort neu.

Visuelles Bearbeiten

Bearbeite Inhalte und Styles auf der Seite selbst – Typografie, Abstände, Farbe und Hintergrund, ganz ohne Stylesheet.

Responsives Design

Passe Layouts über den Device-Manager und Breakpoints des Editors an verschiedene Bildschirmgrößen an.

Wiederverwendbare Komponenten

Baue Abschnitte einmal und nutze sie auf mehreren Seiten – eine Änderung wirkt überall.

Assets

Verwalte Bilder und andere Medien über den Asset-Manager, angebunden an den Speicher, den du ohnehin nutzt.

Veröffentlichen

Binde den Editor an deinen eigenen Publishing-Workflow – GrapesJS gibt dir HTML und CSS, was danach passiert, entscheidest du.

Jeder dieser Punkte ist ein Teilsystem, das du sonst selbst entwerfen, bauen und dauerhaft pflegen müsstest.

Warum GrapesJS

Warum deinen Page-Builder mit GrapesJS bauen?

GrapesJS ist ein selbst gehostetes Open-Source-Editor-Framework und kein gehostetes Builder-Produkt. Genau dieser Unterschied macht es tauglich für den Einsatz in fremden Anwendungen.

Open Source

Starte auf einem offenen Editor-Fundament. Der Core erscheint unter BSD-3-Clause, der offizielle React-Wrapper unter MIT – beide erlauben kommerzielle Nutzung, ohne Lizenzgebühr.

Selbst gehostet

Der Editor läuft in deiner eigenen Infrastruktur. Zwischen dir und deinen Nutzern steht kein Editor-Anbieter, und nichts verlässt deinen Stack, außer du schickst es weg.

Erweiterbar

Erstelle eigene Blöcke, Komponententypen, Befehle und Panels. Die Plugin-API ist dieselbe, gegen die auch die Plugins des Ökosystems geschrieben sind.

Anpassbar

Tausche Panels aus, gestalte die Hülle neu oder steuere den Editor vollständig aus deiner eigenen Oberfläche. Die UI ist nicht festgelegt – die Demos oben zeigen es.

Dein Backend

Der Storage-Manager spricht mit deinen Endpunkten. Projekte, Seiten, Assets und Nutzer bleiben in deiner Datenbank, hinter deiner Authentifizierung.

Plugin-Ökosystem

Erweitere den Editor mit Plugins von GJS.Market und npm, statt jede Fähigkeit selbst zu schreiben.

Einsatzbereiche

Was kannst du damit bauen?

Darunter derselbe Editor-Kern, jedes Mal für eine andere Aufgabe konfiguriert.

Für wen

Wer braucht einen Drag-and-drop-Page-Builder?

Unterschiedliche Gründe, aber darunter immer dasselbe Problem: Seiten zu erstellen sollte nicht jedes Mal eine Entwicklerin kosten.

SaaS-Teams

Mach das Erstellen von Seiten zur Produktfunktion, ohne dass Kunden deine App verlassen.

Website-Plattformen

Bau dein eigenes visuelles Editing-Erlebnis, statt das eines anderen weiterzuverkaufen.

CMS-Entwickler

Setz eine visuelle Ebene auf das Content-Modell, das du bereits hast.

Agenturen

Baue wiederverwendbare Seitensysteme, die Kunden auch zwischen zwei Projekten selbst bedienen können.

Produktteams

Verkleinere die Warteschlange aus Routine-Layout- und Textänderungen, die heute bei der Entwicklung landet.

Entwickler

Starte mit einem erweiterbaren Editor-Kern statt mit einer leeren Fläche und einer Drag-and-drop-Bibliothek.

Selbst bauen oder auf einem Kern aufsetzen

Einen Page-Builder von Grund auf bauen?

Ein Page-Builder ist keine Funktion, sondern ein Dutzend Teilsysteme, die zueinander passen müssen – und weiter zueinander passen müssen, während das Produkt wächst.

Was in einem Page-Builder tatsächlich steckt

  • Editor-Arbeitsfläche
  • Drag & Drop
  • Blöcke
  • Komponenten
  • Style-Manager
  • Responsive-Steuerung
  • Assets
  • Seiten
  • Speicherung
  • Rückgängig / Wiederholen
  • Export
  • Veröffentlichen
  • Wartung
Von Grund auf

Alles davon gehört dir

Arbeitsfläche, Ablagebereiche, Auswahl, Style-Panel, Breakpoints, Asset-Bibliothek, mehrseitiger Zustand, Persistenz, ein Undo-Stack, der das alles überlebt, Export, Veröffentlichung – und die dauerhafte Pflege des Ganzen.

Mit GrapesJS

Du startest, wo das schon funktioniert

Visueller Editor, Drag & Drop, Blöcke, Komponenten, Style-Manager, Assets, Seiten, Storage-APIs und das Plugin-System kommen mit dem Core. Du ergänzt den Teil, der für dein Produkt spezifisch ist.

Bau dein Produkt – nicht noch einen Page-Builder von Grund auf.

Gegenüberstellung

Was in beiden Fällen deine Aufgabe bleibt

Keine der beiden Spalten ist umsonst. Der Unterschied liegt darin, welche Arbeit dir gehört.

TeilsystemVon Grund aufMit GrapesJS
Editor-ArbeitsflächeSelbst entwerfen und bauenIm Core enthalten
Drag & DropAblagebereiche, Indikatoren, VerschachtelungsregelnIm Core enthalten
BlöckeFormat und Palettenoberfläche definierenBlock-Manager, dazu fertige Block-Plugins
KomponentenEigenes Komponentenmodell samt TraitsKomponententypen mit Traits und eigenem Verhalten
Style-ManagerVisuellen CSS-Editor bauenIm Core, Sektoren konfigurierbar
Responsive-SteuerungBreakpoint-Zustand durch den ganzen EditorDevice-Manager, per Plugin erweiterbar
AssetsBibliothek, Upload-Flow, AuswahldialogAsset-Manager, angebunden an deinen Speicher
SeitenMehrseitiger Zustand und NavigationPage-Manager
SpeicherungSerialisierungsformat und EndpunkteStorage-Manager gegen deine API
Rückgängig / WiederholenEin Command-Stack über jede ÄnderungIm Core enthalten
ExportHTML/CSS selbst erzeugengetHtml() / getCss(), dazu Export-Plugins
VeröffentlichenDeine AufgabeDeine Aufgabe – bewusst so
Wartung des EditorsDeine AufgabeGeteilt mit einem Open-Source-Projekt und seinem Ökosystem

Das Veröffentlichen bleibt bewusst in deiner Spalte: Es ist der Teil, der zu deinen Domains, deinem CDN und deinem Release-Prozess passen muss.

Architektur

Wie ein Drag-and-drop-Page-Builder in dein Produkt passt

GrapesJS ist eine Schicht in deiner Anwendung, keine Plattform, an die du deine Nutzer übergibst. Nutzer, Inhalte und die Entscheidung zu veröffentlichen bleiben bei dir.

Deine Anwendung

Die Oberfläche gehört dir

  • Nutzer
  • Auth & Rechte
  • Vorlagen
  • Routing
  • Abrechnung

Eingebettete Schicht

GrapesJS-Editor

Mit Plugins erweitern
  • Arbeitsfläche
  • Blöcke
  • Komponenten
  • Style-Manager
  • Assets
  • Seiten
  • Persistenz

    Deine API

    • Storage-Manager
    • Autosave
    • Versionen
  • Daten

    Deine Datenbank

    • Projekte
    • Seiten
    • Assets
  • Auslieferung

    Dein Publishing

    • Vorschau
    • Veröffentlichen
    • Live-Website
GrapesJS liefert die visuelle Bearbeitungsschicht, während deine Anwendung Nutzer, Inhalte, Speicherung und Veröffentlichung behält.

Zur Mechanik, den Editor in eine bestehende App zu hängen – iframes, Routing, Auth-Übergabe – siehe den Leitfaden zum einbettbaren Page-Builder

Responsive

Responsive Seiten visuell bauen

Der Device-Manager des Editors schaltet die Arbeitsfläche zwischen Breakpoints um, und Styles, die bei aktivem Gerät gesetzt werden, gelten nur für diese Breite.

Desktop1440px
Tablet768px
Mobil375px

Was sich pro Breakpoint ändern lässt

  • Layout & Spalten
  • Abstände
  • Typografie
  • Sichtbarkeit
  • Ausrichtung
  • Hintergrund

Lass Nutzer Layout, Abstände, Typografie und Sichtbarkeit für verschiedene Bildschirmgrößen anpassen. Wie eine veröffentlichte Seite auf einem bestimmten Gerät am Ende aussieht, hängt weiterhin vom ausgelieferten HTML und CSS ab – der Editor steuert die Regeln, nicht den Browser.

Blöcke

Beginne mit fertigen Blöcken

Ein Block ist der Ausgangspunkt, den ein Nutzer hereinzieht. Das sind die Abschnittstypen, die die meisten Page-Builder am ersten Tag brauchen – baue sie selbst gegen die Block-Manager-API oder installiere ein Block-Plugin und starte mit einer vollen Palette.

  • Hero

    Überschrift, Begleittext und eine Hauptaktion.

  • Header

    Logo und Navigation, auf kleinen Bildschirmen als Menü.

  • Features

    Ein Spaltensatz für Vorteile, mit Icon, Titel und Text.

  • Preise

    Tarifkarten, eine davon als Empfehlung hervorgehoben.

  • Stimmen

    Zitate mit Namensnennung und Avatar.

  • Galerie

    Ein Bildraster, gefüllt aus dem Asset-Manager.

  • Call to Action

    Eine einzelne, zentrierte Handlungsaufforderung.

  • Kontakt

    Ein Formular, angebunden an den Endpunkt deiner Wahl.

  • Footer

    Linkspalten, Rechtliches und sekundäre Navigation.

Das sind Blocktypen, keine Produkte. Die tatsächlich erhältlichen Block-Plugins stehen weiter unten auf dieser Seite.

Blöcke vs. Komponenten

Blöcke sind, was Nutzer ziehen. Komponenten sind, was daraus wird.

An dieser Unterscheidung entscheidet sich, ob GrapesJS für dich ein Website-Baukasten-Spielzeug ist oder ein Editor-Kern, auf dem du ein Produkt bauen kannst.

  1. Block
  2. Komponente
  3. Eigene Komponente
  4. Dein Produkt

Block

Der Ausgangspunkt

Ein Eintrag in der Palette. Ihn auf die Fläche zu ziehen fügt Inhalt ein – der Block selbst ist nicht das, was auf der Seite bleibt.

Komponente

Das bearbeitbare Element

Das, was aus dem Block nach dem Ablegen wird. Komponenten haben einen eigenen Typ, Traits und Regeln dazu, was verschachtelt, gezogen oder entfernt werden darf.

Eigene Komponente

Von dir definiert

Registriere deinen eigenen Komponententyp, und der Editor behandelt ihn als vollwertiges Element: deine Traits, deine Toolbar, deine Einschränkungen, gestützt auf deine Daten.

Weil eigene Komponenten auf deinem Code beruhen, kann ein GrapesJS-Editor Dinge bearbeiten, für die ein generischer Website-Baukasten gar keinen Begriff hat – eine Preistabelle an deinen Tarifen, ein Produktraster aus deinem Katalog, ein Formular an deiner API.

Vorlagen

Fang nicht bei einer leeren Fläche an

Die wenigsten Nutzer wollen eine leere Seite. Liefere einen Satz Startlayouts und lass sie eigene speichern – Presets konfigurieren den ganzen Editor, Vorlagen geben eine Seite zum Weiterarbeiten.

Die Layouts, nach denen Nutzer typischerweise fragen

  • SaaS
  • Startup
  • Agentur
  • Unternehmen
  • Portfolio
  • Landingpage
  • E-Commerce

Das sind Layout-Kategorien, keine Katalogeinträge – also das, was du für deine eigenen Nutzer bauen oder kuratieren würdest. Die tatsächlich installierbaren Presets und Vorlagenmanager stehen im Plugin-Abschnitt unten.

Speicherung

Deine Seiten bleiben in deiner eigenen Datenbank

Der Storage-Manager ist ein Client deiner API, kein Dienst. Richte ihn auf deine Endpunkte, und der Editor lädt und speichert darüber.

Wohin die Daten gehen

  1. Editor
  2. Projektdaten
  3. Deine API
  4. Deine Datenbank
Remote-Speicherung + VeröffentlichenJS
const editor = grapesjs.init({
  container: '#editor',

  // Each page is a row in your database, behind your own auth.
  storageManager: {
    type: 'remote',
    autosave: true,
    options: {
      remote: {
        urlStore: `/api/pages/${pageId}`,
        urlLoad: `/api/pages/${pageId}`,
        fetchOptions: { credentials: 'include' },
      },
    },
  },
});

// Publishing stays on your side — your domains, your CDN, your workflow.
async function publish() {
  await fetch(`/api/pages/${pageId}/publish`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ html: editor.getHtml(), css: editor.getCss() }),
  });
}

Verbinde GrapesJS mit deinem eigenen Backend und entscheide, wie Projekte, Seiten, Assets und Nutzer gespeichert werden. GJS.Market verkauft Plugins – es hostet deine Daten nicht.

Veröffentlichen

Du bestimmst, wie Seiten veröffentlicht werden

  1. 1
    Bearbeiten

    Der Nutzer baut die Seite

    Ziehen, ablegen, bearbeiten und gestalten auf der Arbeitsfläche. Autosave hält angefangene Arbeit wiederherstellbar.

  2. 2
    Entwurf

    Über deine API sichern

    Der Storage-Manager schickt das Projekt an deinen Endpunkt. Veröffentlicht ist damit noch nichts.

  3. 3
    Vorschau

    So rendern, wie Besucher es sehen

    Exportiere HTML und CSS und zeige die Vorschau auf einer Route, die nur die Autorin erreicht.

  4. 4
    Veröffentlichen

    Dein Workflow, deine Regeln

    Freigaben, Terminierung, Versionierung – was dein Produkt ohnehin tut. GrapesJS ist an diesem Schritt nicht beteiligt.

  5. 5
    Live

    Aus deiner Infrastruktur ausgeliefert

    Deine Domains, dein CDN, dein Caching. Die Seite ist ganz normales HTML und CSS.

GrapesJS kümmert sich um das Bearbeitungserlebnis. Deine Anwendung steuert den Publishing-Workflow.

Plugin-Ökosystem

Erweitere deinen Page-Builder mit GJS.Market-Plugins

Jede Karte hier unten ist ein echter Eintrag – Namen, Preise und Vorschaubilder kommen live aus dem Katalog, damit nichts auf dieser Seite von dem abweichen kann, was tatsächlich verkauft wird.

Zusammenstellungen

Stell den Page-Builder zusammen, den du brauchst

Vier Startkonfigurationen. Jede ist ein echter Warenkorb aus Einträgen, kein Bundle – installiere, was du brauchst, und lass den Rest weg.

Preise kommen live aus dem Katalog.

Schnellstart

Fang an, deinen Page-Builder zu bauen

Zwei Dateien, und der Editor steht auf dem Bildschirm. Alles danach ist Konfiguration.

npm install grapesjs
editor.jsJS
import grapesjs from 'grapesjs';
import 'grapesjs/dist/css/grapes.min.css';

// The editor core. Mount it on any container in your app.
const editor = grapesjs.init({
  container: '#editor',
});

Dann legst du fest, was Nutzer ziehen können – und was daraus wird, wenn sie es ablegen:

blocks.jsJS
// A block is what the user drags. A component is what it becomes
// on the canvas once dropped — and what your app can then control.
editor.BlockManager.add('pricing-table', {
  label: 'Pricing',
  category: 'Sections',
  content: { type: 'pricing-table' },
});

editor.DomComponents.addType('pricing-table', {
  model: {
    defaults: {
      // Lock the frame, let the user edit only what you allow.
      draggable: 'main, section',
      traits: ['plan', 'currency'],
    },
  },
});
  1. Blöcke ergänzen
  2. Komponenten anpassen
  3. Speicherung konfigurieren
  4. Backend anbinden
  5. Veröffentlichen

Ab hier ist die Arbeit produktspezifisch: welche Blöcke deine Nutzer bekommen, welche Komponententypen du registrierst und wo Projekte gespeichert werden.

Frameworks

GrapesJS in deinem Stack einsetzen

Der Core ist framework-agnostisch – er wird auf einen DOM-Container gehängt. Diese Seiten behandeln die Verdrahtung im Einzelnen.

Vergleich

GrapesJS im Vergleich zu anderen Page-Buildern

Nur Eigenschaften, die sich gegen das veröffentlichte Paket und die Dokumentation des jeweiligen Projekts prüfen lassen. Die Fähigkeiten unterscheiden sich schon durch das Designziel – Craft.js ist bewusst headless, Puck ist React-first, Builder.io ist eine gehostete Plattform.

EigenschaftGrapesJSPuckCraft.jsBuilder.io
Open SourceJa – BSD-3-ClauseJa – MITJa – MITSDKs MIT; Plattform proprietär
Selbst gehostetJaJaJaGehosteter Dienst
FrameworkFramework-agnostisch; React-Wrapper verfügbarReactReactSDKs für mehrere Frameworks
Eigene BlöckeJa – Block-ManagerJa – KomponentenkonfigurationJa – User ComponentsJa – registrierte Komponenten
Eigene KomponentenJa – Komponententypen mit TraitsJa – React-Komponenten mit FeldernJa – React-Komponenten mit SettingsJa – mit Inputs
Eigene Editor-OberflächeJa – Panels austauschbar, oder headless steuerbarMitgelieferte UI, thembarSelbst mitbringen – keine UI enthaltenUI des Anbieters
Eigenes Storage-BackendJa – Storage-Manager gegen deine APIJa – Persistenz liegt bei dirJa – Zustand persistierst duInhalte liegen bei Builder.io
Eigenes PublishingJaJaJaÜber die Builder.io-APIs
Plugin-ÖkosystemJa – GJS.Market und npmWachsendKleinIntegrationen des Anbieters

Lizenzen am 2026-09-03 gegen die npm-Registry geprüft: grapesjs 0.23.6 erscheint unter BSD-3-Clause; @measured/puck, @craftjs/core und @builder.io/react erscheinen unter MIT. Die Fähigkeiten geben die öffentliche Dokumentation der Projekte wieder – prüfe sie vor einer Entscheidung selbst.

Verwandt

Verwandte Lösungen

Derselbe Editor-Kern, eine andere Frage. Wenn eine davon deine Lage genauer trifft, fang dort an.

FAQ

Fragen zum Drag-and-drop-Page-Builder

Loslegen

Bau deinen eigenen Drag-and-drop-Page-Builder

Starte mit GrapesJS, passe das Bearbeitungserlebnis an und erweitere es um die Plugins, die dein Produkt braucht.

Marktplatz

Page-Builder-Plugins ansehen

Blöcke, Vorlagen, Speicherung, Assets, Export und KI – echte Einträge mit echten Preisen.

Page-Builder-Plugins ansehen
Kostenlos

Loslegen

Core installieren, Editor mounten, ersten Block registrieren. Ganz ohne Anmeldung.

Loslegen
Services

Individuelle Entwicklung nötig?

Eigene Komponenten, Editor-Oberfläche, Anbindung an dein Backend – sag uns, was der Builder können muss.

Individuelle Entwicklung nötig?