How it works

A small runtime that coordinates replaceable layers

GJS Builder is not a monolith. It's a lean WordPress plugin that hosts the GrapesJS engine and lets an ecosystem of extensions do the rest — loaded at runtime, verified, and never locking you in.

The mental model

Think of it the way you think about your editor of choice. The core does almost nothing on its own; it provides a stable stage and a public API. Everything you actually build with — blocks, panels, SEO, themes — is an extension that plugs into that API. The same API that ships the defaults is the one third parties use.

If you've used VS Code, WordPress, Figma or a JetBrains IDE, you already know the shape.

The layered architecture

Each layer is replaceable. Swap the engine version, change the preset, host your own catalog — without forking the plugin.

1

WordPress host

Auth, capabilities, media library, the Landings post type and permalinks.

2

GJS core

A thin coordinator: boot, REST API, storage, rendering, the extension manager and settings.

3

GrapesJS engine

The visual editor itself — served locally, with a selectable, swappable version.

4

Extensions

Presets, plugins, themes and blocks that register through the public API and reshape the editor.

5

GJS Market

The catalog, build service and storefront that deliver, verify and update those extensions.

The load-order guarantee

On the editor screen, the core exposes window.grapesjs and window.GjsBuilder synchronously, then defers grapesjs.init() until the page is ready. That single guarantee is what lets any installed extension register its blocks, panels or SEO provider before the editor boots — no race conditions, no private hooks.

Dual save, zero lock-in

Every save does two things at once.

Editable project JSON

The source of truth for the editor — components, styles and settings you can reopen and keep designing.

Compiled HTML + CSS

The output, mirrored straight into post_content. This is what the theme renders — and what survives if the plugin is ever deactivated.

Because the HTML already lives in post_content, your pages never depend on GJS to keep displaying. Open the code view and copy it out any time.

Two ways to render

Theme mode

The page renders inside your theme's header and footer — part of the site.

Canvas mode

The page renders as a blank, full-bleed canvas — perfect for landing pages. Set the default globally, override per page.

Either way, the front end ships saved HTML plus one inline style block and zero platform JavaScript.

Go deeper in the docs

The architecture, storage model, developer API and rendering pipeline are all documented in detail.