Skip to content

OBSERVE

See your operation move.

Build dashboards over your own data with no code: 27 chart kinds, live by default, and the same governed surface an agent operates. What you watch is what is happening, in place.

RECORDINGS · DASHBOARDS

Real screen recordings of these dashboards are being captured; until then, these cards describe exactly what each recording will show.

live board

A board that never goes stale

Charts subscribe to the data underneath: a row changes anywhere and the board moves, no refresh, no export, no snapshot.

recording on its way
builder

From table to chart in minutes

Pick a source, pick one of 27 chart kinds, drop it on the grid. The board inherits the same permissions as the data it reads.

recording on its way
workspaces

One board per way of working

Operations, finance, direction: each team keeps its own workspace over the same live data, governed by the same rules.

recording on its way

Real screen recordings of these dashboards are being captured; until then, these cards describe exactly what each recording will show.

NO-CODE BUILDER

Pick a widget. Configure it in a drawer. Watch it land.

Browse a visual gallery of chart kinds, drop one onto the grid, and configure it in a side drawer as a live preview redraws. Set a refresh interval and it keeps itself current, with no build step and no redeploy.

Operations
Edit
Orders today
orders +9%
1,284
SLA compliance
98.4%
Revenue trend
Orders by region
Channel mix

A gallery, not a spec sheet

Browse chart kinds by data shape and drop one onto the grid. Configuration is a drawer, not a config file.

Three ways to feed a widget

A GraphQL function, a read-only sanitized SQL query, or a structured visual builder. Pick the one that fits the question.

Every query stays fenced

SQL runs read-only behind a layered defense and is auto-scoped to the tenant. You cannot query your way out of your own data.

27 chart kinds. 12-layer query defense.

Orders today +12%
1,284
SLA compliance
98.4%
Orders · last 12h Live · refreshed 30s ago

LIVE BY DEFAULT

Not a snapshot. The current state.

Every dashboard carries a time range, variables, and auto-refresh, per board and per cell. Change the range and every widget re-queries. Drop a catalogue in as a widget and the grid you already publish becomes a live panel.

  • Time range and variables scope the whole board at once.
  • Auto-refresh keeps panels current without a reload.
  • Embed any catalogue as a widget: the same grid, now live.
OpsFinanceRisk+ Theater mode

WORKSPACES

Many boards, one workspace.

Open dashboards as tabs, rearrange them per person over a shared admin default, and drop into theater mode for the wall screen.

Multi-tab workspace

Dock dashboards side by side and switch between them like editor tabs.

Yours over the shared default

Admins set a baseline layout; each person tweaks their own without disturbing anyone else.

Theater mode

Full-bleed, chrome-hidden rendering for the situation-room wall screen.

SAFE BY CONSTRUCTION

A dashboard can only ever see your own data.

Every query (GraphQL function, SQL, or visual builder) is automatically scoped to the tenant and runs on read-only rails. Building a chart cannot become a way out of your isolation boundary.

Tenant-scoped
Isolation is applied at the database layer, not in the widget.
Read-only
Dashboard queries can read; they can never write.
Layered defense
Sanitized SQL passes a 12-layer check before it runs.

SEE IT LIVE

Point a dashboard at your data and watch it move.

Model a screen, drop in a widget, and the same board is ready for a human to read and an agent to operate, governed the whole way.