Adds a focused Kanban view for Obsidian Bases with draggable cards, keyboard reordering, note previews, and saved layouts.

A focused Kanban view for Obsidian Bases with draggable cards, keyboard reordering, note previews, and saved layouts.
Columns are built from the active Bases grouping, and cards show each note's title plus the properties already selected in Bases, including formula values. The view keeps Obsidian's existing Base controls for sorting, grouping, filtering, and property selection, while adding a board layout for planning and reviewing notes.
Once approved in the Obsidian community directory, install Better Kanban Bases View from Settings > Community plugins.
For a manual install, download the release assets and place them in:
.obsidian/plugins/bases-kanban-view-ttvl/
manifest.json
main.js
styles.css
Requires Obsidian 1.10.2 or newer. The plugin uses the Bases view API and is not marked desktop-only.
Kanban Bases viewnote.* property⌘ / Ctrl arrow shortcutsCards can be focused with the mouse or with the keyboard. When a card is focused:
↑ and ↓ move focus within the current column.← and → move focus between columns, keeping the same approximate row where possible.Card movement shortcuts use Obsidian's modifier key: ⌘ on macOS / Ctrl on Windows and Linux. Boundary shortcuts also use ⌥ on macOS / Alt on Windows and Linux.
⌘↑ / Ctrl+↑ and ⌘↓ / Ctrl+↓ move the focused card one position within its column.⌘← / Ctrl+← and ⌘→ / Ctrl+→ move the focused card to the adjacent column.⌥⌘↑ / Alt+Ctrl+↑ sends the focused card to the top of its column.⌥⌘↓ / Alt+Ctrl+↓ sends the focused card to the bottom of its column.⌥⌘← / Alt+Ctrl+← and ⌥⌘→ / Alt+Ctrl+→ behave the same as the non-option column moves.Keyboard card movement is available when the board has an active Bases grouping. Cross-column keyboard moves require the grouping to be a writable note.* property because the plugin must update note frontmatter to move the card between groups. Boards grouped by formula.* properties can still use column ordering and same-column card ordering, but formula columns are computed and cannot be used as writable drop targets.
Card previews can be set to None, Small, or Large from the view options. Preview text is derived from the note body, skips frontmatter and common Markdown noise, and is truncated to keep cards compact.
Formula properties selected in the Bases Properties menu are shown in each card's metadata list. The view uses Obsidian's evaluated Bases values, so formula output renders through the same Value.renderTo path as note and file properties.
note.* groups.Install dependencies and run the local checks:
npm install
npm test
npm run lint
npm run build
Start watch mode:
npm run dev
For local vault development, symlink this repo into:
.obsidian/plugins/bases-kanban-view-ttvl
The first community release starts at 0.5.0.
manifest.json, package.json, and package-lock.json to the release version.versions.json only when the required Obsidian version changes.npm test, npm run lint, and npm run build.manifest.json version.main.js, manifest.json, and styles.css to the release.rawKanbanView and runtime APII wanted column reordering to respect the built-in Bases groupBy UI instead of adding a second grouping selector in plugin settings. Another selector would create a second source of truth for the same concept, which felt confusing and easy to desync from the active Base view.
In practice, the public BasesViewConfig surface exposed the active sort state but did not expose the current built-in groupBy selection in a usable way for this feature, and I could not find a documented public accessor for it. To keep the UI aligned with the actual active Bases view, the plugin reads the active kanban view's runtime query.views entry through rawKanbanView.
This is an intentional tradeoff: it uses observed runtime shape because the documented public API did not appear to expose the active groupBy, but it avoids introducing duplicate settings and keeps column ordering scoped to the grouping the user actually picked in Bases.
Card ordering has two "modes" (not a user facing term), automatic and manual.
In automatic mode, the board simply follows the active Bases sort. If the user chooses a sort from the Obsidian Bases UI, the cards should appear in that order and no manual card arrangement is treated as active.
In manual mode, the user has started rearranging cards directly. At that point, the board behaves like a fixed snapshot of the current grouped board rather than continuing to follow the live Bases sort for card order.
Manual mode is reset as soon as the user changes the Bases sort again.
this.app.emulateMobile(true); suggests the basic layout should be workable