qivo

Finding your way around

On desktop, the left navigation panel is 273.6px wide, giving project names more room. Projects use text names without identity icons or icon pickers.

The larger lowercase qivo wordmark sits at the top of the sidebar, with your organization's name stacked closely below it. They share the navigation panel and align along its left edge. The organization name is static text, not a switcher and not a menu: this is your organization, and even when someone outside it shares a project with you (§12) there is no mode to switch into. It used to open a small menu; everything in it (Organization / Team / User settings) is a page of the Settings screen at the foot of this same rail, so the name is now just the name. The one exception is a login that has been invited into someone else's project but has no organization of its own — there the well reads Create your organization… and opens that dialog. Below it, Search opens the search palette, then My view and All projects, which are not pages but scopes: they highlight like a project row, keep whichever of the three views you were in, and have their own links. Directly below them, Team sync opens the page for your team's regular meeting (§8). It is a page rather than a scope: while it is open its row is the only one lit, and it appears only when you belong to an organization. Then the Projects tree lists projects with their sub-projects — selecting a project reveals its sub-projects, and selecting one of those keeps the same branch open. The sidebar uses connector lines like parent/sub-task cards instead of expand icons, leaving more room for names. Only the project you're viewing stays expanded. A sub-project whose name needs two lines gets a taller row. Nothing in the sidebar opens a hover tooltip: its rows and buttons are named by their labels. Projects shared with you from another organization sit in the same tree, gathered under a small header naming that organization. Project rows carry a "…" menu with New sub-project… for leads, settings and Archived tasks, sub-project rows their own (settings and Archived tasks), and eligible organization staff get a + on the Projects header for new projects. On desktop, the project tree scrolls when it outgrows the available height; the navigation above it and Settings below it stay visible. Settings follows the last project inside the same navigation panel as a muted gear and label, with the same spacing as between the qivo logo and organization name. The panel fits its contents, keeping Settings close to a short project list. It opens the settings screen (§10) on your own preferences, which is why no view carries a settings gear of its own. The settings rail is short and every entry is a page. User account → Your preferences comes first on desktop and phones, followed by Organization (General, Billing, Users, Teams, Labels — Teams opens to anyone who leads one, the rest to org admins), Projects → All projects and Archived projects. Teams and projects are listed on their page, not in the rail: Projects shows every project you can see — home organization first, then each organization that shared one with you under its own name — as the same tree as the sidebar: click a project to reveal its sub-projects (one project open at a time, remembered while you stay in Settings), click a sub-project to open its page, and use a row's "…" menu for Project settings, New sub-project… (leads) and Archived tasks. Each project has exactly one address; the list you came through stays highlighted while you are inside it. The archived-tasks page (§9) has no pinned entry — reach it from a project or sub-project row's "…" menu, which opens it already scoped to that project.

Section headings, table columns, form labels and badges display their written casing: Projects and Project health, for example. Styling does not convert them to all capitals.

Top bar#

The switcher stays centered in the same position across Overview, Board, Roadmap and the Inbox. It starts with the Inbox envelope and its unread count (§11), then a vertical line, then the three views. With the Inbox open the envelope is the lit tab, and a view tab takes you straight back to that view. Over Team sync (§8) no tab is lit, and a view tab leaves the page for that view. Nothing sits at the switcher's right: creating a task belongs to the board itself (a column's +, a swimlane's or side-board's +, an empty board's action), so the bar carries only the switcher. The sidebar identifies the current project or scope. This bar omits project/sub-project names, the All projects title/count, and the My view title and icon. A hidden scope heading remains available to assistive technology.

The sidebar sits beside the current content panel, and their tops align below the page heading and any toolbar. Wrapping Board or Roadmap controls move both down together. Overview, Inbox, Settings and Archive follow the same layout in Blue, Dark and Light. Settings and Archive each display one centered page heading in the same panel as the view selector, without its highlight; these headings do not act as buttons.

Everything that narrows or arranges the board sits in a row of its own under that one, centred: the text filter, My tasks, Assignee, Priority, Stale and Focus (below), and last the layout switcher. The row is a well like the view switcher above it, and the controls inside draw nothing at rest — a soft fill on hover, and the same raised chip as the current view tab while they are on. Nothing in the row draws a border except the text filter. The Roadmap carries the same controls in the same order in its own toolbar row — one centred group of the filters and then its planning and undo buttons — with three filters left out there (below); and the Overview narrows by scope alone and carries no row at all.

Two things used to sit beside the name and no longer do — a completion bar and the lead's avatar. Both were facts about the scope wedged into a row of controls, and both are said properly on the Overview instead: completion by the Completion cell, which has room to write "2 of 25 tasks done" under it, and the lead by a Lead cell that gives the person a name rather than a 20-pixel disc. Nothing else lives on that end of the bar either: no settings gear (the sidebar's Settings entry opens the screen, and a row's "…" menu still deep-links straight to a project), and no notifications bell — your Inbox is where news reaches you, and a task's own history is in its task window. In All projects and My view the board columns carry no + either — across every project there is nowhere in particular to put a new task.

All projects#

All projects answers "what is everyone working on?" without picking a project first. It shows the same Overview, Board and Roadmap over every project you can see — including projects another organization has shared with you (§12). It never widens your access: what it shows is exactly what the project list already lets you open.

What changes is the grouping, which rises one level. Inside a project, the board's lanes and the roadmap's tracks are its sub-projects; in All projects they are the projects themselves, and each task still says which sub-project it belongs to — printed on the board card, and on the roadmap as a sub-project band inside the project's track, so the timeline reads project → sub-project → task. The bands collapse exactly like tracks do, so you can fold a discipline away. The Overview's health table becomes one row per project, and clicking a row drops you into that project's board.

Creating a task needs a project, and this scope isn't one. A new task has to go somewhere, so every button here that would have to guess is gone: the board columns' + and the empty states' action. (The palette offers neither — it offers no commands at all.) Two ways to create anyway, both of which name a project: switch the board to Side-by-side boards and use a project's own + (only where your role can write in it), or open the project and work there. Creating a project or sub-project is unaffected — those pick their own home in the dialog. The Team strip's This project only toggle is gone too, for the opposite reason: across all projects, all work already is the scope.

One thing to know if you're a guest in someone else's organization (§12): you hold a separate identity there, so the Team strip lists that seat as its own person — the two aren't added up.

My view#

My view answers the other half of that question — "what is on my plate?" — with the same three views over the same set of projects, showing only the tasks assigned to you, plus the ones waiting In Review with you as reviewer. A task assigned to you leaves your My view while it waits in Review with someone else as reviewer, and comes back when it leaves Review. If you hold a guest seat in another organization (§12), the work waiting for you there appears here too: it is one list of your work, not one per organization.

The grouping is the same as All projects (lanes, tracks and health rows are the projects), with one difference: a project you have nothing in simply doesn't appear — no empty lane, no empty track, no all-zero health row. Nor does a sub-project band with none of your work under it. The rollups count your tasks: the Overview's Completion and each health row read "n of m" over your tasks only, and a roadmap track's remaining hours are yours, not the project's.

Two filters are missing here on purpose: My tasks and Assignee — neither view's row carries them. The scope already answers "who", so one would do nothing and the other would only let you filter yourself down to nothing; no control here claims one of them is on either. The text filter and Priority stay on both views; Stale and Focus stay on the Board, the one view that has them. Creating is withheld exactly as it is in All projects, and for the same reason — with one extra note: a task made from a side-board's + starts unassigned, so it won't land in this view, and Qivo jumps you to its sub-project so you can see it.

The three views#

Overview, Board, Roadmap — a segmented switcher in the middle of the top bar. Your last view, scope — All projects and My view included — and roadmap window are saved server-side per user, so your place follows you across devices and reloads.

Filters (Board and Roadmap)#

On desktop, the Board carries the full set in a row of its own under the top bar: the text filter, My tasks, Assignee, Priority, Stale, Focus, with the layout switcher last. The Roadmap carries the text filter, Assignee and Priority in the same order, sharing one centred well with Estimates, Milestone, Auto-move and Undo, all drawn the same quiet way; My tasks is answered there by the Assignee menu's Me only row, and Stale and Focus are Board controls that never narrow the timeline. The view window lives on the timeline itself (§6). On a narrow window the controls wrap, the four planning buttons together.

Phone Tasks and Roadmap omit the text field and ignore any desktop text query. The other filter controls remain available in their filter pages or menus.

The Roadmap's row also carries planning tools, so two filters are left out there. My tasks has no button — pick Me only at the top of the Assignee list instead, which is the same filter, and the Assignee button then reads "Me only" so you can see it is on. Stale is a Board filter: it has no button on the Roadmap and does not narrow the timeline, so a Stale you switch on over on the Board narrows the board alone. The other filters belong to the view state you carry between Board and Roadmap, so one you set on the Board still narrows the timeline — and you can see it there and turn it off there.

The desktop text filter ("Filter tasks…") does a wildcard, multi-word search: every word you type must match somewhere in the task — key, title, description, status, priority, assignee name, or labels — each word on any field. So "to do cable" finds a To Do task with "cable" in the title, and "lars emc" finds the EMC task assigned to Lars. Case and word order don't matter, and the box clears with its own ×.

The other four are My tasks (only yours; a text-only button in the Board toolbar), an Assignee picker — Me only at the top (the same filter as My tasks), then Anyone, then everyone, and you can tick several people — Priority, and Stale (only tasks untouched longer than the standard stale threshold). Each is a button that lights while it is on and says what it is narrowed to — Assignee reads the person's name, Priority the level — so a narrowed view says so while you are looking at the work rather than at the controls. The roster stays open while you pick, so you can choose several people in one visit; a priority closes it, being one choice. My tasks and Assignee are deliberately mutually exclusive: turning one on clears the other, and both are absent in My view, where the scope already answers "who" (§3). Both go by who owns the task: while a task waits In Review with a reviewer, they match the reviewer rather than the assignee (§2).

Turning one off is done on the control itself. My tasks, Stale and Focus are switches — press again. Assignee and Priority open menus, so while one of them is narrowing something its chevron becomes a small ×: one press clears that filter and nothing else, and the rest of the button still opens the menu. The search box has its own ×. There is no button that turns everything off at once — three filters on is three presses, each where you are already looking.

A control that is on is a raised chip — its own fill and a shadow, its label semibold, no border — rather than a blue highlight; only Light letters the chip, and its ×, in a deep blue. It is the same chip in Blue, Dark and Light, and the same chip that marks the current view tab, the current sidebar row and the current Settings page, so "on" and "you are here" read alike everywhere. The × shares the chip, and its keyboard action returns focus to the filter button after clearing. The text filter is drawn like the sidebar's Search box: a quiet hairline that strengthens on hover and while you type, never an accent.

Filtering hides whatever has nothing left to show. On the board that is a sub-project lane; on the roadmap it is a whole track and, inside it, a sub-project band — a project with no matching task drops off the timeline rather than sitting there as a heading over an empty row. What never disappears is the frame around it: the board keeps its status columns and the roadmap keeps its week grid, its window controls and its milestone flags. When a filter matches nothing at all, both say so in the same words — a small "Nothing matches your filters" note with a Clear filters button, which is the one place that still puts every filter away in one press.

Focus is different from the other filters: it hides Backlog and Done — the two columns disappear from the board entirely — leaving only work that's up or under way. It is a Board control: the Roadmap has no Focus button and Focus never thins the timeline; the roadmap has its own status visibility rules (§6). Focus is off by default, nothing else turns it off, and like your view state it's saved server-side per user, so a focused board stays focused across devices and reloads. A "Plan on roadmap" session bypasses the filters for the task being planned; move a Backlog task to another status before starting a session.

Search palette#

Open it with the sidebar Search button or the search icon in the phone header. An empty search shows no suggestions. Typing searches tasks (by key and title, up to nine) and projects, each in its own section; a task row shows its key, title, status and project, and picking one opens it, while picking a project scopes to it. Up/Down + Enter navigate and open results. The dismiss button shows Close on phones and esc on larger screens; pressing it or the Escape key closes the palette and keeps the page beneath it open. On phones, browser Back also closes search. Opening a result consumes the search layer, so Back from the result returns to the page where the search began. Home and End move to the start and end of the search text, and holding Shift selects text to that position.

Search uses case-insensitive word fragments in any order. Every fragment must appear somewhere in the fields that the search covers; you do not need whole words or wildcard characters. For example, “signed firm”, “upd firm”, “add back”, “add rollback” and “and add sign” all find “Add signed firmware updates and rollback”. The same matching rule applies to task filters, archive and inbox search, searchable pickers and operator user search.

In the palette, a matching phrase ranks above separated or reordered fragments; an earlier phrase match ranks higher. Only visible projects and their tasks are searched, and the task section keeps the nine highest-ranked matches.

Every scope, view and task has a URL, and every one of them begins the same way: qivo.io/app/, then your organization's address (§10). So a task link looks like qivo.io/app/acme/tasks/qn-482, and a board like qivo.io/app/acme/board/p/3.

The name in front matters because task and project numbers are counted per organization: if another organization has shared a project with you (§12), your blend holds two QN-1s, and the address says which one is meant — qivo.io/app/their-company/tasks/qn-1. A few places aren't about any single organization — your inbox, the archive, My view, All projects, your account page all span every organization you can reach — and those carry a ~ instead of a name: qivo.io/app/~/inbox. It's a placeholder that no organization can ever be called, so it can't be confused with one. Team sync (§8) is always about your own organization, so its address carries your organization's name: qivo.io/app/acme/sync/all.

Task links are permanent — any case, bare number, or full key all resolve, and the recipient always lands on a board that actually contains the task. Project URLs use a stable per-org number, deliberately not the renameable key. All projects and My view each have their own addresses (…/board/all, …/board/mine, plus …/board/all/tasks/qn-482 and …/board/mine/tasks/qn-482 while a task is open over one), so a reload puts you back on the task and in the scope. A task link you copy from there is still the short permanent form: it carries the task, not your scope. Opening a short link while My view is your saved scope keeps the view when the task is yours, and lands on the task's own project when it isn't — the promise that a link always shows you the task it names comes first.

A link to an archived task doesn't open it (archived tasks aren't loaded) — restore it from the Archive page first (§9).

Keyboard, in brief#

Esc closes whatever is on top (popover → dialog → task window); Enter submits in single-line fields; L opens the label picker inside the task window; Ctrl/Cmd+S saves a description or comment draft; Ctrl/Cmd+K makes a link from the selection in the editor. (There are currently no app-level shortcuts for switching views or opening the palette.)