Dashboards
The home dashboard and the overview strips, named and shared dashboards, the filter bar, how to customise them, and the stats endpoint behind them.
Pinwren has a Dashboard (first entry in the sidebar, /dashboard) and a collapsible Overview strip at the
top of the inbox, the projects list, a project and notifications. They show the same widgets: numbers, charts and
lists computed from your workspace's feedback.
What is on them
| Group | Widgets |
|---|---|
| Numbers | Open items, New reports (with the change against the previous range), Resolved, Unassigned, Overdue, My work, Urgent, Time to resolve |
| Charts | Reported vs resolved per day, By status, Open by type, Open by priority, Open by project |
| Lists | Recent activity, Projects (open and total per project), Needs attention (overdue, urgent and unowned work in one list) |
The overview strip on the inbox starts collapsed; on a project it follows that project, elsewhere the whole workspace. Charts are drawn without a chart library and each has a text equivalent for screen readers.
Admins start with the workspace view (unassigned work, the projects table); editors and viewers start with their own work and what needs attention.
Customise
Choose Customise (or Customise dashboard in the command palette):
- Add widget opens a list of the widgets that are not on the dashboard yet, by group.
- Move a widget by dragging it, or with its Move earlier and Move later buttons (the buttons also work with a keyboard).
- Resize it: width of a quarter, third, half, two thirds or the full row (a 12-column grid), and a short, medium or tall height.
- Remove a widget you do not need.
- Reset to default brings back the layout for your role. Done leaves edit mode.
The Date range (last 7, 14, 30 or 90 days, or a custom span from the calendar) sets the period for the tiles and charts. The preset is saved with the layout; a custom span lives in the link.
Layouts follow your account
Your dashboards are stored on the server, per person and per screen, so they follow you to every browser and device. The first time you open a dashboard after upgrading, the layout your browser kept is imported once as My dashboard. Until you save something you see the built-in layout for your role, so later improvements to the defaults still reach you. Viewers can customise too: it only changes their own dashboards.
Several dashboards
The dashboard name next to Customise opens the picker. Keep as many dashboards as you like per screen (up to 25), for example Triage and Exec weekly:
- New dashboard… starts from the layout you are looking at and opens it. Each dashboard has its own link
(
/dashboard?dash=…). - Rename, Duplicate and Delete act on the open dashboard. Names are unique for you on a screen.
- Open by default makes it the one that opens on that screen; choose it again to stop.
- The overview strips on the inbox, projects, a project and notifications have the same picker.
Sharing with the workspace
An Admin can open Share with workspace… on any of their dashboards. Everyone in the workspace then sees it under Shared with the workspace, read-only. They choose Duplicate to my dashboards (or Customise, which does the same) to get a copy they can change. Admins can also edit or remove a shared dashboard, and unsharing hides it again. People who already copied it keep their copies.
In the same dialog an Admin can make a shared dashboard the starting point for Admins, Editors or Viewers. Anyone in those roles who has not made a dashboard of their own then starts there instead of on the built-in layout; a role has one such dashboard per screen.
Filter bar
The home dashboard has a filter bar above the widgets: Project, Label (of the chosen project), Assignee (anyone, you, unassigned or a teammate) and the Date range. Every number, chart and list follows it. The filters are kept in the address bar, so you can copy the link (Copy link) and send a filtered view to a colleague; Clear filters removes them. Review rounds follow only the project filter.
Also on your account
The start page (Settings › Profile) and the dismissed update and support prompts follow your account too, and you can pin projects in the sidebar (hover a project, then the pin). If your session expires while a screen is open, Pinwren says so and takes you to sign-in, then back to the same page and filters.
The stats endpoint
Everything on a screen comes from one request, so moving or resizing a widget never reloads data.
GET /api/stats?days=14&projectId=<uuid>&labelId=<uuid>&assigneeId=me&from=2026-03-01&to=2026-03-31| Parameter | Description |
|---|---|
days | The range: 7, 14 (default), 30 or 90. |
from, to | An explicit span of UTC dates (YYYY-MM-DD, inclusive, at most 366 days; to defaults to today). Replaces days. |
projectId | Optional. Limit the numbers to one project; a project of another workspace matches nothing. |
labelId | Optional. Only items with this label; a label of another workspace matches nothing. |
assigneeId | Optional. me, none (unassigned) or a member id. |
The response holds totals (active, created, previousCreated, resolved, unassigned, overdue, mine,
urgent, avgResolutionHours), byStatus, byKind, byPriority, byProject (only without projectId), a
zero-filled daily series of created and resolved (oldest first, UTC days, ending on to when it is set) and the latest recent activity.
Trashed items are not counted. The call needs a dashboard session and reads only your own workspace; the token API
has the same numbers and filters at GET /api/v1/stats (SDK stats.get, MCP get_stats). The dashboard refreshes the numbers when the live stream
reports a change.
Not built yet
A per-card editor and funnel and gauge charts are not available. The inbox filters cover ad-hoc slicing.