- what the user sees — pages, sections, tables, charts, forms, buttons
- what runs when they interact — which concepts execute, with which parameters
- where the results go — which widgets display which concept outputs
The building blocks
Every app is made of the same five pieces:
The flow is always the same:
What inputs can feed a concept
There are two ways user input reaches your Vadalog:- Parameters — a scalar input (text, number, select…) binds to a concept’s
@param. This is the common case: a search form that filters results. - Facts — a repeating record group in a form serializes its rows as ground facts and feeds an input predicate (an empty concept that declares its columns via
@model). Use this for what-if scenarios where the user supplies a small table of data.
Versioning
Every save of an app creates a version checkpoint. From the editor you can browse past versions, bookmark the important ones, and restore any of them — restoring is non-destructive and never deletes history.Where to go next
- Your first app — a button that runs a concept and a table that shows the result.
- Forms and parameters — collect user input and pass it to
@params. - Selects, triggers and drill-downs — auto-loading data, master–detail layouts, and table presentation.
- The App Editor — a tour of the authoring environment.
- How apps run — the runtime model and architecture.
- App definition reference — every field, type and validation rule.

