The board
A board is a list of issues grouped by status. Change status, priority, assignee, labels, and due date inline from the row. Click through for the full detail view.
The filter bar keeps the board focused: All / Active / Backlog tab presets, plus a filter popover that drills into any combination of status, priority, and labels. Active filters show as removable pills under the bar.
Need to move many issues at once? Bulk select rows and change status or priority, add labels, or hand the whole selection to an agent as a batch coding run.
Deleting a board is a 48-hour soft delete. An owner can restore it from the trash until the purge sweep runs.
Statuses & priorities
Every team starts with seven built-in statuses (Backlog, Todo, In Progress, In Review, Done, Cancelled, Duplicate) and adds its own under Team settings → Statuses. Any member manages them; the seven builtins are locked (never renamed, recolored or deleted) but can be reordered.
Every status sits in one of six categories (backlog, unstarted, started, completed, cancelled, duplicate), and the category is what the clients reason about: the board groups by it, completed stamps the completion timestamp, and duplicate points at the issue it duplicates. A custom status needs a name, a color and a category; started caps at four.
Priorities are Urgent, High, Medium, Low, or none. An optional due date shows on the row with a calendar marker as it approaches.
Writing issues
Descriptions and comments are GitHub-flavored markdown, and the same text renders identically on web, iOS, Android, and desktop, with no client-specific dialects. Supported and round-trippable:
- Inline: bold, italic, strikethrough, and
inline code. - Blocks: headings H1–H3, bullet and ordered lists, task lists (
- [ ]/- [x], checkable from any client), blockquotes, and fenced code blocks. - Links and images: paste or drop an image straight into the editor; it uploads as an attachment and embeds in place, pre-sized so nothing jumps while loading.
## Repro
1. Open the board on a **narrow** viewport
2. Drag an issue between columns
## Acceptance
- [ ] Drop indicator visible while dragging
- [x] Board scrolls when dragging near the edge
```ts
// the culprit — offset ignores the scrolled container
const y = event.clientY - rect.top
```Mentions & refs
@-mentions
Type @ in any description or comment editor and an autocomplete offers your teammates. A mentioned member is notified and auto-subscribed to the issue, and their mention renders as a name pill on every client.
#-issue references
Type # and pick an issue, or just write #EXP-42. When the identifier resolves to an issue in the same team, every client renders it as a clickable pill that jumps straight to that issue. Unknown identifiers stay plain text, so pasting logs or commit messages never produces broken links.
Issue detail
The full-page view puts the description front and center with a properties rail (status, priority, assignee, labels, due date) and the conversation below.
The activity timeline interleaves comments with events: status changes, label changes, assignments, PR opened, PR merged. Subscribe to any issue to get its notifications. Commenting, being assigned, or being mentioned subscribes you automatically.
Notifications
The inbox collects everything addressed to you: assignments, comments on subscribed issues, @-mentions, PR opened / merged, and status changes.
On iOS and Android the same events arrive as push notifications the moment they happen.
The daily email digest
Email is push-first, never a firehose: there are no per-event notification emails. Notifications still unread bundle into one digest a day, sent at a local hour you choose (08:00 by default). Read them in the app and no email ever comes.
Tune it under Account → Notifications: per-type preferences, the send hour, and an hourly cadence if once a day is too slow. Every digest carries a one-click unsubscribe.
Branches & PRs
An issue that gets coded maps to one branch (exp/<IDENTIFIER>, e.g. exp/EXP-42) and one linked pull request. The PR state (open, merged) is tracked on the issue automatically.
PR automation
What a PR event does to the issue is a per-team setting: Team settings → Statuses → PR automation. Out of the box, opening the PR moves the issue to In Review and merging it completes the issue to Done. Point either event at any of your team's statuses instead, or set it to Do nothing and move issues by hand.
The one exception: batch coding runs. A batch works several issues in one session on a shared exp/batch-<id> branch and opens one combined PR linked to every issue in the batch. Merging that single PR completes them all.