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.
WordPress host
Auth, capabilities, media library, the Landings post type and permalinks.
GJS core
A thin coordinator: boot, REST API, storage, rendering, the extension manager and settings.
GrapesJS engine
The visual editor itself — served locally, with a selectable, swappable version.
Extensions
Presets, plugins, themes and blocks that register through the public API and reshape the editor.
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.
