---
title: Share a dashboard
description: Public and private visibility, what the canonical URL looks like, and how renaming keeps old links working with a redirect.
updated: 2026-08-04
tier: free
---

Every published dashboard has a URL you can send to someone. What happens when
they open it depends on one setting.

## The URL

| Dashboard | URL |
|---|---|
| Personal | `https://<your-handle>.dashies.xyz/<slug>` |
| Workspace | `https://<workspace-slug>.dashies.xyz/<slug>` |

Your **handle** is derived from your email address when your account is created,
and **there is no way to change it**. A workspace slug, by contrast, is one you
choose. If you want a specific label in your URLs, that is what workspaces are
for.

Slugs are lower-case letters, digits, and hyphens, up to 64 characters. Five
personal slugs are reserved because the app itself lives at those paths:
`pricing`, `auth`, `app`, `assets`, and `api`. The refusal names the reason:

```bash
slug "app" is reserved - it would be shadowed by the app at https://<handle>.dashies.xyz/app; choose a different slug
```

`docs`, `privacy`, and `terms` are **not** reserved. You can name a dashboard
`docs`.

The older form `https://dashies.xyz/<handle>/<slug>` still works and redirects to
the subdomain, keeping any query string.

## Public or private

Visibility is one setting with four distinct behaviours.

| Dashboard | Visibility | Who can open it |
|---|---|---|
| Personal | public | Anyone with the link. No sign-in. |
| Personal | private | **Only you.** |
| Workspace | public | Anyone with the link. Membership is irrelevant. |
| Workspace | private | Any current member of that workspace. Shown in the app as **Members**. |

Personal dashboards default to public. Workspace dashboards default to private,
which is members-only.

:::danger{title="Private means owner-only, with no exceptions"}
There is **no share link, no per-viewer grant, and no anyone-with-the-link mode**
for a private personal dashboard. If you need someone else to see it, either make
it public or move it into a workspace they are a member of.

This is the single most common wrong assumption about Dashies. A signed-in person
who is not the owner does not get an access-denied page: they get a 404 that is
byte-for-byte identical to a URL that never existed, reading
`This dashboard is private or no longer available.` That is deliberate, so a URL
cannot be probed to discover whether a dashboard exists.
:::

Private dashboards are available on **every plan**, including free.

## Renaming, and why old links keep working

Renaming a dashboard is `update_dashboard` with a new slug. Ask your AI for it in
plain language:

> Rename my "q3-revenue" dashboard to "revenue-q3", keeping the display name
> "Q3 Revenue".

The old slug is kept as an alias, and the old URL **redirects** to the new one.
Anyone holding the old link still lands on the dashboard.

:::warning{title="A rename resets the display name unless you say otherwise"}
Renaming without also passing a name sets the display name to the title-cased
slug. If your dashboard is called `Q3 Revenue` and you rename the slug to
`revenue-q3`, the name silently becomes `Revenue Q3`.

Pass the name explicitly, as in the example above, to keep it.
:::

Two refusals you may hit when reusing an old name:

```bash
slug "revenue-q3" is already in use by another dashboard
slug "revenue-q3" is already an alias for another dashboard
```

Aliases share the namespace with live slugs, so a name freed by a previous rename
is not actually free.

For a private dashboard, the redirect from an old link fires only after we have
confirmed you are the owner. That is why an old private link may bounce you
through sign-in first.

## Link previews

A **public** dashboard pasted into Slack, X, or Discord unfurls with a preview
card. A private one does not, and is not revealed to a crawler at all.

## The Dashies badge

A small **Powered by Dashies** badge is added to published dashboards on the free
plan. See [what is gated](/concepts/plans-and-gating#what-is-gated). It is not added on a paid plan, and it is never added to a members-only
workspace dashboard on any plan.

## What a shared dashboard cannot do

Published dashboards run in a sandbox on their own isolated origin. That is what
stops one person's published page from reading another viewer's session.

The consequence for you as an author: **a dashboard cannot use `localStorage`,
cookies, or same-origin authenticated fetch**, and it cannot make network calls.
See
[what a viewer's browser can and cannot do](/concepts/dashboard-file#what-a-viewers-browser-can-and-cannot-do).
Everything it needs must be in the file. See
[Brand and design a dashboard](/guides/brand-a-dashboard) for how to embed fonts
and logos under that constraint.

## Check it worked

1. **Open the URL in a private browsing window**, signed out.
   - A public dashboard loads.
   - A private one shows the sign-in page or the 404 above. Both are correct; do
     not read the 404 as a broken link.
2. **After a rename, open the old URL.** It should land on the new one.
3. **Check the display name** on
   [dashies.xyz/app/files](https://dashies.xyz/app/files) after any rename. If it
   changed and you did not want it to, republish the name.
4. **To confirm what a colleague will see**, ask them to open it, or use a
   browser profile that is signed into their account. Your own view of a private
   dashboard tells you nothing about theirs, because you are the owner.
