Skip to content

Concepts

These concepts apply to every Mateu UI. It doesn’t matter whether the UI is written in YAML, Java, C# or Python, rendered in a browser, on a phone or in IntelliJ, or served by a backend or shipped as a static bundle. The language-specific manuals only change the syntax. The vocabulary below stays the same.

What a Mateu UI is made of is the map. It names every building block, shows how the blocks connect in one diagram, and describes each one with the same template: what it is, what it’s for, where it lives, how you author it, and how it behaves when served versus static. The pages below follow the same order.

BlockIn one linePage
Mounta UI at a base path (type: UI or @UI)Routes & mounts
App shell & menuthe chrome, plus menu leaves that route somewhere or run an actionApp shell and menus
RoutesURL → layout + optional view model + parameters (routes.yaml)Routes & mounts
Pages & componentsa layout definition (a component tree) plus an optional view modelPages and components
Partialsa named piece of layout, spliced in wherever it is usedPartials
Actionsflows of steps, REST calls or server methods, run by id (actions.yaml)Actions
Data sourcesnamed REST endpoints, with sample data (sources.yaml)Data sources
State & triggersstate / data / appState / appData, ${…}, rules and triggersState, scopes and triggers

And the cross-cutting blocks, which apply wherever something references them:

BlockPage
Field types (types.yaml)Field types
Translations (translations/<locale>.yaml)Translations
Environments (environments/<name>.yaml)Environments
Access (access, eyesOnly, readOnlyUnless, disabledUnless)Permissions
Project settings (project.yaml)Project settings

Business screens fall into a few families: a listing, a record, a form, a guided process, a dashboard and a landing page. Mateu has a starting point for each, and a catalogue of patterns on top of them (wizards, master-detail, drawers, Gantt, planning boards…).

Every authoring path produces the same building blocks. Every renderer consumes them, and they travel as JSON (the wire) between whatever produced them and whatever renders them.

Several UIs, owned by different teams and built on different stacks, can be composed into one console. A shell owns the chrome and the menu, and each domain owns its screens.