Start here
How a dashboard works
A dashboard is one page of charts and tables over your data. This page names its parts, so the guides make sense on the first read.
The canvas and its blocks
The canvas is the page you build on. You pan and zoom it like a map, and you put blocks on it where you want them. Nothing snaps into a fixed grid of rows.
A block is one positioned item on the canvas. The common blocks are these:
- Chart — a bar, line, area, point or other chart.
- Scorecard — one number, with a comparison and a small trend line.
- Table — rows, or a pivot table that groups them.
- Control — a dropdown, a date range or a search box that filters.
- Note, image and shape — text and pictures around the data.
- Section — a named area that groups blocks, and that a control can filter on its own.
A dashboard can also hold frames, which split the canvas into pages, and articles, which are text with charts placed in it. See Build on the canvas.
Datasources and their saved rows
A datasource is a named set of rows inside the dashboard. Each datasource says where its rows come from:
- a file you upload, or rows you paste,
- a Google Sheet, or a file at a web address,
- a BigQuery query. BigQuery is Google's data warehouse. On arkush.app, a query runs in your browser under your own Google account and bills a Google Cloud project that you choose, so it needs both,
- a derived view: SQL over the other datasources of the dashboard. In the app, its source is called Transform.
The rows that a datasource holds are its snapshot: the result of its last run, with the time of that run and the person who ran it. Every chart and table reads a snapshot. Opening a dashboard runs no query. New numbers arrive only when a datasource refreshes. On arkush.app, you refresh it yourself: open the Data panel from the icon rail at the right edge of the screen, and select Refresh on the datasource, or Refresh all. On an org install, a schedule can also refresh a datasource.
A snapshot holds at most 50,000 rows. For a query, make the rows small before they arrive: group and filter in SQL, so that the snapshot holds the level of detail that the dashboard shows. A file with more rows opens a step that reduces it with SQL before it becomes a datasource. See Bring data in.
Fields and measures
Each column of a datasource is a field. A field can carry a label, a number or date format, and a description. Every chart, table and scorecard that shows the field uses them, so you set them once.
A measure is one calculation defined on the datasource, such as
sum(revenue) / sum(cost). A chart, a scorecard or a table shows a measure by
its name.
Params and controls
A param is a named value that filters the dashboard, such as a region or a date range. A control is the block that a reader uses to set a param. A click on a chart can set a param too.
A param can also filter nothing and hold a value that charts read: a number set with a slider, such as a growth rate, or a field picked from a list, such as the breakdown a chart shows. See Read a dashboard.
A param filters the saved rows, in the reader's browser. It never runs a new query. The values a reader picks go into the page address, so a link carries the exact view, and the dashboard itself does not change. See Filter a dashboard.
A query parameter is different: it is a value inside a datasource's SQL. It decides which rows a refresh fetches. To change it, edit the datasource and refresh it.
The theme
A theme gives the dashboard one look: the colors, the fonts, and how the blocks sit on the page, in light and dark. The theme travels with the dashboard. See Theme a dashboard.
Three ways to edit one dashboard
A dashboard is stored as one document in JSON, a plain-text format for structured data. Three tools edit that same document, and each one sees the changes of the other two:
- The canvas — drag, resize, and fill in the forms of each block.
- The Source panel — the dashboard's JSON as text. It edits what has no form. To open it, select Source in the icon rail at the right edge of the screen, or press ⌘/Ctrl J. See What needs the Source panel or an agent.
- Your AI agent — an assistant that you already use outside arkush, such as Claude Code, connected to your account. It reads and changes the same JSON. See Connect your AI agent.
The view you have on the canvas — where you panned, how far you zoomed, what you selected — is not part of the dashboard. Each person keeps their own.
Who reads it
Without an account, your dashboards stay in this browser only. When you sign in, every dashboard saves itself to your account, and it is private to you. At your first sign-in, the app offers to bring up the dashboards that you made in this browser, and you pick which ones. On arkush.app, you share a dashboard by publishing it to the internet: a frozen copy at its own address that anyone can read without an account. See Share a dashboard.
Readers never run a query. They read the snapshots, so a reader costs nothing on anyone's warehouse, and every reader sees the same rows.
Sign in
Your account is your email address. arkush never asks you for a password. On arkush.app, select Sign in, then choose one way:
- Sign in with your Google or GitHub account.
- Type your email address and select Email me a sign-in code. Type the eight-digit code from the message in the same browser, within 10 minutes.
- Select Sign in with a passkey, if you added one. Your device asks for its lock: a fingerprint, a face or a PIN.
After you sign in with an account or a code, arkush offers once to add a passkey. To add one later, open the account menu and select Passkeys. You can add a passkey within 10 minutes of a sign-in with an account or a code. If more time has passed, the panel offers Sign in again.
On an org install, if your Google account uses an address that Google does not run, such as a work address outside Google Workspace, arkush mails a code to that address after Google answers. Type it the same way. The code shows that the mailbox is still yours. On arkush.app, Google's answer is enough.
If the code does not arrive, look in the spam folder. One address gets three codes an hour,
and an address with a +tag, such as [email protected], counts as the same
address. If you lose the device that holds your passkey, sign in with your account or a
code, and add a new passkey.