> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revoengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom widgets

> Build a UI from low-code rows, controls, events and registered actions.

A Custom Widget is a low-code function whose result describes a small user interface. It can display data, collect input, refresh a result, open a detail view or launch a registered action. The same interaction model is used in dashboards and private Assistant cards.

Start with a static result. Add one input and one refresh action before introducing background Jobs or nested views.

> [card] [Build your first widget](https://docs.revoengine.com/widgets/quickstart.md)
>
> Paste a complete, read-only example and verify what changes.

> [card] [Rows and matrix](https://docs.revoengine.com/widgets/matrix.md)
>
> Understand the returned structure, layout and IDs.

> [card] [Types and fields](https://docs.revoengine.com/widgets/elements.md)
>
> Choose text, charts, tables, inputs, forms and buttons.

> [card] [Events and actions](https://docs.revoengine.com/widgets/events.md)
>
> Connect a user interaction to a declared action.

<ol role="list" />

## The four parts

| Part | Written by | Responsibility |
| - | - | - |
| Source configuration | Widget author | Selects Inline code or a Component, configured inputs and runtime limits. |
| Returned matrix | View code | Describes rows of cells and their content. |
| Interaction state | Widget runtime | Retains committed inputs, drafts, selected keys and navigation frames. |
| Target registries | Widget author | Select reviewed view sources and action executors by name. |

The source runs on the server; the browser renders the result. An `on` entry describes an action as data. It does not contain a browser callback.

## Learning path

1. [First widget](https://docs.revoengine.com/widgets/quickstart.md) — a working input and greeting.
2. [Matrix and IDs](https://docs.revoengine.com/widgets/matrix.md) — rows, cells and stable identity.
3. [Inputs and forms](https://docs.revoengine.com/widgets/inputs.md) — defaults, drafts and validation.
4. [Context and bindings](https://docs.revoengine.com/widgets/context.md) — `$widget` and passing values.
5. [Partial refresh](https://docs.revoengine.com/widgets/refresh.md) — update one cell and retain the rest.
6. [Job submission](https://docs.revoengine.com/widgets/examples/form-job.md) — a separate write executor and completion probe.

For the surrounding saved workspace, see [Dashboards](https://docs.revoengine.com/operate/dashboards.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.