Web builder

Overview
The builder assembles surfaces from blocks: pages, reusable templates (header, footer, page types) and popups. The structure is not markup but a tree of data — the markup is produced from it. That is why preview and page look the same, and why a block can be reworked without losing text.
The editor separates two jobs that are often confused: content (text and images in existing blocks) and style & structure (adding, moving and shaping blocks). Both have their own permissions — so someone can maintain texts without being able to change the layout.
Core tasks
Create and edit a surface. From the overview you create a page and open the editor. Blocks are selected in the tree on the left and configured on the right.
Use templates. Header and footer are templates; changing one changes it everywhere. Display conditions control where a template applies.
Style classes instead of one-offs. A style class bundles design and affects every surface that uses it. That is the difference between a maintainable site and a hundred special cases.
Work from the library. The library holds reusable templates and global elements, including export and import.
Publish. Publishing can happen immediately or be scheduled; rolling back to an earlier state is possible.
Fields in detail
The tree is the truth, the markup a product. You edit blocks, not source code; the page is generated from them.
Page
| Field | Required | Values / format | What it does |
|---|---|---|---|
Name name | yes | text | What the page is called internally. |
Kind kind | yes | page, template, block | What it stands for. A template gives many pages the same shape; a block is a reusable piece. |
Template kind templateKind | for templates | selection | Which content type the template applies to. |
Address slug | yes | text | The part of the public address. Do not change it once the page is linked — every link would otherwise lead nowhere. |
Language locale / languages locales | no | language codes | Which languages the page exists in. |
Brand brandId | no | one of your brands | For which brand. |
Theme themeUlid | no | a configured theme | Colours, fonts, spacing. |
Blocks blocks | yes | tree of blocks | The content of the page. Every block carries its own styling; the markup is generated from it and never written by hand. |
Display conditions displayConditions | no | conditions | When a section is visible — language, device, period. |
Popup popupConfig | no | structure | When and how an overlay appears — after a delay, on exit intent, once per visitor. Without the "once per visitor" limit an overlay quickly becomes a nuisance. |
Search engines and preview
| Field | Values / format | What it does |
|---|---|---|
Page title metaTitle | text | What appears in the browser tab and as the heading in search results. |
Description metaDescription | text | The text under the result. It decides the click, not the ranking. |
Canonical address canonicalUrl | address | Which address counts as the real one when the same content is reachable several times. |
Index robotsIndex / follow links robotsFollow | yes/no | Whether the page may appear in search results and whether its links are followed. Indexing switched off by accident quietly removes the page from search — and nobody notices until the traffic goes. |
Preview image ogImageFileUlid | image file | What appears when shared in chats and networks. |
Preview image as an address ogImageUrl | address | A freely entered sharing image. It overrides the uploaded ogImageFileUlid — if something is here, the picked file is not used. |
Structured data structuredDataType, structuredDataJson | type and structure | Extra details for search engines — event, product, how-to. They enable the richer presentation in results. |
Translated SEO details seoI18n | per language | Title and description in the further languages. Without them the source language appears in the foreign-language result. |
Interface and automation only
| Field | Values / format | What it does |
|---|---|---|
version | number | The state of the draft tree. When saving you send back the state you found; if it has moved on, a second editor was faster — the change is rejected instead of overwriting theirs. Without it no check happens. The state only rises when the tree changes; SEO entries, publishing and custom code leave it alone. |
Settings & permissions
- View:
builder.page.view· Create:builder.page.create· Content:builder.page.update - Style & structure:
builder.style.edit· Style classes:builder.class.view/builder.class.manage - Templates:
builder.template.manage· Popups:builder.popup.manage - Design tokens and breakpoints (Settings → Builder themes):
builder.theme.manage - Library:
builder.library.manage· Publish:builder.page.publish - Locked blocks:
builder.lock.override
Module flag: module.builder.
FAQ & troubleshooting
I cannot move a block. Either builder.style.edit is missing, or the block is locked — only builder.lock.override releases locks.
A change is not visible on the page. Check whether it was published. Drafts stay in the editor.
A style change affects several places. That is what a style class is for. For a one-off, set the styling on the element instead of on the class.