Updated June 10, 2026

Can a Drafty canvas show live data?

Quick answer

Yes — a Drafty canvas can show live data. Claude writes a script that pulls data from your source — BigQuery, a database, an API — and renders it into the canvas as HTML; a scheduled refresh re-runs it to keep the link current. The data is baked in at render time (a snapshot), so the numbers load instantly and no credentials ever live in the shared canvas. It's safe to hand the link to anyone.

Yes. A Drafty canvas is just an HTML page on a link, so it can show anything you can render — including data pulled from BigQuery, a database, or an API. Claude writes a script that fetches the data and renders it into the canvas, and a scheduled refresh keeps the link current.

Snapshot, not live-on-every-load

The data is baked in at render time — a snapshot — and refreshed on a schedule, rather than queried fresh on every page load. That's a deliberate choice, and it's the right one for a shared dashboard:

For a dashboard you glance at through the day, "current within the last few minutes" is exactly what you want.

How the data gets in

The flow is the same one the CLI uses, with a data step on the front:

  1. Pull — Claude writes the query or API call against your source.
  2. Render — the result is turned into a self-contained HTML canvas (numbers, tables, charts).
  3. Push — the canvas is published to a link, exactly like any other canvas.

Because the credentials live with the script — not in the canvas — connecting a private source like a warehouse is just a matter of giving the script read-only access to it.

Keeping it current

A one-time render gives you a dashboard that's accurate as of now. To keep it that way, schedule the refresh so it re-runs on a timer. See how to keep a canvas updated automatically — it runs as a local cron with no Claude in the loop, so it's free even at a tight cadence.

For the full pattern, read How to make a Drafty canvas live.

Read the full guide

Frequently asked

Is the data live on every page load, or a snapshot?
A snapshot, refreshed on a schedule — the numbers are baked into the canvas each time the refresh runs. That's deliberate: it loads instantly, the query runs once per refresh instead of once per viewer, and your data credentials never reach the browser. For most dashboards "current within the last few minutes" is exactly right.
Where does the data come from?
Anywhere your refresh script can reach — a BigQuery dataset, a Postgres database, a REST API, a CSV. Claude writes the query or fetch and the layout; the script renders the result into the canvas.
Are my database credentials safe?
Yes. The query runs wherever the refresh script runs (your machine, or a server), using credentials that stay there. Only the rendered result — the numbers and the chart — is pushed to the canvas. Nothing sensitive is ever embedded in the shared link.
How do I keep it current?
Schedule the refresh script with a local cron so it re-runs on a timer. See keeping a canvas updated automatically for the setup — it runs with no Claude in the loop, so it's free.

Related