Keyboard shortcuts & navigation
The command palette - Ctrl+K / ⌘K
Section titled “The command palette - Ctrl+K / ⌘K”One chord, everywhere in the app (in these docs, the same keys open the docs search). The palette jumps to any page or named tab your seat can see.
| Keys | Does |
|---|---|
| Ctrl+K / ⌘K | Open the palette (also via the search button top-left) |
| ↑ / ↓ | Move through results |
| Home / End | Jump to the first / last result |
| Enter | Open the selected page or tab |
| Esc | Close |
How the search behaves - worth knowing, because it rewards lazy typing:
- Empty query lists your pages in sidebar order - the palette opens as a jump list of your own rail. Tabs appear once you type.
- Every word must match. “settings whatsapp” narrows to one row rather than returning everything mentioning either word.
- Fuzzy is fine. Subsequences match (“brk” finds Break-even), exact and prefix matches rank higher, and shorter names win ties. A page outranks its identically-named tab (the Approvals page beats Settings’ Approvals tab).
- It never widens what you can see. The index is built from your own projected sidebar - a page your role lacks is absent from search too. A page your plan hasn’t unlocked shows locked and Enter takes you to Billing instead; locked pages contribute no tab rows.
- At most 12 rows show; refine the query rather than scrolling.
Tab deep links - ?tab=
Section titled “Tab deep links - ?tab=”Six pages have named tabs, and each is deep-linkable by appending
?tab=<id> to the page’s URL - the same links the palette produces. These are
shareable and bookmarkable.
| Page | Tabs (id → label) |
|---|---|
/approvals |
pending → Pending · decided → Decided |
/agents (Agent Hub) |
agents → Agents · tax → Tax · runs → Run history |
/breakeven (ROI) |
actuals → Actuals · forecast → Forecast calculator |
/housekeeping |
cleaning → Cleaning · inspections → Inspections · damage → Damage · upcoming → Upcoming |
/settings |
general → General · operations → Operations · payments → Payment channels · whatsapp → WhatsApp · approvals → Approvals |
/site (Booking website) |
general → General · design → Design · properties → Properties · pages → Pages |
Example: /settings?tab=whatsapp opens Settings on the WhatsApp tab.
Two forgiving behaviors:
- A page may render fewer tabs than it registers. Housekeeping shows Inspections,
Damage, and Upcoming only when there’s something on them (and only to seats that may
see them). A
?tab=value the page isn’t currently rendering falls back to that seat’s own opening tab - never a blank page. - An unknown or misspelled value falls back the same way.
Per-record sections
Section titled “Per-record sections”Detail pages (a booking’s Payments panel, for instance) have sections too, but they
exist once per record - those deep-link by path (/bookings/<id>/<section>), which is
the form notifications use, rather than by ?tab=.