Documentation / Kanban+

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 DESC

Results 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:

SettingEffect
WIP limitAn optional whole number ≥ 1. Leave blank for no limit.
SLA daysThe 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 atAn 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:

MarkerMeaning
Aging dot and tintHow long the card has sat where it is. Tiers default to 3 / 7 / 14 days and are configurable in Settings → Card Aging.
🕐 SLA +NdThe card is past its column's SLA limit by N days.
⏰ Nd leftThe card is inside the warning window, N days from breach.
Due-date chipShown only when the due date is within 7 days or already past.
🚫 BlockedAt least one open blocker.
⚡ BlockingThis issue is holding up others.
🚩 FlaggedJira'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.

FieldOperators
priorityis, is not
typeis, is not
labelcontains, is not
assigneeis, 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.

FieldOperators
Textcontains
Assigneeis, is not, is empty
Priorityis, is not
Typeis, is not
Statusis, is not, contains
Labelcontains, does not contain
Story Points=, >, <, >=, <=
Due Datebefore, after, is empty
Blockedis 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:

ModeBehaviour
offNothing happens.
warnThe move goes through, and you're told the issue still has open blockers. This is the default for new boards.
hardThe 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:

SituationBar
Start onlyStart to start + 3 days
Due date onlyDue date − 3 days to due date
NeitherToday 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

ViewWhat it does
SummaryHeadline counts for the board.
BacklogSprint and backlog management: create a sprint, start and complete one, move issues between sprint and backlog.
CalendarDue dates on a month grid.
ListA flat, sortable table of the board's issues.
ReportsActive sprint progress, velocity across the last eight closed sprints, and per-assignee workload. Charts are hand-drawn SVG — no chart library, no CDN.
RoadmapEpics and their children over time.
PortfolioEvery 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_10021 with option id 10019 — 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.