Build a kanban board from a task list

Paste a task list or a page of messy notes and get a proper board: cards sorted into To Do / In Progress / Done (or any columns you name), with @assignees, #tags, priorities and due dates read straight off each line. Export as Markdown sections, a side-by-side table, or a JSON board object. Runs entirely in your browser — nothing is uploaded.

Try:
Kanban board

About this tool

Kanban boards are useful because they make workflow state visible: what is waiting, what is in progress, what is blocked, what is being reviewed, and what is already done. This tool turns a plain task dump into that structure without requiring a project-management account or a drag-and-drop app.

Paste one task per line, or paste notes that already contain headings such as ## Backlog and ## In Progress. Each line becomes a card. The parser looks for practical status hints — status:done, [Blocked], wip, in progress, needs review, waiting on, and checked Markdown boxes — then routes the card into the closest matching column. It also pulls out common card metadata:

Choose Markdown sections when you want an editable board file, a Markdown table when you want a side-by-side snapshot for a doc or issue, or JSON when you want to feed the board into another tool.

Worked example

Input:

Draft the launch email @alice due:2026-09-01
Fix the login redirect — blocked
Rewrite the parser (wip) !high
- [x] Ship the v1 changelog
Migrate the staging database #infra

With the default columns, the Markdown output is shaped like this:

# Kanban Board

## To Do (2)

- [ ] Draft the launch email @alice due:2026-09-01
- [ ] Migrate the staging database #infra

## In Progress (2)

- [ ] Fix the login redirect
- [ ] Rewrite the parser !high

## Done (1)

- [x] Ship the v1 changelog

If you add a Blocked column, the login redirect card is routed there instead of falling back to In Progress or To Do.

Tips for better boards

Limits and edge cases

FAQ

Can I use my own column names?

Yes. Put a comma-separated list in the columns field, such as Backlog, Ready, Doing, Blocked, Review, Done. The output uses those names and order. Routing still works with common aliases: wip maps to a doing-style column, checked boxes map to a done-style column, and blocked maps to a blocked-style column when one exists.

How do I force a task into a specific column?

Add an explicit status marker to the line: status:Review, status=blocked, or [In Progress]. Explicit markers win over keyword guesses and section headings, so they are the safest way to disambiguate a task.

What happens to completed Markdown checkboxes?

A checked task (- [x]) is routed to the closest done-like column and is emitted as checked in Markdown output. Unchecked boxes stay unchecked and are routed by the same status, heading and keyword rules as plain lines.

Does the WIP limit prevent cards from appearing?

No. WIP limits are warnings, not filters. When a column exceeds the limit, the Markdown heading notes that it is over the limit and JSON output sets over_limit: true, but every card remains in the board.

Can it preserve nested subtasks or long card descriptions?

Not as nested card bodies. The input model is one card per line, which is what makes messy notes and exported checklists predictable. Indented lines and subtasks are treated as additional cards rather than being silently attached to the previous line.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool kanban-board-builder "Draft the launch email @alice due:2026-09-01
Fix the login redirect — blocked
Rewrite the parser (wip) !high
- [x] Ship the v1 changelog
Migrate the staging database #infra"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/kanban-board-builder/?tasks=Draft%20the%20launch%20email%20%40alice%20due%3A2026-09-01%0AFix%20the%20login%20redirect%20%E2%80%94%20blocked%0ARewrite%20the%20parser%20%28wip%29%20%21high%0A-%20%5Bx%5D%20Ship%20the%20v1%20changelog%0AMigrate%20the%20staging%20database%20%23infra&columns=To%20Do%2C%20In%20Progress%2C%20Done&format=markdown&title=Sprint%2012&default_column=To%20Do&wip_limit=0&sort_by=none&show_counts=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.