NodeGX Studio · early, version 0.1

For people who think in pages, elements and workflows

NodeGX Studio is a second editor for NodeGX apps. It has three tabs over one app: Design, Workflow and Data. It runs on your own machine as a desktop app. Underneath, every app is a NodeGX project: a folder of plain files, a graph of nodes, a real runtime.

Why we built it

Six years of Bubble, kept and corrected

Richard built client apps on Bubble for six years. He loved the feeling of being in control of what he built, and of being able to answer any question a client asked. He also knew where that way of building went wrong: the same database search copied onto every element, a workflow tab nobody could navigate, a debugger that could not be trusted.

Studio keeps the good parts and refuses the bad habits. A search is made once, by name. Any element reads it. Workflows sit on the element that starts them, not in a list of hundreds. The run timeline records what the app did, step by step, with the screen as it was at each moment.

NodeGX Studio's Design tab on the todo list's sign-in page. The page's elements are listed on the
                  left, the real sign-in card is drawn in the middle with the Create account button selected and its
                  size and distances marked, and on the right a Conditional panel offers the properties a rule can
                  change: background colour, opacity, font size and more.

Design. The screen is the real app. The Create account button is selected, with its size and the distance to its neighbours drawn on it, and a rule is being added on the right.

What it does today

Three tabs, a timeline and Claude Code beside you

Design

The screen is the real app

What you click on is your running app, not a picture of it. Click an element, drag it, resize it, and edit its properties in a typed panel. A red spacing guide shows margins and padding.

Workflow

On the element that starts it

Every element with a workflow carries a mark. Hover it to see the steps in order. Open it to add a step, a Yes/No branch, or an expression built from chips or from JavaScript.

Data

Made once, read anywhere

Types and fields, rows on the app’s backend and option sets. A search is a named item on the page, made once and read by any element that needs it.

The run timeline

What the app did, step by step

Press Record and use the app. Page data, workflows and the screen go on one axis, each step with its values in and out. Scrub back to see the screen as it was.

Live with Claude Code

One folder, two editors

A file changed by Claude Code, VS Code or git pull is drawn in Studio without a reload. Connect Claude Code from the header and it works on the same folder you are looking at.

Publish

A site, from the menu

Publish writes the app as a static site with NodeGX’s own deploy. Its cloud functions go to its backend. The window says where the site is and what it talks to.

NodeGX Studio with the run timeline open under the todo list app. Three lanes, page data,
                  workflows and the screen, run from 0 to 756 milliseconds, and a list beneath names each step: the
                  app opens, the page draws, the app reads the signed-in user, a workflow sorts by kind. A small
                  copy of the screen as it was at that moment sits on the right.

The run timeline. The todo list opening, recorded: what the page asked for, which workflows ran, and the screen as it was at the playhead.

Bring your app

Studio imports an app built on the Bubble platform

The importer turns your app into a NodeGX project: pages, elements, styles, workflows, expressions, option sets, reusable elements, custom states, data types, privacy rules and backend workflows. Anything it cannot map is listed in a report inside the new project and left in the graph as a labelled placeholder, so every page still opens.

We measured it on a real production app of 18 pages and 3,941 elements. The import had no validation errors. On that app, 153 searches were written on pages. Only 70 of them were distinct within their own page. The busiest page had one identical search written seven times. The importer turns each of those into one query.

Your Bubble terms let you reuse your own app’s design and workflows on another platform. The importer reads only your own app.

NodeGX Studio after an import, with the import report open on the right: a table of what was
                  found and what was mapped, row by row: pages, elements, styles, workflows, actions, expressions,
                  data types, option sets, backend workflows, and a Security section under it.

The import report. What was found, what was mapped, and what was left as a placeholder, inside the new project.

Where it stands

Early, and measured

Studio is at version 0.1. The editor, the importer and the run timeline work and have automated checks. The desktop app opens, imports and publishes a project. The next line is a signed build. Someone who is not us downloads it, opens or imports an app, changes it and publishes it.