Skip to content

Dashboard

The dashboard lives at /dashboard and redirects to /dashboard/links. It is a client-rendered application: the marketing page and the auth pages are the only prerendered routes.

A collapsible sidebar holds the primary navigation, with the workspace switcher at the top and account controls at the bottom. The switcher calls PUT /api/workspaces/active; the selection is stored server-side rather than in the browser, so it survives across devices.

AreaPathWhat it is
Links/dashboard/linksCreate, search, filter and edit short links
Analytics/dashboard/analysisVisit reports, filters and metric breakdowns
Realtime/dashboard/realtime3D globe and a live-feeling event log
Link check/dashboard/checkBulk destination health checks
Workspaces/dashboard/workspacesWorkspaces you belong to, and invitations
Settings/dashboard/settingsWorkspace identity, webhooks, ownership, deletion
Administration/dashboard/adminDomains, workspaces and instance administrators

Administration is only rendered for instance administrators. Ordinary members never see it, and the API enforces the same boundary independently of the UI.

The links view is a virtualized list, so large workspaces stay responsive. Each link exposes:

  • Inline editing of destination, slug, comment, tags and UTM parameters
  • Expiration, password protection and unsafe-link warning pages
  • Device and country routing rules
  • Social preview title, description and image
  • A QR code dialog that renders and downloads the code
  • Per-link analytics, filtered to that slug

Search opens as a dialog with keyboard navigation. Filters and sorting are reflected in the URL, so a filtered view can be shared or bookmarked.

Analytics

Analytics reads from Cloudflare Analytics Engine. The view combines a visit chart, counters, and metric groups — referrer, country, city, device, browser, OS and language — each of which opens a detail dialog. A date-range picker with custom ranges scopes everything on the page, and access events can be exported as CSV.

Without the ANALYTICS binding, redirects still work; this view simply has nothing to show.

Realtime

The realtime page is intentionally pseudo-live: it polls analytics every 10 seconds, then replays newly discovered events through a bounded client-side queue at roughly one per second, so the globe animates smoothly instead of jumping. Pausing stops polling, queue replay and the WebGL motion. It is not an SSE or WebSocket stream, and it is not a real-time guarantee.

Workspaces

Every link, domain and API key belongs to a workspace. Members hold one of four roles — owner, admin, member, viewer — and permissions derive from that role everywhere, including for Cloudflare Access identities. Invitations are emailed and accepted through a tokenized link; an invited person without an account registers first and then accepts.

Workspace settings cover identity (name, slug), redirect behaviour, webhook delivery with a rotatable signing secret, ownership transfer, and deletion.

Administration

Instance administrators manage short-link domains — assigning a hostname to a workspace, marking a primary domain, setting per-domain not-found redirects and home URLs — plus the workspace list and the set of instance administrators. Domain resolution is scoped by exact host at request time, so a hostname that is not assigned to an active domain will not resolve links.

Migration

Instances upgraded from a KV-only version get a migration screen that moves links into D1 and records a completed migration run. Until that run is recorded, KV remains the source for pre-existing links; D1 is authoritative afterwards.