Vantage UI

Features

Use Vantage to build your own data-heavy applications. Vantage stores its project files in a folder, constantly monitoring them for changes — so the app can be easily modified from the outside.

Your app = structure + code

Menu items, page layout and widget types are described in YAML. Custom logic and behaviour live in Rhai. The project folder also ships .skills that teach your AI coding agent to write both.

YAML — structure
# table/clients.yaml
title: Clients
source: main_db
columns: [name, email, balance]
has_many:
  - orders
context_menu:
  - title: View orders
    open_page: orders
    model: model.get_ref("orders", row.id)
Rhai — logic
// a computed label for each row
let label = row.name;
if row.balance < 0 {
    label += "  •  owes " + row.balance;
}
label

// drill two hops, in one expression
model.get_ref("clients", row.id)
     .get_ref("orders", client_id)

When a file changes on disk, Vantage re-reads it and the UI updates live.

Tables (or Models) and DataSources

Vantage needs a DataSource to read data. Each DataSource has a unique set of capabilities. Once a connection is established, Vantage reads tables to learn about columns, record types and relations. Enterprise builds can also define strongly typed tables in Rust.

SurrealDB

Read / write CBOR

The most complete driver — full querying, aggregation, pagination and dataset-level traversal. It is also the one source that pushes: tables update themselves when data changes, with nothing to set up.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) check_circle
Live updates — the source pushes changes check_circle

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

SQLite

Read / write Native (sqlx)

Full SQL driver via sqlx — sort, search, aggregation, offset pagination and subquery traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) check_circle
Live updates — the source pushes changes remove

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

PostgreSQL

Read / write Native (sqlx)

CRUD, aggregation and dataset traversal via the SQL query builder; interactive sort/search push-down is being wired up. The framework can also read live changes from a NOTIFY trigger you install — connecting that up from the console is next.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) check_circle
Live updates — the source pushes changes remove

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

MySQL

Read / write Native (sqlx)

CRUD, aggregation and dataset traversal via the SQL query builder; interactive sort/search push-down is being wired up.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) check_circle
Live updates — the source pushes changes remove

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

MongoDB

Read / write BSON

Native aggregation pipeline with sort, search and pagination; record-level traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

DynamoDB

Read-focused JSON

Key and scan-filter queries with cursor pagination. Often paired as a read source with writes routed elsewhere.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size check_circle
Random-access pages remove
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

GraphQL

Read-only JSON

Generic and Hasura dialects. Read rows, filter, and drill into related records.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

REST APIs

Read-only JSON

Paginated REST endpoints as tables, with filtering and record-level drill-down.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

AWS

Read-only JSON

Infrastructure (CloudWatch, IAM, S3 and more) browsed as tables, with equality filters pushed down to the API.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

CLI tools

Read-only JSON

Wrap a command (aws, kubectl, gh…) and read the JSON it prints as rows.

Retrieving data

Filter by conditions remove
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

CSV files

Read-only Typed text

Local files as tables, with in-memory filtering and record-level traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records remove
Update records remove
Delete records remove

Append logs

Append-only JSONL

Append-only JSONL log files — write structured entries that the log viewer picks up on its next refresh.

Retrieving data

Filter by conditions remove
Server-side sort remove
Quick search remove
Count remove
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove
Live updates — the source pushes changes remove

Editing data

Add records check_circle
Update records remove
Delete records remove

Every GUI element adapts to the table it's bound to — buttons and features follow the backend's capabilities.

Build a rich GUI — not just CRUD

In Vantage, UI elements are reactive. YAML controls layout and visibility, while Rhai drives behaviour. The data grid is a typical example — YAML sets column order, types, widths and captions, plus the buttons above the grid; Rhai scripts what a button press does.

Data grids

  • arrow_rightVirtualized — stays smooth past a million rows.
  • arrow_rightPersistent sort, quick search and column resize, per project.
  • arrow_rightBackground refresh with no flicker, on change or a schedule.

Tabs & drill-downs

  • arrow_rightOpen related records in child tabs; pin the ones you keep.
  • arrow_rightChain multi-hop drill-downs from a row's context menu.
Forms, dialogs & actions

Forms, dialogs & actions

  • arrow_rightAdd and edit records in form dialogs; confirm destructive steps.
  • arrow_rightRight-click actions run operations or call your own services.
  • arrow_rightStatus workflows offer only the valid next transitions.

Wizards

  • arrow_rightMulti-step flows for guided data entry and operations.
  • arrow_rightCollect input across screens, then commit in one go.
  • arrow_rightFully scripted interactions — full access to all tables.
  • arrow_rightA reactive UI to display progress bars or logs.

Charts & dashboards

  • arrow_rightStacked bars, lines, pies and KPI cards on one dashboard grid.
  • arrow_rightFilter dropdowns narrow the query itself, so every figure recomputes.
  • arrow_rightDeltas colour by meaning — a rising cost reads red, not green.
Log viewer

Log viewer

  • arrow_rightBrowse structured logs in-app, newest first, filtered by level.
  • arrow_rightAuto-refreshes as new entries arrive — no tailing a terminal.
  • arrow_rightReads AWS CloudWatch and other log sources as a live table.
  • arrow_rightAttach logs to one-click feedback straight from the view.

Vantage for the Enterprise

As an enterprise client, you get a custom release pipeline with your own configuration of Vantage. Supply your own DataSources, add table definitions in native Rust, and bundle your own actions.

Capability Free download One binary, everyone Enterprise build Assembled for you
Build your app
Datasources out of the box 12 12 + your own
Colour themes 36 36 + one that's yours
Native types mapped per source up to 24 + types you define
Grids past a million rows check_circle check_circle
Charts, KPI cards, dashboards check_circle check_circle
Multi-step wizards & CSV import check_circle check_circle
Custom form layouts check_circle check_circle
Auto-refresh in the background check_circle check_circle
Push-style instant refresh SurrealDB, PostgreSQL + CDC: Kafka, Debezium, custom listeners
Your AI agent builds it over MCP check_circle check_circle
MCP debugging — query preview, error check check_circle + BDD suite, run at build
Custom tables
Custom queries & aggregates Rhai Rhai + Rust
Actions Rhai Rhai + Rust
Internal API Rhai Rhai + Rust
Custom datasourcesopen_in_new OSS, communityopen_in_new yours or ours
UI widgets 21 built in + your own in Rust
Third-party WASM plugins remove check_circle
Internal distribution control
Application distribution vantage-ui.com, or clone by hand internal catalog, apps auto-update
Platforms macOS, Linux + API/MCP
Verifiable builds, on demand remove your components in the binary
Your name, icon and About box remove check_circle
Turn off what you don't need remove check_circle
Your own release channel remove signed & notarised
vantage:// install allowlist remove your apps only
Central credentials & SSO sign-in remove check_circle
Crash telemetry optional your own Sentry account
What you're standing on
MIT framework underneath forever forever
Architecture partner & training remove check_circle
Support community Slack Connectopen_in_new
Price for personal and commercial use $0 forever talk to us

On the roadmap

Where Vantage is heading. Everything we ship reaches every build — free and enterprise alike. Tap the deck to flip through.

Roadmap desktop_windows

Windows

macOS and Linux today. A signed Windows build brings the same app to the laptops most of your colleagues actually use — no VM, no remote desktop.

Roadmap language

The web

The same YAML and Rhai, rendered in a browser. Hand someone a link instead of an install, and put a screen in front of people who will never open a terminal.

Roadmap api

Server-side facade APIs

Turn the same config — data sources plus Rhai logic — into real backend APIs your own frontend or mobile app can call. Start in the app; graduate to code.

Roadmap deployed_code

Export to real code

No lock-in: export your app to a code repository or container image you own and run anywhere. Start in low-code, leave with real code.

touch_app Click to deal the next card

download Download for Mac — free apps See example apps