Back to docs

Storage & no lock-in

No vendor lock-in is the core promise of GJS Builder, and it's enforced by how pages are stored — not by a marketing pledge.

Dual save

Every save persists two representations at once:

  1. Project JSON — the editable source of truth for the editor (components, styles, settings). This is what reopens when you edit again.
  2. Compiled HTML + CSS — the output, mirrored straight into post_content.

Why mirror HTML into post_content

Because the compiled HTML lives in the standard WordPress content field, your theme renders the page the normal way. That means:

Deactivate GJS Builder and your pages keep rendering. GJS is a build tool, not a runtime dependency.

There's no proprietary shortcode, no database format only GJS can read, and no white screen if the plugin is gone.

Exporting a page

Open the code view (</>) in the editor and copy the HTML and <style> block. That's a complete, standalone page you can paste anywhere.

Autosave & restore

Autosave writes to a separate draft slot on a configurable interval, so it never clobbers your last explicit save. If a newer autosave exists when you reopen a page, GJS offers to restore it.

Swapping storage

Storage flows through the plugin's REST layer (/pages/{id}, /pages/{id}/autosave). Advanced integrations can point the editor at a different backend; the default is WordPress. See the Developer API.

The precise boundary

  • Editing requires the plugin (you need the editor).
  • Displaying never does (the HTML is already in post_content).

That line is the whole point.