# Personal dashboard
Source: https://docs.aden.space/docs/help/get-started/personal-dashboard

The artist/team workspace home. A grid of your teams with a switchable metric per card, open tasks, members and recent activity.
{/* Generated by `bun docs:publish` from docs/features/personal-dashboard.md: edit the spec, not this file. */}

## URL [#url]

The dashboard is served at `/app` (the sidebar's Home). `/app/dashboard` is a
redirect kept only for old bookmarks and notification rows that persisted it as
their navigation path; nothing in the app links to it. Saved views keep their
historical storage key `'/app/dashboard'` (`PERSONAL_DASHBOARD_PATH`, a
`users.saved_views` key, not a route) so existing rows keep working.

## Structure [#structure]

Under the header sits one widget grid. The artist cards are its first widget
(id `teams`, full width). The Activity widget (id `feed`, the cross-team
activity feed) sits under them in the left seven columns with the Calendar
widget below it, and the other widgets in the five beside them. Layouts saved
before v4 get Activity placed by `migrateFeed`; layouts saved while the cards
still sat above the grid get `teams` on top by `migrateTeams` (off when the old
`showTeams` flag hid them). Both live in `lib/dashboard-widgets.ts`.

Outside edit mode every widget still moves by its title row and resizes from
its edges, with no chrome; the grid saves the layout the moment a widget lands
(`onDragStop` / `onResizeStop` in `dashboard-grid.tsx`). A drag that starts on
a linked title does not follow the link. The title row is
`DashboardWidgetHeader` (`dashboard-widget-card.tsx`): it shows a grab cursor
where widgets can move and never starts a text selection; the page stops
selecting text for the length of a drag. Widgets with their own toolbar render
that header too, or they have nothing to grab.

Widgets flagged `fitContent` in the registry (the artist cards, personal and
org) take their height from their content through `useWidgetFitRef`
(`dashboard-widget-fit.tsx`): expanding or collapsing cards grows or shrinks
the widget, and only its width resizes by hand. Edit mode makes the whole card the
grip and adds presets, hiding and width, saved on Done.

On a dashboard grid the header's saved-view pills stay hidden until the header
is hovered, the auto-saved view reads "Custom dashboard", and there is no
"Save current preset" button: the grid saves itself and Presets live in its
edit toolbar.

## Header [#header]

The page title is a greeting, not an identity card (the sidebar already shows
the viewer): "Welcome back, \{first name}" when the `aden_last_login` cookie is
under five minutes old, otherwise good morning / afternoon / evening computed in
the profile's timezone. Under the greeting: one sentence opening on the range
picker ("This week") with the streak, open tasks and what is up next (hover it
for the full list), then the day line (remaining studio sessions, shows and
release deadlines this week). The organisation home ends its day line on the
same next-up clause. The breadcrumb reads "Personal dashboard" on `/app` and
"\{Team} > Dashboard" on a team root; the favorite star is hidden on both.

## What it is [#what-it-is]

Your home screen across all the teams you belong to. Each team shows up as a
card with its avatar, one metric of your choosing (with a small chart under it),
open tasks, members and recent activity, so you can see what's moving at a
glance without opening each team.

## Using it [#using-it]

* **Pick what a card shows.** Top right of each artist card is a metric: a label,
  its value and a compact chart beneath it. Defaults to **Next release** (countdown
  plus cover and title). Click the small chevron to switch between **Next release**,
  **Tracks** (total count), **Released** (share of tracks released, on a segmented
  gauge), **Open tasks**, and **Sessions** / **Posts** / **Events** for the selected
  period (bar strip). Each card remembers its own metric. The status mix still lives
  in the hover breakdown.
* **See a team's tracks.** Hover the metric on a team card. If there's an upcoming
  release, it leads; under that is the full breakdown by status, plus
  sessions/posts/events for the period.
* **Compare to a previous period.** In that popover, tap **vs last week** or
  **vs last month** to see how each status has changed (e.g. +3 released since
  last week). The comparison is worked out on the spot. Nothing to wait for.
* **Jump in.** Click the avatar or name to open the team; click the metric to go
  straight to the thing it counts (tracks, tasks or events). In a card's expanded section, click a **milestone** to
  open its detail page, a **goal** to open the team's goals board, or a **recent
  activity** row to jump to the thing it's about (e.g. the track that changed).
* **See combined stats across your artists.** The **Stats*&#x2A; widget adds up
  streams, playlist reach, followers, monthly listeners, tracks on Aden and open
  tasks across all your artists by default. Use the &#x2A;*+** next to the artist
  avatars to add or remove artists from the total. Pick a single artist, a few,
  or all of them. Your choice is remembered. Streaming numbers appear once an
  artist is linked to Songstats in their team analytics.
* **Message a teammate.** Hover any member on an artist card, then click **Send a
  message** to open (or reuse) a direct chat with them. You're taken straight to
  the chat. Your own row doesn't show the button.
* **Your people, only when they matter.** Every artist card lists its members,
  you included, so you can see which teams you're on. When every team is just
  you, the member rows disappear. Hover a member who has been away over a
  week to see "Last active 12 days ago" and **Send reminder**, which emails
  them their open tasks in that team (once per 3 days per person).
* **Card layout.** Top row: new tracks ("+3 new this week", falling back to
  the month, then the year), tracks, albums, open todos, goals reached ("2/3"),
  and on the right the last activity ("3 hours ago", hover for the recent
  list). Below: the cover, the name and the members. Sizes follow the card's
  width (container queries), so 2, 3 and 4 columns each read at their scale.
* **The artist cards are a widget.** Move them by their **Artists** title,
  resize them from an edge, or hide them in edit mode like any other widget.
  Their settings menu (hover the title row) holds sort, columns, **Banner
  backgrounds** and **Reset order**, each saved as soon as you pick it.
* **Members as avatars.** Hover one for the name; email-only members show the
  part before the @.
* **Tick todos in place.** Completed todos in a card's recent list and todo
  tiles in the header's up-next hover have a checkbox; clicking the row opens
  the track at that todo (`#todo-<id>`).
* **Expand all / Collapse all** sits in the Artists title row; **expand one card** with its chevron for milestones, goals and recent activity
  in tabs (tracks, shows, tasks). Collapsed, a card shows "Last activity 3
  hours ago"; hover it for the same recent list.
* **Local time only across zones.** An artist's clock shows under their name
  only while it differs from yours right now.
* **Tick tasks from the card.** Hover the open-task count and check tasks off
  in place; the count drops immediately.
* **Missed goals, two clicks.** Hover a missed goal for **Retry** (starts the
  same goal over from today) or **Remove** (asks first).
* **Your organisations up top.** They sit on the right of the header card as
  small pills and open the organisation surface in a new tab.
* **Arrange your artists.** In edit mode, drag an artist card by its grip handle
  to reorder the cards; switch between **Auto / 2 / 3 / 4** columns from the
  settings menu. Both are remembered per account; **Reset order** clears a
  custom arrangement. Columns follow the widget's width, not the window's.
* **Drag the page width.** On a centred dashboard, drag either edge of the page
  to set a custom width, like any other page. Double-click an edge to go back
  to the container width. Same on the team and organisation dashboards.
* **Change your profile picture.*&#x2A; Hover your photo at the top of the dashboard
  and open the &#x2A;*⋯** menu in its corner, **Change** uploads a new one, **Remove**
  falls back to your initials. The same menu is available in account settings.
* **View your public profile.** Your name at the top of the dashboard links to
  your public passport: click it to open your profile in a new tab. Hover it to
  reveal a card with quick actions: open the public URL, **Preview** it inline,
  or jump to your profile **Settings**. It only behaves this way while your
  public passport is enabled.
* **On a phone or tablet.** The widget grid follows the screen: below desktop
  width every widget stacks full width, one per row, in the same order as your
  saved layout. Editing the layout is desktop-only. The stacked layout is a
  view of your dashboard, so nothing you see on a phone can overwrite the
  arrangement you saved.
* **Shared tracks.** Tracks you played and commented on that are not on your
  teams. Open a row to go back to the share.