Mobile-ready

The data team, working from a phone.

Most data tools give you a dashboard viewer on mobile. tvaras gives you the workbench: chat, playgrounds, jobs, diffs, editor, git, automations. Everything you would do at a desk, sized for one thumb.

9:41
dim_customer.sqlunsavedSave
1with orders as (
2 select customer_id,
3 sum(net_revenue) as revenue,
4 sum(case when is_refund then 0
5 else net_revenue end)
6 as customer_ltv
7 from {{ ref('fct_orders') }}
8 group by 1
9)
10
11select c.*,
12 round(o.customer_ltv, 2)
13 as customer_ltv
14from customers c
15left join orders o using (customer_id)
{ }( )' '=|⌘S
qwertyuiopasdfghjklzxcvbnm
What it looks like

One job, four screens, no laptop.

9:41
stg_stripeDATA-412orders explore+
DATA-412 customer_ltv working
Goal · 2 / 3autopilot on
  • customer_ltv net of refunds
  • tests pass
  • explore dimension visible
Edit dim_customer.sqlBash dbt build
Build passed — 4 models, 6 tests. customer_ltv is net of refunds. Adding the Lightdash dimension next.
Label it “Lifetime value”, 2 decimals.
Done. Ready for review — move to In review?
Yes, reviewNot yet
Message the job…
ChatChanges3 changedFilesGit

Chat

Swipe between open jobs or tap a tab in the strip. Accept a plan, answer a question, ask about a hunk — the conversation is the control surface.

9:41
stg_stripeDATA-412orders explore+
Changes · 3 filesjob/customer-ltv-412
dim_customer.sqlschema.yml_lightdash.yml
models/marts/dim_customer.sql+3−1KeepRevertAsk
12 select customer_id,
13- sum(gross_revenue) as revenue
14+ sum(net_revenue) as revenue,
15+ sum(case when is_refund then 0
16+ else net_revenue end) as customer_ltv
17 from {{ ref('fct_orders') }}
Ask about this hunk

Should refunds older than 12 months count?

dim_customer.sql:14-17Send
ChatChanges3 changedFilesGit

Changes

A full-screen diff per file. Keep or revert hunk by hunk. Tap a hunk to send it to the assistant with your comment attached.

9:41
dim_customer.sqlunsavedSave
1with orders as (
2 select customer_id,
3 sum(net_revenue) as revenue,
4 sum(case when is_refund then 0
5 else net_revenue end)
6 as customer_ltv
7 from {{ ref('fct_orders') }}
8 group by 1
9)
10
11select c.*,
12 round(o.customer_ltv, 2)
13 as customer_ltv
14from customers c
15left join orders o using (customer_id)
{ }( )' '=|⌘S
qwertyuiopasdfghjklzxcvbnm

Editor

Open any file, or create a new dbt model, and edit it in a real code editor. A key bar above the keyboard gives you tab, undo, brackets, quotes and save — the characters phone keyboards hide.

9:41
stg_stripeDATA-412orders explore+
Gitjob/customer-ltv-412
↑ 1 ahead·base: main checks
Staged · 3
  • Mmodels/marts/dim_customer.sql
  • Mmodels/marts/schema.yml
  • Mmodels/marts/_lightdash.yml
Commit message✦ drafted

lightdash: expose Lifetime value dimension on Customers

CommitPushUpdate from mainOpen PR
Recent
  • a41c9e dim_customer: add customer_ltv
  • 9d20f1 job start · from DATA-412
ChatChanges3 changedFilesGit

Git

Commit with an AI-drafted message, push, update from the base branch, merge or open a pull request. Run the checks and read the log before you do.

The whole workflow

Things a data team can actually do from the train.

01

Create and edit dbt models

Ask for a new staging model or a fix to a mart; tweak the SQL yourself in the editor; run dbt build from Checks.

02

Review changes

Diffs, check logs, criteria progress. Approve, request changes or close — the review snapshot is the same one your desktop sees.

03

Use git

Commit, push, update from base, resolve conflicts, merge, open a PR. Branch-per-job keeps it safe.

04

Automate tasks

Turn an answer into a schedule, approve a proposed automation, pause a watchdog — from the chat.

05

Answer stakeholders

The founder's Slack question gets a verified chart while you are still walking to the office.

06

Use and build playgrounds

Every /pg/ app is responsive by default. Open the campaign monitor on the go, or ask for a new tile from the builder chat.

Feels like an app

Installs to the home screen. Taps you when it needs you.

tvaras is a progressive web app: add it to your home screen on iOS or Android and it opens full-screen, no store required. Turn on push notifications and you are told when a job asks a question, autopilot pauses, or a review is waiting. Tap the notification and you land in the right job.

  • No app store, no MDM profile
  • Push notifications for needs-you and review
  • Same login, same permissions as desktop
  • Still self-hosted — nothing routes through us
17:06

Wednesday, 20 August

17:06

ttvarasnow

Job needs you — DATA-412

Verify command failed: 1 test (customer_ltv non-negative). Keep the refund clamp or cap at 0?

Open jobReply
ttvaras42m

Review waiting — orders explore

Goal met 4/4 · checks green · 2 commits.

Your data platform should not need a desk.

Try the preview on the phone in your hand.