Skip to content

UI builder

The UI builder is a drag-and-drop editor (Flutter/Material-inspired) stored as a document graph. Edit in the console; optionally run on a companion device.

The editor toggles Edit and Preview. Run app enters run mode (banner “RUN MODE. Interactions are live”, Stop Run mode). Preview is the canvas. Run mode executes data sources and actions.

Open UI builder, add a page, and drop a widget. Open Data sources, add a GET source, bind it, then Run app.

  • Pages, nodes, props
  • Actions: setVariable, fetchData, navigate, showSnackbar, goBack. Console labels: Set variable, Run data source, Navigate. Triggers include onTap, onChange, onPageLoad, and onSubmit.
  • Labeled versions and revert

Data sources are stored on the project as dataSources. Each source has a method get, post, put, delete, or patch, and a trigger onPageLoad or manual. The right-hand tab is Data sources. They call the project’s database API.

POST /api/projects/:projectId/strala/versions
{ "label": "v1" }

label is optional. Revert with POST .../versions/:versionId/revert. Admin SDK: StralaApi.addPage, patch, createVersion, revertVersion.

Saving a page or creating a version does not deploy Hosting. There is no publish route. A container or static site is a separate Hosting app.

Package packages/strala_companion. Sign in to Tefily, pick the organization and project, and the player opens in run mode. It loads the project through the admin UI-builder API and runs the same player as Run app, full screen, with no editor chrome. It does not build a site and it does not create a Hosting deployment.

  • Pages per project: 10 on Free, 100 on Pro, 500 on Scale.
  • Elements per page: 5,000.
  • Version history: the most recent 200 labeled versions are kept per project; older ones are pruned automatically. Identical page content is stored once, so repeated saves do not multiply storage.
  • Editing is blocked (402) while the billing account is suspended. Reading existing pages keeps working.

Creating a version or running the companion app does not deploy Hosting. There is no separate UI-builder usage meter. Pages are capped per project (10 / 100 / 500). If you later ship the same UI as a hosted site, that site is billed as Hosting and any database traffic as Database.

HTTP: /api/projects/:projectId/strala (get/patch project, pages, versions).