Start here
How a dashboard works
A dashboard is one page of charts and tables over your data. On this page, you learn the parts of a dashboard, 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 you need 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. In edit mode, select Refresh data in the dashboard's top bar to refresh every datasource. To refresh one, open the Data workspace from the icon rail at the right edge of the screen, and select Refresh on the datasource. On an org install, a schedule can also refresh a datasource.
A snapshot holds at most 100,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.
A chart draws in the browser, and the browser first reduces the rows it can. A chart that groups its rows, such as a sum per month, a count per category or a histogram, draws from one row per group. A long line keeps the points that give it its shape at its drawn width. A dense scatter plot keeps one point per 2-pixel cell and color, so a tooltip names one row of the cell. Any other chart reads every row of its datasource. Past 50,000 rows, a chart draws slowly on an older laptop, and the editor sees a finding about it in the Findings panel. Past 250,000 rows across all the charts, the editor sees the same finding for the whole dashboard. The fix is the same: aggregate in SQL, so the charts read fewer rows.
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, select Settings, then select Sign-in and security. You can add a passkey within 10 minutes of a sign-in with an account or a code. If more time has passed, the section offers Sign in again. A passkey that you do not use for 13 months stops working, and the server deletes it.
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. With the code, you show 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.
Your settings
Your Settings page holds what belongs to your account: your profile, how you sign in, your connected agents, your notifications and your data. To open it, open the account menu at the top right and select Settings. You must be signed in.
Sign out of other browsers
- On your Settings page, select Sign-in and security.
- Read the list under Where you're signed in. Each line names the browser and the system, the way you signed in, and when the browser last used your account. The browser you read the page in shows This browser.
- Select Sign out on a line to sign that browser out. To sign out every browser but this one, select Sign out everywhere else.
- Confirm in the dialog.
The other browser is signed out at its next step. Unused sign-in codes stop working too.
Download your data
- On your Settings page, select Your data.
- Select Download my data.
Your browser saves one JSON file. It holds the records of your account, every dashboard you own in the dashboard format, the dashboards of other people that name you, and links to the files you uploaded. The links work while the files exist. The server builds the file when you ask and keeps no copy. If the server cannot build the file in one download, the message names your largest dashboards. Export each of them from the dashboard, or move the ones you no longer need to the trash, and download again.
Delete your account
Some servers let you delete your own account, and some delete accounts on request. If the server deletes accounts on request, the Your data section says who to write to.
- Download your data first if you want a copy. Nobody can restore a deleted account.
- On your Settings page, select Your data.
- Select Delete my account….
- Read the dialog. It counts the dashboards and files that go, and lists the dashboards that other people can open.
- Type your email address, and select Delete my account.
The app signs you out and opens the front page. Your dashboards go to the trash and are deleted after 30 days. Your files, agents, subscriptions and passkeys are deleted. In other people's dashboards, your comments and changes stay, with "Deleted account" in place of your address. If the address you type is not the address of the account, nothing is deleted. Type the address exactly, and try again.