Personal dashboard
The artist/team workspace home. A grid of your teams with a switchable metric per card, open tasks, members and recent activity.
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
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
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
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
- 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 widget adds up streams, playlist reach, followers, monthly listeners, tracks on Aden and open tasks across all your artists by default. Use the + 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. Hover your photo at the top of the dashboard and open the ⋯ 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.
Demo accounts
On every public demo-submission surface, nudge artists to submit with a free Aden account for a faster response and follow-up; signed-in artists submit as their Aden account (identity + a track from their library) on org portals, while a quick no-account submission stays available where the recipient supports it.
Home day line
Week line under the greeting, ending on what is up next, with a hover list of everything after it, on /app and org home.