Rafael Stavarengo246 downloadsA real Kanban board with drag-and-drop, nested subcards, comments, and history — every card is a plain Markdown file.
Kanban from plain Markdown.
An interactive Kanban board for Obsidian where every card is a plain Markdown file — drag-and-drop, nested subcards, comments, and history, with no database and no lock-in.

Columns, drag-and-drop, nested subcards, comments and an automatic history — backed entirely by plain .md files. Everything about a card (description, subtasks, subcards, comments, history) lives inside that one file as ordinary Obsidian-flavoured Markdown. No database, no proprietary blob, no weird syntax buried in your notes: your board is your notes.
There's no hidden state. Open any card in your editor and this is the whole thing:
---
status: doing # which column
order: 2.5 # position within the column (fractional)
priority: A
due: 2026-06-15
---
# Card title
Description text…
## Subtasks
- [ ] a plain todo
- [x] a done todo
- [ ] [[A Subcard]] ← a nested child card (its own file)
## Comments
- [2026-06-13 14:32] looks good
## History
- [2026-06-13 14:30] Moved from Todo to Doing
Parentage has a single source of truth: a card is a subcard of P iff P's ## Subtasks links to it. Body edits splice only the touched section; frontmatter is written via Obsidian's processFrontMatter, so unrelated bytes in your notes are never rewritten.
status and a fractional order (one card rewritten per move, never a mass reindex) and appends a ## History line.A/B/C/D or urgent/high/medium/low).- [ ] [[Child]] is a full child card; children render nested in a bordered group under their parent, in the parent's column./ to search by title, tag or priority; one-click Overdue / Due soon filters.columns frontmatter.
Make a board note — any note with this frontmatter (see examples/basic/ for a minimal board, or examples/feature-showcase/ for one that exercises every feature):
folia-board: true
card-folder: Cards # folder holding the card notes
columns:
- todo
- doing
- done
Put card notes (each with a status matching a column) in that folder.
Run the command “Open Folia Kanban board” or click the layout-grid ribbon icon.
Columns can be edited by hand in the board note's columns property, or managed in-app from each
column's ⋯ menu (rename, recolour, WIP limit, reorder, delete) and the Add column button — the
plugin reads and writes that frontmatter list either way. A column entry may be a plain string
(- todo) or an object ({ id, title, color, limit }).
Under Settings → Folia Kanban (changes apply live, no reload):
side (docked beside the board) or modal (centred dialog).split (shrinks the columns to the left) or float (overlays the columns); used when presentation is side.inline (add in the column), inline-edit (add, then open the new card's details), or detail (open a details form to create).moves (card moves/reorders only), structural (also priority/status/due/order changes), or all (also comments and subtasks).| Action | How |
|---|---|
| Search by title, tag or priority | Press / |
| Filter overdue / due-soon cards | One-click Overdue / Due soon buttons |
| Move or reorder a card | Drag with the pointer, or pick it up with the keyboard |
| Scroll horizontally across columns | Hold Shift and drag the board background |
| Card menu (open, mark done, priority, move up/down, add subcard, delete) | Right-click a card |
| Toggle or remove a surfaced todo | Right-click the todo |
| Column menu (rename, recolour, WIP limit, reorder, delete) | The column's ⋯ button |
Folia Kanban runs entirely on the files in your vault. There is no database, no account, no sync service, and no telemetry — the plugin makes no network requests at all. Every card is a .md file you can read, edit, grep, version-control, or open in any other editor. Switch to a different app tomorrow and your board comes with you, because it was never anything but Markdown.
Edits are surgical: body changes splice only the section they touch, and frontmatter is written through Obsidian's processFrontMatter, so unrelated bytes are never rewritten. A byte-stability round-trip over the fixtures in test/fixtures/ proves it.
Requirements: Obsidian 1.7.0+. Runs on desktop and mobile.
Coming soon — Folia Kanban is awaiting review for the Obsidian community store. Until it's listed, use the manual install below.
Download a release from the Releases page (or build it yourself — see Develop; the bundle lands in dist/), then copy main.js, manifest.json and styles.css into <your-vault>/.obsidian/plugins/folia-kanban/ and enable it under Settings → Community plugins.
pnpm install
pnpm build # production bundle -> dist/ (main.js, manifest.json, styles.css)
pnpm dev # watch build
pnpm test # vitest: model, board graph, drag, and UI flows
pnpm typecheck # tsc --noEmit
The pure model (src/model), board graph + drag reducer, and UI logic are unit-tested, including a byte-stability round-trip over the fixtures in test/fixtures/ that proves edits never corrupt untouched bytes of a card file. The dist/ build output, node_modules and the pnpm store are git-ignored; releases ship the built dist/main.js.
If Folia Kanban makes your week a little easier, a ⭐ on GitHub genuinely helps other people find it.
Found a bug or have an idea? Open an issue on GitHub Issues.
AGPL-3.0 © Rafael Stavarengo