Task Board
Work your tasks on a kanban board — stages as columns, exact per-column totals, board-wide filtering including subject match, and columns that load more as you scroll.
Overview
The task board lays out a workspace's tasks as a kanban: each stage is a column, and every task is a card you can drag between columns to change its stage. Open a card to see and edit its full detail.
The board is built to stay fast even when a workspace holds thousands of tasks: each column shows its first tasks and loads more as you scroll, while the counts and time totals always reflect every task in the column.
Live updates
When several people work the same board, it keeps itself in sync — in under a second, with no refresh. A card someone creates appears, one they delete disappears, and their moves and edits (title, priority, assignee, tags, due date, and the rest) reflect on your board as they happen. The · N counts and EST/REP totals update along with the cards.
It's designed to stay out of your way while it does this:
- Dragging a card is never interrupted by someone else's change — the board waits until you drop, then reconciles.
- Typing in a field is never overwritten by an incoming update — your draft is safe until you save it.
- Your active filter (including the subject match) is respected: a change that pushes a card out of your filter makes it leave your board, and one that brings a card in makes it appear — even though you and a teammate may be looking at the same board through different filters.
If the connection drops for a moment — a flaky network, or a deploy — the board catches up automatically the instant it reconnects, so you never sit on a stale board. Live updates cover other people's changes; your own changes always show immediately, as they always have.
If a card you have open is deleted by someone else, a quiet banner tells you so and the panel stays open — nothing you'd typed is lost — while editing locks (the task is gone). If it's changed by someone else, its fields refresh in place and a small, dismissible note lets you know.
One deliberate exception: renaming a project or a tag doesn't ripple across boards that are already open — cards keep showing the previous name until the board next refreshes (a navigation, a reconnect, or any change to the card itself). Everything that happens on a task — including comments and logged time, which drive the card's comment count and REP figure — syncs live.
Reading a column
Each column header shows the stage name and a running tally:
| Element | Meaning |
|---|---|
| · N (next to the stage name) | The exact number of tasks in the stage — the full total, even if not every card has loaded yet. |
| EST | The sum of estimated hours across all tasks in the stage. |
| REP | The sum of reported (logged) hours across all tasks in the stage. |
| Finalizing badge | Marks the stage that finalizes a task — moving a card here marks the task done. |
The bar at the top of the board mirrors these as Total, Est, and Rep for the whole workspace, with a small progression map whose dots scale to each stage's task count so a bottleneck is easy to spot.
The counts and EST/REP totals are computed on the server across the full task list, so they stay exact regardless of how many cards a column has loaded — or which filter is applied.
Loading more as you scroll
A column initially shows its first 25 tasks. As you scroll toward the bottom of a column, the next 25 load automatically; a Loading more… indicator appears briefly while they arrive. This repeats until the column is fully loaded.
You don't need to do anything — just scroll. Each column loads independently, so a long column never slows down the others.
Filtering the board
Click Filter in the page header to open the Filter tasks panel — a side sheet with ten groups you can combine to narrow the board. The button shows a small badge with how many filter groups are currently active.
The ten filter groups
| Group | What it does |
|---|---|
| Subject | The first field — match tasks whose subject contains the text you type. Accent- and case-insensitive (reuniao finds "Reunião"), by partial fragment. Leave it empty to not filter by subject. |
| Status | Match tasks by progress — Not started, Started, Overdue, Finalized. Each card shows a live count, and a task can match more than one (an in-progress task can also be overdue). |
| Task type | Match one or more task types. |
| Priority | Match by Urgent / High / Normal / Low. |
| Assignee | Searchable — match tasks assigned to any of the people you pick. |
| Project | Searchable. Includes No project for tasks not linked to a project. |
| Client | Searchable. Includes No client for tasks whose project has no client. |
| Tags | Searchable — match tasks with any of the tags you pick. Handy when an account has dozens of tags. |
| Expected completion | A date range over each task's due date, with quick presets (Overdue, Next 7 / 30 days, This month). |
| Completion date | A date range over when tasks were finalized (Today, Last 7 / 30 days, This month). |
Status is rule-based: Not started = no time logged yet, Started = at least one time record (on the task or any subtask) and not finalized, Overdue = not finalized past its due date, Finalized = completed. The counts on the cards update live as you work.
Applying and clearing
Build your filter. Pick values across any groups. Within a group your choices combine with OR (match any); across groups they combine with AND (match all). The footer previews how many tasks the result would show as matches / total.
Click Filter to apply. The board re-queries and every column updates — cards, the · N counts, and the EST/REP totals all reflect only the matching tasks. Your selection also shows as a row of removable chips under the stats bar.
Adjust or clear. Remove a single group with the × on its chip, click Clear all to reset everything, or reopen the panel and choose Clear filter. Closing the panel with Esc, the overlay, or × discards any unapplied edits.
Because filtering happens on the server, scrolling a filtered column loads more matching tasks, and the totals stay exact for the filtered set. Your active filter is kept in the page URL, so it survives a refresh and can be shared.
Searching by subject
Subject matching lives inside the Filter tasks panel as its first field — there's no separate search box in the header anymore. Type a word or phrase into Subject and, once you apply, the board narrows to tasks whose subject contains it. The match is accent- and case-insensitive (reuniao finds "Reunião") and runs on the server, so it covers every task in the workspace — not just the cards already loaded — and the · N counts and EST/REP totals update to the matching set.
Subject is a filter like any other: it joins the matches / total preview, applies with Filter, and clears with Clear filter. It's kept in the page URL (as ?subject=), so a filtered board survives a refresh and can be shared. To search across every task, project, and client instead — from any screen — use global search (Ctrl + K).
Moving and creating tasks
- Drag a card within a column to reorder it, or to another column to change its stage. The change saves immediately.
- Create a task from the + button in any column header — or New task in the page header — and it opens right away at the top of that stage, ready to edit.
A brand-new task always lands first in its stage, so you never have to scroll to find what you just created. Existing tasks shift down one position each but keep their order relative to one another.
Right after a drag, the affected column reloads its first page of tasks so its totals reconcile exactly with the server. Any extra pages you had scrolled into view reload as you continue scrolling.
A new task always opens for editing, even when an active filter would hide it from the board. A brand-new task starts as normal priority with no type, project, or assignees, so if your filter excludes those, the card won't appear on the board — but the task is saved and open in front of you. Clear or adjust the filter to see it as a card.
Sorting a column
Each column header has a Sort button (the ↕ icon, next to +) that reorders every task in that stage once, right away, by whichever you pick:
- Priority — Urgent first, down to Low.
- Due date — the soonest due date first; tasks with no due date go last.
Sorting is a one-time action, not a mode that stays on — it's the same as if you had dragged every card into that order yourself. Afterward you can keep dragging cards freely; nothing locks. Tasks tied on the same value (for example, two Urgent tasks) keep their current order relative to each other.
There's no dedicated undo for a sort — if the new order isn't what you wanted, drag the cards back manually. Because the board is shared, sorting a column reorders it for everyone looking at that board, live.
Quick actions with right-click
Right-click any card to open a context menu with the most common actions right there — no need to open the task. Everything in the menu does exactly what the same action does inside the task, and your change shows on the card immediately.
The menu builds itself from the task's state, so it only offers what that task allows right now:
The full menu. Quick edits open as submenus — pick a value without leaving the menu:
- Assign people, change priority, set a due date, change project, type, or tags.
Then the flow and utility actions:
- Move (opens the same move dialog — choose workspace + stage), Finalize (pick the completion date), Block (with a required reason), Copy link, and Delete.
Moving a task through this dialog places it at the top of the destination stage — unlike dragging a card, which drops it exactly where you release it.
A blocked task is read-only, so the menu reduces to Unblock, Copy link, and Delete. Unblock it to get the full menu back.
A finalized task is read-only too, so the menu reduces to Reopen, Copy link, and Delete.
The menu is a shortcut to what you already do inside the task — the options and the rules are identical. The tags submenu toggles your existing tags; to create a new tag, open the task and use its tags field.
Right-click opens the menu without starting a drag, and it replaces the browser's own right-click menu while you're over a card. Assignees and tags submenus stay open so you can set several at once; the rest close as soon as you pick.
Workspaces and stages
A workspace is one board. Switch between workspaces — or create one — from the workspace selector in the page header.
Open the selector and each workspace shows its context at a glance, so you can pick where the work is without opening every board:
- Open tasks — the count of tasks still open (not yet finalized) in that workspace, scoped to what you can see.
- Who's timing now — the teammates with a running timer in that workspace right now, shown as live avatars. A workspace where no one is timing reads Idle.
The presence updates while the menu is open and pauses when you close it, so the count and avatars stay current without slowing anything down.
Creating a workspace
Choose New workspace in the selector. The workspace is created right away and its settings open immediately, so you can rename it and adjust its stages without a separate dialog. New workspaces start with four stages: To do, In Progress, In Review, and Done (the finalizing stage).
Managing stages
Open workspace settings (the gear next to the selector) to rename the workspace and manage its stages:
- Rename a stage by clicking its name.
- Reorder stages by dragging the grip handle.
- Mark the finalizing stage with its toggle — exactly one stage can finalize tasks, and moving a card there marks the task done.
- Add a stage with the inline composer.
- Delete a stage with its trash button.
A stage that contains tasks can't be deleted — its delete button is disabled with a tooltip asking you to move the tasks to another stage first, so you never lose track of where tasks belong. (You also can't drop below two stages.)
Task details
Open any card to edit its details. Every change saves immediately:
| Field | What it does |
|---|---|
| Status | The stage the task sits in — change it to move the card between columns. |
| Priority | Urgent / High / Normal / Low. |
| Assignees | The people responsible for the task. |
| Project | The project (and, through it, the client) the task belongs to. Closed projects (Completed or Cancelled) are not offered — see the note below. |
| Type | The task type — pick from your organization's types, each shown with its own color, or No type to clear it. |
| Tags | One or more labels. |
| Due date, Estimated, Reported | Planning and time-tracking fields. Estimated and Reported sit side by side above a slim progress bar that fills as logged time approaches the estimate, then shows a red overflow segment with a +Xh over note once you log more than estimated. With no estimate set, the bar gives way to a hint to add one. |
If you open a task you don't have access to — for example from an older notification link, or a task mention pointing at a project you're not on — a brief message tells you so and the panel closes, instead of leaving you on a blank loading panel.
Assignees are scoped to the task's project. When a task belongs to a project, only people with access to that project — the project's members, plus your organization's owners and admins — can be assigned to it or to its subtasks, and the assignee picker lists exactly those people. A task with no project can be assigned to anyone in the organization. If you move a task into a different project, any assignees who lack access to the new project are removed automatically.
Closed projects can't be picked. A project with status Completed or Cancelled is outside the billing cycle, so it's left out of the project picker — both here and in the board's right-click Change project menu. If a task is already on a closed project, that project still shows in the list (marked closed) so you can see it and clear it, but no time can be logged on the task until the project is reopened. See Projects.
Adding subtasks
Break a task down into a checklist. Subtasks live inside groups — every task starts with one default group, and you can add more to organize a long list (for example, "Preparation" and "Review").
Creating a group opens its subtask field automatically — right after you name a new group, its "add subtask" field is already active, so you can start typing the first item without an extra click.
Check a subtask's box to finalize it, open it to rename it or add detail, or use its ⋯ menu to move it to another group or delete it.
Converting a subtask into a task
A subtask that outgrew its parent — it needs its own due date, priority, or a dedicated place on the board — doesn't have to be recreated by hand.
The new task starts blank on task-only fields — priority, due dates, estimated hours, type, tags and custom fields aren't copied from the subtask or from the original task. Fill those in on the new task if you need them.
A finalized subtask can't be converted — reopen it first. The group the subtask came from is left in place even if it ends up empty.
Blocking a task
When a task can't move forward — you're waiting on a client, a supplier, an approval, or an external dependency — block it so nobody wastes time trying to work on it and the reason is on the record.
While a task is blocked it becomes read-only: you can't edit its fields, move it between columns, or finalize it — dragging a blocked card back tells you it's blocked instead of failing silently. Comments and attachments stay open so the team can discuss and resolve the impediment.
Any member can block or unblock. Blocking always needs a reason. Unblocking needs one too — unless you're the person who blocked it, in which case it's optional (there's no one to notify). The task's assignees are notified (email + in-app) when it's blocked, and whoever blocked it is notified when someone else unblocks it — so a block is never lifted behind their back. Every block and unblock, with its reason, is kept in the task's Activity log.
Blocking and finalizing are mutually exclusive. A finalized task can't be blocked, and a blocked task can't be finalized — unblock it first. Both states make a task read-only; blocking is the reversible "paused, waiting" state, finalizing is "done".
A running timer also stops a task from being finalized. Dropping a card on the finalizing stage completes the task, and a completed task is read-only — so any timer still running on it (or on one of its subtasks) has to be stopped first. The card stays where it was and tells you to stop the timer; when the timer is a teammate's, the message names them, since only they can stop it. See Time tracking.
Editing a task's description
Open a card and click its description to start editing — the cursor lands in the editor right away, ready to type. A formatting toolbar appears at the top of the editor while you're editing and disappears once you're done.
The toolbar gives you the essentials:
| Button | What it does |
|---|---|
| Bold, Italic, Strikethrough | Toggle text styling on the selection. |
| Bullet list, Numbered list | Turn lines into a list. |
| Code block | Turn the current line into a code block — a monospaced area that preserves spacing and line breaks. Click it again from inside a block to turn it back into a paragraph. |
| Link | Opens a small field — paste or type a URL and choose Apply. Leave it empty and apply to remove an existing link. |
| Insert image | Pick an image, crop and name it, then drop an image card into the description. |
Quick formatting with "/"
Type / anywhere in the editor to open a command menu, then keep typing to filter it. Pick Text, Heading 1–3, Bullet list, Numbered list, Quote, Code, or Image to apply it to the current line — handy for formatting without reaching for the toolbar.
Code blocks
Use a code block to capture a command, a query, a config value, or a snippet of code so it stays readable — a separate, monospaced area that keeps your spacing and line breaks exactly as you typed or pasted them. Add one from the Code block toolbar button or the Code item in the / menu.
Pasting formatted text into a code block drops the formatting and keeps the plain text, so a snippet copied from another app or website stays clean. Code blocks are deliberately simple — one monospaced style, no syntax colors or language picker.
Every code block has a copy button in its top-right corner: one click copies the whole block to your clipboard and briefly shows a checkmark to confirm. The block — and its copy button — look the same when you're only reading the description, so anyone can grab the snippet without opening it for editing.
Reordering blocks
Hover over the left edge of any block (a paragraph, heading, list, or image) to reveal a drag handle, then drag it up or down to reorder. A line shows where the block will land when you drop it.
Adding images
You can add an image three ways: the Insert image button, pasting an image from your clipboard, or dragging an image file into the editor. Each opens a quick dialog to crop the image (optional) and name it.
Paste, drop, or pick an image. A dialog opens with a crop box — set to the whole image by default — and a name field.
Adjust the crop if you want, give it a name, and choose Insert. The image is saved as a task attachment and an image card — showing its name, size, and format — is placed in your description.
The image also appears in the Files tab, like any other attachment.
Click an image card in a description — or an image row in the Files tab — to open it in a lightbox. To remove an image, click the × on its card while editing and confirm: this deletes the attachment (it also disappears from the Files tab). Deleting the card any other way (for example, backspacing over it) just removes it from the text and leaves the attachment in place.
Save your changes with Ctrl+Enter (⌘↩ on Mac) or by clicking outside the editor; press Esc to discard them — saving drops your text in cleanly, without leaving a stray line break behind. A permanent hint at the bottom of the editor spells this out: Esc to cancel · / to format · Ctrl+Enter to save. The description reads at the same size and spacing whether you're editing or just viewing it.
Comments, replies and mentions
Open a card and switch to the Comments tab to discuss the task. The compose box sits at the top, collapsed to a single line — click it (or tab to it) and it expands; leave it empty and click away and it collapses again. Post with the Comment button or ⌘↩ / Ctrl+Enter, and the box clears and collapses. Comments read newest first, so the latest activity is always right below the box, separated by thin dividers.
Replying to a comment
Hover a comment — or move keyboard focus into it — to reveal its Reply action (and, on your own comments, the ⋯ menu); on touch screens these stay visible. A reply stays visibly grouped under the comment it answers, so a conversation is easy to follow. Replies go one level deep — replying to a reply still attaches to the same original comment, never a deeper thread. Whenever someone replies, the author of the original comment is notified, even if they weren't mentioned.
To keep long threads tidy, a comment shows only its most recent reply by default. When there are more, a “Show N previous replies” control sits between the comment and that reply — open it to read the older ones in order, and “Hide previous replies” folds them away again. A comment with a single reply just shows it, with no control.
Mentioning people and tasks with @
Type @ while writing a comment to open a single autocomplete with two groups:
- People — only members who have access to this task, each shown with their avatar and name so the right colleague is easy to recognize. Filter by typing part of a name. Pick someone and their name drops in as a badge. The badge is a single block: one Backspace removes the whole mention, never half a name. Everyone you mention is notified. In a comment visible to the client, the list also offers the client's active contacts; they appear only while the visibility switch is on, and a revoked contact is never offered.
- Tasks — any task you can see. Each row shows the task's subject and, below it, the project · client with a dot in the project's color, so similar tasks are easy to tell apart. Before you type, the list shows up to 10 tasks — the ones changed most recently in the current workspace first, topped up with the most recent across the organization. As you keep typing, it searches every task you can see by subject, beyond those first 10. Pick one and it drops in as a clickable badge showing the task's subject (shortened if it's long). Click it to jump straight to that task. Mentioning a task only creates the link — it does not notify that task's assignees.
Once inserted, a person mention and a task mention are easy to tell apart: each carries its own color and icon — a person glyph for people, a checkbox for tasks — so you can see at a glance which kind a badge is, even before reading it.
Your search accepts spaces, so you can type a full name (“Dana Whitfield”) or a multi-word subject (“Update the home page”) without the list closing. It stays open while you type and closes only when you pick an item or press Esc. A fixed note pinned to the bottom of the list spells this out — Esc cancels, and you can keep typing to search more tasks beyond the first results.
Notifications reach you in the bell and by email, in your own language. You're notified when you're mentioned or when someone replies to your comment — ordinary comments don't notify the task's assignees. The exception is a comment from a client contact in the client portal: it notifies the task's assignees and the project's managers.
A comment visible to the client emails the contacts you mention and the task's participants — the contacts who wrote a visible comment on the task or were mentioned in one — once each, in their own language, with a link that opens the task in the portal. An internal comment emails no contact, and making a comment visible later emails no one.
Pasting an image into a comment
Need to show a screenshot or a photo? Paste an image (⌘V / Ctrl+V) straight into the compose box — the same crop-and-name dialog you know from the task description opens.
Paste an image into the comment. The dialog opens with a crop box — set to the whole image by default — and a name field.
Adjust the crop if you want, name it, and choose Insert. The image uploads and drops into your comment as a badge with an image icon and the name you gave it. Paste more than one if you need to.
Post the comment. Anyone with access to the task can click the badge to open the image in a lightbox.
Comment images stay inside the comment — they never show up in the Files tab. Whoever can see the comment can open the image; people without access to the task can't.
Pasting is the only way in for now — there's no file picker or drag-and-drop for comment images, and only images are accepted. A mentioned colleague's notification simply flags that the comment has an image (📷); it never shows the picture itself.
Cleanup is automatic on two paths: if you abandon a draft without posting, the pasted image is discarded, and if the comment is deleted, its images go with it. While editing, removing a badge takes the image out of the comment text but leaves the stored image in place.
Going back after following a task link
When you follow a task link in a comment, the linked task opens in the same panel, replacing what you were reading. A Back arrow appears in the panel's top-left corner to return you to the task you came from — and the browser or phone back gesture does exactly the same thing. Hop across several linked tasks and you can retrace the path one step at a time, with forward redoing each jump. Going back from the first task you opened (the one you opened from the board) simply closes the panel and returns you to the board.
The Back arrow only appears when there's a previous task to return to — that is, when you arrived by following a task link. Opening a task straight from the board, from a copied link, or with the sibling ‹ › arrows starts fresh, with no Back arrow.
Editing and deleting
Use the ⋯ menu on your own comment to Edit or Delete it — the menu appears when you hover or focus the comment. Once you save an edit, the comment is marked · edited next to its timestamp. Once a comment has replies, both Edit and Delete turn unavailable — hover the greyed-out option to read why — so you can't rewrite or remove a message others have already answered. Remove the replies first (each by its own author) to unlock it again.
Activity log
Open a card and switch to the Activity tab to see a dense, time-stamped log of everything the system recorded about the task — who did what, and when. It reads top-to-bottom, newest first, grouped by day (Today, Yesterday, the weekday for earlier this week, then the date). The log refreshes as you work — change a field, move the task, reassign it, or log time, and the new event appears without reopening the card.
The Activity tab shows system events only — task created, renamed, moved between stages, assignees added, tags set, files attached, subtasks added, timers started and stopped, time logged, finalize / reopen, and block / unblock (each with its reason). Comments live in the Comments tab and never appear here, so the Activity count reflects system events alone.
Each row is one line: the time (HH:MM:SS), the person's avatar and first name, and a short sentence describing the change. Color appears only where it carries meaning:
| You'll see | When |
|---|---|
A value chip like Doing or a file name | A new value — the stage a task moved to, an assignee added, an attached file. |
A struck-through value with an arrow, e.g. Pending → Doing | A change from an old value to a new one. |
| A colored tag pill | A tag on the task — each tag keeps a consistent color. |
A mint duration like +1:30 | Time added by a stopped timer or a manual time entry. |
Filtering the log
Use the All events menu at the top-right of the tab to narrow what you see:
- By type — Status & moves, Assignments, Timers, Files, Tags & fields, or Subtasks. Pick any combination, or choose All events to clear it.
- By member — show only the events done by specific people.
A small dot on the button marks an active filter. Filtering is instant — it narrows the events already loaded.
Long histories load a page at a time. When there's more to see, a Load earlier link at the bottom pulls in older days.