Support/Builder Guide/Build and publish SaaS pages

Builder Guide

Build and publish SaaS pages

Build inside your SaaS with Puck, preview safely, and publish an exact validated draft.

Primary editor
Puck
Advanced editor
Monaco
Publishes
Validated drafts only

Page design happens inside the SaaS application itself. Open Design, select a User Type and one of its pages, then choose Edit page. The same page document can be edited visually in Puck or, when needed, as canonical JSON in Monaco.

Puck is the primary editor

Puck is the normal visual workflow. Add React blocks from the component library, arrange them on the canvas, and edit their validated properties. Styling comes from the app's design system so shared blocks remain consistent. The saved canonical page JSON is independent of the editor, so switching tools does not create a second version of the page.

Use Monaco advanced JSON mode for precise structural edits or inspection. It edits that same canonical document; it is not a separate page or an authorization shortcut.

Preview without changing the live app

Preview renders the draft in a non-interactive preview surface. You can simulate a selected User Type to check presentation and navigation, but the preview continues to use your current signed-in identity for every data request. It cannot grant the simulated type's DataRoles or Locations, and preview mutations are disabled.

Note

Role simulation answers 'what would this layout show?' It does not answer 'what data may that person access?' Test the published page with a representative signed-in user before release.

Draft, validate, publish

  1. Save draft stores the current canonical page only when it has no validation errors.
  2. Validate checks the latest saved draft against the current component and page contracts.
  3. Resolve every error and warning. Publishing requires a valid draft with zero warnings.
  4. Publish promotes that exact validated draft and version. The public runtime keeps serving the previous published version until promotion succeeds.

Unsaved User Type menu changes block publishing so a page cannot go live against an ambiguous navigation state. Revision history records each saved and published version for inspection and recovery.

Edit leases and version fences

Only one active editor owns a page's edit lease at a time. The lease renews while you work, and expected-version checks prevent an older browser tab from overwriting newer work. If a lease or version becomes stale, reload the authoring map and review the latest draft before continuing.

Data-bound blocks stay permission-aware

Data blocks use approved data bindings. Assigning a page to a User Type makes the route eligible for that audience, but it does not grant records, fields, locations, exports, AI context, or actions. Runtime services still authorize each request with the signed-in person's DataRoles, Locations, and other record and action rules.

For the complete creation-to-publish sequence, continue with Menus and User Types.

Capability review: 2026-09-14. For exact current technical availability, use the generated API Map and first-class module inventory.