Board & timeline
Last updated: 1 September 2026
The Board is where Kanban+ spends most of its time, and it's the tab you land on. The Timeline is the same issues drawn as a Gantt chart with dependency arrows. Both read live Jira data, and both write changes straight back to Jira as you — not as the app.
New to Kanban+? Start with Getting started.
What the board loads
The board runs one JQL query, assembled from the pieces you configure:
- the project clause from the board's projects
- the board's own Board filter (JQL), in Settings
- any quick filters you have switched on
- any field filters you've picked in the pill bar
- the board view's own condition:
statusCategory != Done OR updated >= -30d
For a board scoped to two projects with a filter of labels = frontend:
(project in (10001,10002)) AND (labels = frontend) AND (statusCategory != Done OR updated >= -30d) ORDER BY updated DESCResults are paged 100 at a time with no cap — a counter reads "Loading… N issues" while it works. A board with thousands of open issues will load all of them, so a board filter is worth setting.
The board polls in the background. If someone changes an issue elsewhere in Jira, a toast tells you and offers a refresh.
Columns
Columns are yours to define. Each one maps to one or more Jira statuses, so a column can absorb several workflow states.
Open Configure columns on the Board tab. Drag statuses between columns, rename a column inline, add or remove columns. Any status you leave in Unmapped statuses is collected into an Unmapped column on the board, so an issue never quietly vanishes.
Three per-column settings live in that editor:
| Setting | Effect |
|---|---|
| WIP limit | An optional whole number ≥ 1. Leave blank for no limit. |
| SLA days | The time limit for a card sitting in this column, in whole days. The input hints at 0.5 steps, but nothing enforces that and ages are floored to whole days everywhere, so a fraction behaves as the next whole day up. |
| Warn at | An earlier warning threshold. Only appears once an SLA limit is set; clearing the limit clears it too. |
WIP limits also appear in Settings. SLA thresholds do not — the Board tab's column editor is the only place to set them. See SLA tracking.
Column headers show the issue count, the story-point sum, WIP state, and how many cards are breaching or approaching their SLA. Done-category cards are left out of the SLA counts.
Click a column header's collapse control to squeeze it to a narrow strip. Collapsed columns are remembered in your browser, per person.
WIP limits: soft or hard
Each limit has a mode.
- Soft (the default) — the drop goes through and a warning banner appears.
- Hard — the drop is refused before anything is written to Jira, and a dialog explains why.
Cards
Drag a card between columns and Kanban+ transitions the issue in Jira. The card moves immediately and reconciles against the server response, so a failed transition snaps back rather than lying to you. Dragging within a column reorders locally.
What's on a card
Choose the fields yourself in Settings → Card fields — the list is your site's actual field catalogue, custom fields included. New boards show assignee, priority, due date and labels.
On top of your chosen fields, a card can carry:
| Marker | Meaning |
|---|---|
| Aging dot and tint | How long the card has sat where it is. Tiers default to 3 / 7 / 14 days and are configurable in Settings → Card Aging. |
🕐 SLA +Nd | The card is past its column's SLA limit by N days. |
⏰ Nd left | The card is inside the warning window, N days from breach. |
| Due-date chip | Shown only when the due date is within 7 days or already past. |
🚫 Blocked | At least one open blocker. |
⚡ Blocking | This issue is holding up others. |
🚩 Flagged | Jira's impediment flag. Click it to toggle. |
Card age is measured from the moment the issue entered its current status when Kanban+ has that timestamp, and falls back to the issue's last-updated time when it doesn't. SLA tracking explains where that timestamp comes from and how to backfill it.
Hover a card for quick edits to assignee, priority, story points and the flag. Click it to open the issue drawer — full inline editing, transitions, comments, links and sub-tasks without leaving the board.
Card colour rules
Settings → Card Color Rules holds an ordered list. Each rule is a field, an operator, a value and one of seven colours; the first rule that matches paints the card.
| Field | Operators |
|---|---|
priority | is, is not |
type | is, is not |
label | contains, is not |
assignee | is, is not (an empty value or unassigned matches unassigned issues) |
Colours available: red, orange, yellow, green, blue, purple, grey. Matching is case-insensitive. Rules are evaluated in the browser, so they cost no extra Jira calls.
Swimlanes
Group the board into horizontal lanes by assignee, priority or epic — or leave grouping off. The choice is saved on the board, so the whole team sees the same layout after a reload.
Lanes sort alphabetically with "Ungrouped" pinned last, and each lane collapses on its own (that part is per-person and not saved).
Epic grouping reads the issue's parent, which works in both team-managed and company-managed projects without an extra API call.
Finding things
Search. Press / or Ctrl/⌘ + F. Matches on key, summary, assignee, priority, type, status and labels.
Quick chips. 👤 Me, ⭕ Unassigned, ⚠ Overdue, 🔴 High+, 🚩 Flagged, 🚫 Blocked. They combine with AND. Me and Unassigned cancel each other out, as you'd expect.
Sprint selector. Picks up the active sprint automatically on first load.
Field filters. A Jira-style pill bar for type, status, assignee and priority, with value suggestions from your site. These compile into JQL and are sent to Jira. The Board and Timeline keep separate sets.
Team filter. Teams are people groups shared across every board — create them from the Teams button in the header. Board administrators and site admins can edit them; anyone can use them to filter.
Advanced filter. A clause builder that runs entirely in the browser, on issues the board has already loaded. It never re-queries Jira.
| Field | Operators |
|---|---|
| Text | contains |
| Assignee | is, is not, is empty |
| Priority | is, is not |
| Type | is, is not |
| Status | is, is not, contains |
| Label | contains, does not contain |
| Story Points | =, >, <, >=, <= |
| Due Date | before, after, is empty |
| Blocked | is true, is false |
Clauses join with a single global AND or OR. Two things to know: story points are read from customfield_10016, customfield_10028 or story_points, and an issue with no numeric value is excluded by any story-points clause; and an unrecognised field or operator passes rather than hides, so a filter degrades toward showing more, never less.
Saved views. Name a combination of grouping, assignee selection and search text, and it becomes a one-click preset. Saved views are shared with everyone on the board, up to 50 per board.
Editing several issues at once
Switch on select mode, tick the cards you want, and a sticky bar appears at the bottom. From there you can:
- assign (or unassign)
- set priority
- add a label
- move to a column
- add to a sprint
- export the selection to CSV
Each issue is written individually, so a partial failure leaves the successes in place and reports the rest. Every bulk run produces a before/after diff, which powers a one-click undo.
Creating issues
Each column has a quick-create form: project, issue type, assignee, priority, labels and epic. Press C anywhere in the app for the full create dialog instead.
Issue templates (Settings) turn common shapes into one-click chips above the quick-create form. A template pre-fills priority, labels and an optional summary prefix. Limits: 30 templates per board, names up to 50 characters, up to 10 labels, summary prefix up to 200 characters, and priority chosen from Jira's standard five.
Done transition guard
Moving a blocked issue into a Done-category column is the classic silent mistake. The guard is set per board, in Settings:
| Mode | Behaviour |
|---|---|
off | Nothing happens. |
warn | The move goes through, and you're told the issue still has open blockers. This is the default for new boards. |
hard | The move is stopped and a dialog explains which blockers are still open. |
The guard looks at direct open blockers only.
Board health
The health panel scores the board 0–100 and lists what's dragging it down — WIP breaches, SLA violations, blockers, overdue issues, stale work in progress. Each insight expands to the affected issues. There's a question box that keyword-matches against the board data.
This runs entirely in your browser, on data the board already loaded. It makes no network calls of any kind, and there is no model behind it — it is arithmetic and keyword matching, not AI.
Export
Export CSV writes the currently visible cards, or only the selected ones from the bulk bar. Columns: Key, Summary, Type, Status, Column, Priority, Assignee, Reporter, Labels, Story Points, Due Date, Is Blocked, Blockers, Days in Column. The file carries a UTF-8 byte-order mark so Excel opens it correctly.
The Timeline
The Timeline draws the same board scope as a Gantt chart, windowed to updated >= -90d. View modes are Day, Week and Month.
Where the bars come from
Bars are drawn from Jira's Due date and a Start date custom field, which Kanban+ discovers on your site. Where a date is missing, it fills in:
| Situation | Bar |
|---|---|
| Start only | Start to start + 3 days |
| Due date only | Due date − 3 days to due date |
| Neither | Today to today + 2 days |
If your site has no start-date field at all, a banner says so: bars are drawn from the due date, and dragging saves only the due date.
Drag a bar to reschedule. It snaps to whole days and writes back to the Jira issue immediately.
Dependencies on the timeline
The Deps button draws arrows between issues linked with Jira's Blocks link type. Arrows appear only when both ends are in the currently loaded issue set.
- Blue arrow — a healthy dependency.
- Red arrow — a scheduling conflict: the blocker ends after the blocked issue is due to start. A banner lists the first few.
- Amber bar border and an amber dot in the task list — the issue sits on the critical path, computed from your real Jira dates.
One precise limitation: the Timeline matches the link type named exactly Blocks. If your site renamed it, the arrows go quiet even though the board's blocked badges and the Dependency Map still work, because those match any link type containing "block".
Board administrators can also set a per-issue bar colour, and add a blocker by typing an issue key — which creates a real Jira "Blocks" link, not a Kanban+-only annotation.
Clicking a row in the left task list opens the issue in Jira through the host's own navigation.
The other views
| View | What it does |
|---|---|
| Summary | Headline counts for the board. |
| Backlog | Sprint and backlog management: create a sprint, start and complete one, move issues between sprint and backlog. |
| Calendar | Due dates on a month grid. |
| List | A flat, sortable table of the board's issues. |
| Reports | Active sprint progress, velocity across the last eight closed sprints, and per-assignee workload. Charts are hand-drawn SVG — no chart library, no CDN. |
| Roadmap | Epics and their children over time. |
| Portfolio | Every Kanban+ board on the site in one health table, plus cross-board blockers. See Cross-board dependencies. |
Known limits
- Story-point sums in column headers and on cards read
customfield_10016. A site using a different field id loses those numbers (the advanced filter tries three ids and is more forgiving). - The impediment flag assumes
customfield_10021with option id10019— the Jira Cloud defaults. Non-default sites won't flag correctly. - Timeline dependency arrows need the link type to be named exactly
Blocks. - Timeline bars need a start-date field on the site to show real durations.
- Board configuration is saved with a revision check, but Forge storage has no compare-and-set, so two administrators saving the same board within the same second can still overwrite one another. Single-field saves skip the check entirely.