---
title: Version history
description: Preview, restore, and label earlier versions of a dashboard, and know which retention rules decide what survives.
updated: 2026-08-04
tier: free
---

Every republish snapshots the previous version automatically. There is no save
button and no moment where you decide to keep one.

## Where to find them

Open [dashies.xyz/app/versions](https://dashies.xyz/app/versions).

:::warning{title="The Versions page shows personal dashboards only"}
Workspace dashboards are filtered out of that page today. Their version history
exists and works, but you reach it through your AI tool rather than the app:
`list_dashboard_versions`, `get_dashboard_version`, `restore_dashboard_version`,
and `update_dashboard_version` are all workspace-capable.

Any current member of a workspace may restore or label a workspace dashboard's
version, on the principle that whoever may republish it may also roll it back.
:::

## What you can do with a version

- **Preview** it in place, without changing anything live.
- **Download** it as a file.
- **Restore** it, which replaces the live dashboard's body.
- **Label** it, which is what stops it being pruned.

## Restoring

Restoring first snapshots the **current** body, then overwrites the live
dashboard with the chosen version's bytes. Because the current state is captured
first, a restore is normally itself reversible: the version you just replaced is
now sitting in the list.

The slug, the URL, and the metadata are unchanged. Only the body moves.

## Retention: label what you want to keep

| Kind | How many are kept |
|---|---|
| Unlabelled autosaves | the most recent **20** |
| Labelled versions | up to **30** |

Autosaves past the most recent 20 are pruned. **A labelled version is never
pruned**, which makes labelling the only way to keep a specific state
indefinitely.

Labels are up to 80 characters. Saving a blank label clears it, which puts that
version back into the autosave pool and therefore back in line to be pruned.

If you try to label a previously-unlabelled version when 30 labels already exist,
you get:

```bash
named version limit reached
```

Clear a label off something else first. Relabelling an already-labelled version
and clearing a label are never capped.

:::note{title="Label before the 21st republish, not after"}
The pruning is by count, not by age, and it happens on republish. A state worth
keeping is worth labelling the day you publish it, because by the time you go
looking for it, twenty republishes later, it is gone.
:::

## Check it worked

1. Open [dashies.xyz/app/versions](https://dashies.xyz/app/versions) and select
   your dashboard. Republish it once, then reload: a new entry should appear at
   the top.
2. **Preview** an older entry and confirm it renders the older numbers. Preview
   changes nothing live, so this is safe to do on a shared dashboard.
3. **After a restore**, open the dashboard's public URL and confirm the body
   changed. Then check the versions list again: the state you just replaced
   should be the newest entry, which is how you undo the restore.
4. **After labelling**, confirm the label shows on the entry. That entry is now
   exempt from pruning.
