Desk routes
Every hash route the Desk page answers, the Browse query keys, and the routes and keyboard shortcuts added in 0.5.0. Taken from assets/desk/src/router.js and pages/browse.js.
The Desk is one page with hash routes, so a link to any screen works inside the published artifact. src/router.js parses the hash. Anything it does not recognise lands on Today.
Routes
| Route | Page |
|---|---|
#/today |
Today |
#/inbox |
Inbox |
#/suggestions |
Suggestions |
#/browse/<type> |
Browse one record type |
#/entity/<type>/<slug> |
One record. The last segment is the slug from the entity id <type>--<slug>, not the raw key |
#/views |
Views |
#/runs |
Runs |
#/runs/<id> |
One run |
#/settings |
Settings |
Segments are URI-decoded. A query string after ? is parsed on every page except Today; only Browse reads it today.
Browse query keys
| Key | Meaning |
|---|---|
view |
Open a saved or built-in view by id. Any other key means the view was edited after opening, and the hash wins over the stored filters |
q |
Search text |
status |
active (default), all or dropped |
starred |
1 shows starred records only |
tag, source, reason |
Filter by tag, producer or drop reason |
window |
all (default), week, month, last-month |
f.<field> |
The value a declared field must equal |
sort |
<field>:asc or <field>:desc |
group |
A field to group by |
cols |
Comma-separated column list |
Example: Hiring Signals
#/browse/role?status=all&reason=not%20in%20title_keywords
#/browse/role?f.market=AU&sort=firstSeen:desc
#/browse/role?view=new-roles
#/entity/company/northwind-example
#/runs/2026-11-02-2200
The first shows the roles a title_keywords filter dropped, the second the newest Australian roles, the third the new-roles view the template ships.
Added in 0.5.0
Since 0.5.0.
| Route | Page |
|---|---|
#/approvals |
Approvals |
#/history?mode=list |
History as a list |
#/history?mode=cal |
History as a calendar |
#/history?mode=health |
History as health |
#/history?mode=activity |
History as an activity stream of people’s decisions |
#/history/<id> |
One run |
#/inbox?tab=suggestions |
The Suggestions tab of the Inbox |
#/runs redirects to #/history and #/runs/<id> to #/history/<id>. #/suggestions keeps working, with Inbox highlighted in the navigation.
| Key | Does |
|---|---|
g t, g i, g a, g h, g s |
Go to Today, Inbox, Approvals, History, Settings |
g then the first letter of a type’s plural |
Go to that type, when no other type or page key uses the letter |
/ |
Search |
f |
Filters |
n |
Notifications |
[ |
Sidebar |
? |
Shortcuts |
| Esc | Close |
| Cmd K or Ctrl K | Command palette |
Below 900px wide a bottom nav holds Today, Inbox, the first type, History and Settings.
Common pitfalls
- A field filter without the
f.prefix.?market=AUis ignored; use?f.market=AU. - Expecting a bad route to show an error. It shows Today.
- Linking to
#/approvalson 0.4.0. It lands on Today; the Approvals page arrived in 0.5.0.