Unify Applications
Logo
Builder Tour

Builder Tour

Logo

15 mins READ

Overview

The UnifyApps page builder is a single-page application split into four working areas arranged around a central canvas:

navigator-pages.png
navigator-pages.png

  • The Top Bar — app identity, page switching, global actions (preview, publish), and keyboard shortcut toggles.

  • The Left Rail — a set of icon-labeled panels giving you access to AI, design, navigation, data, the block tree, search, analytics, version history, settings, and debugging tools.

  • The Canvas — the live rendering of the current page. Click any element to select it.

  • The Properties Panel — context-sensitive configuration for the currently selected block (Content, Appearance, and Interactions).

Selection is synchronized across all four areas: clicking a block on the canvas selects it in the Hierarchy panel and opens its settings in the Properties panel, and vice versa.

For a closer look at placing, selecting and moving components on the canvas, see Page Builder Canvas & Component Arrangement.

The Canvas

The canvas occupies the center of the builder and is the primary way to interact with your page at a glance. It renders a live, frame-accurate representation of your app in the current base device viewport.

Selecting and interacting with blocks

Click any block on the canvas to select it. A selection ring highlights the block's bounds and its name appears in a label above it. The Properties panel on the right immediately reflects the selected block's settings.

When a block is selected on the canvas:

  • Its node is highlighted in the Hierarchy panel tree.

  • Its properties are shown in the Content, Appearance, and Interactions tabs of the Properties panel.

  • A drag handle appears so you can reorder it among its siblings by dragging.

Interactive Canvas mode

By default, the canvas is in Selection mode — clicks select blocks rather than triggering their interactions. Toggle to Interactive Canvas mode (keyboard shortcut: Cmd/Ctrl + Shift + E) to run the page as a user would, with all click handlers and form submissions live. This is useful for testing event-action chains without leaving the builder to open the full preview tab.

The canvas header shows a cursor icon indicator when Interactive Canvas mode is active.

Panel visibility toggles

Pressing [ hides or shows the left rail. Pressing ] hides or shows the Properties panel. Both toggles give you a wider canvas when you need to review layouts at full width.

The Top Bar

The top bar spans the full width of the builder and hosts five groups of controls, from left to right:

  1. Back navigation and app identity — the back arrow, the app name and the publish status.

  2. Device and page switchers — the device switcher (Desktop, Tablet, Mobile) and the page switcher.

  3. Interactive Canvas toggle — switches the canvas between selecting blocks and running the page (Cmd/Ctrl + Shift + E).

  4. Collaboration and page score — avatars of the people editing the app with you, and the page score shown as a percentage. Click the score for details.

  5. Preview and Publish — the Preview icon (a play button, labelled Preview Application), the Publish button, and a toggle for the Properties panel.

Back navigation and app identity

On the far left, a back arrow returns you to the Applications Manager. Next to it, the app name is displayed as a clickable label that opens the app's Overview tab in a new browser tab.

Page switcher

The page switcher is a button in the top bar that shows the current page's name. Click it to open a popover listing the app's pages, then click any page to switch to it — the canvas and Hierarchy panel update immediately.

Note: Adding a new page from the page switcher.

  1. Open the page switcher: Click the current page name in the top bar.

  2. Click + and choose Page: The menu offers two options: Page and Module.

  3. Pick a template: In Choose a Template, select a template such as Blank Page.

  4. Fill in Page Setup: Enter the page name and the other details in Page Setup to create the page.

To rename a page later, use Rename Page in the page's menu in the Hierarchy panel.

Autosave

The builder saves every edit automatically — there is no Save button to press. Each auto-save creates an entry in the Saved Versions panel in the left rail. When teammates edit the same app, their avatars appear in the top bar.

Preview and Publish

The Preview icon (a play button, labelled Preview Application) opens your latest auto-saved work in a new browser tab with live data. Publish opens a confirmation panel and creates a new numbered version (V1, V2, …) at the app's Application URL. The top bar's publish status reads Not Published before the first publish, and Vn Published (for example, V3 Published) after that. For details, see Preview & Publish.

Keyboard shortcuts

Tip: Builder keyboard shortcuts

Shortcut

Action

Cmd/Ctrl + Z

Undo the last change

Cmd/Ctrl + Shift + Z

Redo the undone change

Cmd/Ctrl + Shift + E

Toggle Interactive Canvas mode

[

Toggle left rail visibility

]

Toggle Properties panel visibility

A, D, N, E, H, F, Y, V, S

Open a left rail panel (see the Left Rail table). Works when you aren't typing in a field.

Alt + Shift + D

Open / close the Dev Tools floating window

The Left Rail

The left rail is a vertical strip of icon buttons, each opening a dedicated panel. Only one panel is open at a time — clicking an active panel's icon closes it. The rail can be hidden entirely with the [ shortcut.

Panel

Icon / Shortcut

Purpose

AI Assistant

AI editor icon · A

Generate new pages and components or edit existing ones using natural language prompts. Understands the current page's data context. AI Assistant appears only when AI app building is enabled for your workspace.

Design

Plus icon · D

Browse and insert components. Filter by All components, Built-in components, Template components or Custom components, or search for a component. Equivalent to the component picker that opens via Add Component in Hierarchy.

Navigator

Pages icon · N

Lists the app's pages and modules on separate Pages and Modules tabs. Click one to open it on the canvas. Provides a bird's-eye view of the app's navigational structure without opening each page. Not shown when you edit a template component.

Data

Database icon · E

Manage data sources, functions, and variables. One list grouped by the current page and App; each group has an Add Resource button that creates a Data Source, Function, or Variable at that level.

Hierarchy

Branch icon · H

The block tree for the current page. Shows the nesting from the page's Header, Body and Footer down to every leaf block. Drag to reorder. Right-click any node for block actions (cut, copy, paste, copy and paste styles, rename, delete, and more). Add Component rows in the tree insert a block under that parent.

Finder

Magnifying glass icon · F

Search across the entire page for block names, visibility conditions, event payloads, custom CSS classes, HTML attribute overrides, and page-level configuration. Useful for large apps where scrolling the Hierarchy tree is slow.

Analytics

Bar chart icon · Y

Shows the app's analytics dashboard for the published app. Click a data point to jump to the block, data source, or variable it refers to. Turn on Enable Analytics in Settings → Analytics first — data is collected only from then on. Not shown when you edit a template component.

Saved Versions

Clock / history icon · V

A timestamped log of every save. Each entry shows entity type (Block, Data Source, Variable, …), change type (Created / Updated / Deleted), entity name, timestamp, author, and a deployed version badge if that save was included in a publish. Click any entry to preview or restore it.

Settings

Gear icon · S

App-wide configuration: Navigation (page routes, navigation component), Brand Assets (logo, favicon, loading screen), Theme Builder (design tokens), and custom code injection (global CSS, head scripts).

Dev Tools

Terminal icon · Alt + Shift + D

A floating debug overlay. Four tabs: Pulse (real-time event log), Console (JavaScript console output from Functions), Network (all data source requests with request/response details), State (live snapshot of all variables and data source responses). The icon shows a red badge with the count of errors in the current session.

AI Assistant

The AI Assistant panel understands your app's current page context — what blocks exist, what data sources are configured, what variables are declared. You can prompt it to:

  • Generate a new page from a description ("Create a detail page for a contacts record with a header card and an activity timeline").

  • Add specific components ("Add a bar chart below the table showing counts by status").

  • Modify existing components ("Make the table filterable by the Status column").

  • Wire events ("On row click in the table, navigate to /contacts/:id").

The AI Assistant generates changes as diffs against the interface record — you can review and accept or reject them before they are applied to the canvas.

Hierarchy Panel

The Hierarchy panel is the most-used panel in the builder for users who prefer precise structural control. The tree displays the full nesting of blocks on the current page, starting from the page's three roots: Header, Body and Footer. Every block node shows:

  • A type icon (table, form, button, container, etc.)

  • The block's instance name (e.g., table1, form1)

  • A visibility toggle (eye icon) to show/hide the block on the canvas

Right-clicking any node opens the block actions context menu with options: Add Component, View component, Cut (Cmd/Ctrl + X), Copy (Cmd/Ctrl + C), Copy styles (Shift + Cmd/Ctrl + C), Paste (Cmd/Ctrl + V), Paste styles (Shift + Cmd/Ctrl + V), Rename, HTML Attributes, Custom CSS, Mark overridable / Unmark overridable (template components only), and Delete.

Data Panel

The Data panel shows one list of resources: the current page's data sources, functions, and variables, plus an App section for resources shared across all pages. Each section has its own + (Add Resource) button — choose Data Source, Function, or Variable to create one at that level. Resources defined at app level are accessible in any block's binding expressions using the standard {{resourceName}} syntax. See Data Sources Overview.

Saved Versions Panel

The Saved Versions panel logs every auto-save as a change entry. For restoring and comparing versions, see App Versions. Each log row records:

  • Entity type — Block, Data Source, Variable, Page, Settings, etc.

  • Change type — Created, Updated, or Deleted.

  • Entity name — The name of the affected item (e.g., table1, dataSource1).

  • Timestamp — When the save occurred (to the second).

  • Author — The user who made the save (visible in collaborative sessions).

  • Deployed version badge — A "V3" badge (or similar) indicating which published version included this save, if any.

To restore a previous state, click a save entry and select Restore this version. The working copy is rewound to the state captured in that log entry — a new save entry is created for the restore action itself.

Dev Tools

The Dev Tools overlay can float anywhere on screen and is resizable. It does not need to be closed to continue building — many developers keep it docked at the bottom of the screen while they work. The four tabs serve different debugging needs (for the full reference, see Dev Tools & Debugger):

  • Pulse — A real-time stream of every event that fires (block name, event type, timestamp). Clicking an entry shows the full event payload, which is useful for understanding what data is available inside action expressions.

  • Console — Standard JavaScript console output. console.log() statements inside Data Functions appear here, making it easy to inspect transformation logic without opening the browser's native DevTools.

  • Network — A log of every data source request, showing the request parameters sent to the integration and the full response body received. Red rows indicate errors. Click any row to inspect the full request/response cycle.

  • State — A live, auto-updating tree of every variable and data source response in the current session. Values update in real time as you interact with the app in Interactive Canvas mode or via preview.

The Properties Panel

The Properties panel appears on the right side of the builder whenever a block is selected. It has two tabs, Content and Appearance. For blocks that expose events, Interactions is a section of the Content tab. See Configuring a Component.

Tab / Section

What you configure

Content

Data binding (point a Table at a data source; add and configure Form fields; set a Label's text to a variable or literal; configure Chart series). The Content tab is where what this block shows is defined.

Appearance

Visual properties: colors (background, border, text), typography (font size, weight, line-height), spacing (padding, margin, gap), and the Layout section (width, height, flex/grid settings, overflow). Values can be hard-coded, bound to theme tokens, or made conditional with expression syntax.

Interactions (section of the Content tab)

Event-action wiring. Lists the events the selected block supports (On Click, On Submit, On Change, On Select Row, …). Click + (Add Interaction) to pick an event and an action. Several interactions on the same event run in order. See Events & Actions Overview.

Content Tab

The Content tab is context-sensitive — it renders a different set of fields depending on the selected block type:

  • For a Table: a Data field to bind a data source, a column editor to add/remove/reorder/rename columns, a pagination settings section, and an inline search toggle.

  • For a Form: a fields editor to add form inputs (Text Field, Number, Date Picker, Select, File Upload, etc.), a data source binding for pre-filling the form with existing record data, and submit behavior options.

  • For a Chart: a data source selector, series configuration (field mappings for X-axis, Y-axis, color-by), and chart type selector.

  • For a Text / Label: a rich text editor with expression bindings ({{variable}}) for dynamic content.

  • For a Button: label text and icon selection.

Appearance Tab

The Appearance tab groups visual settings into logical sections:

  • Colors — background color, text color, border color. Each picker offers a hex input, a theme token selector, and an opacity slider.

  • Typography — font family (from the theme's font stack), size, weight, line-height, letter-spacing, text alignment.

  • Layout — width, height, min/max dimensions, flex-direction, justify-content, align-items, gap, padding, margin. A visual box model diagram lets you click directly on margin and padding zones to edit them.

  • Border & Radius — border width, style (solid/dashed/dotted), color, and border-radius (with per-corner control).

  • Effects — box-shadow, opacity, and visibility condition (a boolean expression that determines whether the block renders at all at runtime).

  • Custom CSS — a code field for one-off CSS class names (applied as HTML class attributes on the rendered element) and arbitrary inline style overrides, for edge cases not covered by the visual controls.

Interactions Section

The Interactions section is available at the bottom of the Properties panel for every block that exposes events. The full action library includes:

  • Data operations — Trigger Data Source, Trigger Component Method (call a block's methods, such as resetting a form), Trigger Function, Run Script, Log to debugger.

  • Navigation & routing — Go to URL, Go to Page, Navigate Back, Set URL Parameters, Open Share Dialog.

  • Block controls — Control Modal, Control Drawer, Control Notification, Control Component Selection, Submit Form, and more.

  • State management — Control Variable, Control Session Storage, Control Local Storage.

  • Events — Emit Page Event, Send Custom Event, Send MQTT Event.

  • User interactions & sharing — Show Snackbar, Copy to Clipboard, Export Data, Download File, and more.

  • Mobile and integrations — device, build and integration actions that appear only in Mobile apps.

Conditions and delays aren't separate actions — they're options on every action. Use Only run when to skip an action when a condition is false, and Execution Strategy (Delay, Debounce, or Throttle) to control its timing.

Example: Table Row Select → Navigate to Detail Page

A common pattern is navigating to a detail page when a user selects a row in a table. This example is illustrative: it assumes an app-level variable selectedContact and a ContactDetail page already exist.

  1. Select dataTable1 on the canvas.

  2. In Interactions, click + (Add Interaction) and set the event to On Select Row.

  3. Choose Control Variable and the Set Value operation. Target: selectedContact (an app-level variable). Value: {{ dataTable1.selectedRow }}.

  4. Click + (Add Interaction) again and add another On Select Row interaction.

  5. Choose Go to Page. Target page: ContactDetail. Pass query param: id = {{ dataTable1.selectedRow.id }}.

The actions run in sequence: the variable is set first, then navigation fires. The ContactDetail page receives the id parameter and can use it to load the correct record.

Tip: Expressions in action parameters. Any action field that accepts a value — message text, variable value, URL, condition — also accepts a dynamic expression using double-curly-brace syntax: {{ fetchRecordsContacts['data']['objects'][0]['name'] }}, {{ form1.data.email }}, {{ userContext.id }}. The expression editor provides autocomplete for all available identifiers in scope.

FAQs

Where can I find all available keyboard shortcuts?

The core builder shortcuts are documented in the Keyboard Shortcuts table on this page. The most frequently used are: Cmd/Ctrl + Z (Undo), Cmd/Ctrl + Shift + Z (Redo), Cmd/Ctrl + Shift + E (Toggle Interactive Canvas mode), [ (toggle left rail), ] (toggle Properties panel), and the single-key panel shortcuts listed in the Left Rail table (for example, H for Hierarchy and E for Data).

How do I restore the builder layout if I accidentally close a panel?

You can reopen any closed panel using its single-key shortcut (for example, H for Hierarchy, E for Data, D for Design — see the Left Rail table) or by clicking its icon in the left rail. Press [ to show the left rail if it is hidden, and ] to restore the Properties panel. There is no global "reset layout" button — each panel is toggled independently, so you can restore them one at a time.

Can I use the builder across multiple monitors?

The builder is a browser-based application that you can open in any browser window on any monitor. The Dev Tools overlay (Alt + Shift + D) can be dragged and resized independently, making it practical to keep it on a secondary screen while the main builder window sits on your primary display. Full multi-window layout separation is not natively supported — the builder, canvas, and panels always render within a single browser window.

Does the builder autosave my work?

Yes. The builder saves every edit automatically — there is no Save button. Each auto-save creates an entry in the Saved Versions panel, so you can restore an earlier state if you need to.

Can I access the builder on a mobile device or tablet?

The builder is designed for desktop use and requires a keyboard and mouse for the best experience. While it may be technically accessible in a tablet's browser, the panel layout, drag-and-drop interactions, and keyboard shortcuts are not optimized for touch input. To review your app on mobile, use the Preview feature — which opens your latest saved working copy on your device — rather than trying to build from a mobile browser.