Better Kanban Bases View

by Toto Tvalavadze
5
4
3
2
1
Score: 35/100
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Adds a focused Kanban view for Obsidian Bases with draggable cards, keyboard reordering, note previews, and saved layouts.

Reviews

No reviews yet.

Stats

stars
7
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Better Kanban Bases View

Better Kanban Bases View screenshot

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.

Install

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

Compatibility

Requires Obsidian 1.10.2 or newer. The plugin uses the Bases view API and is not marked desktop-only.

Features

  • A custom Kanban Bases view
  • Columns derived from the active Bases grouping (see note 1 below)
  • Cards that render the note title plus the properties already selected in Bases
  • Formula properties selected in Bases render as card metadata with a formula icon
  • Optional small or large plain-text note previews below card properties
  • Add-note buttons for writable grouped columns
  • Drag-and-drop column reordering
  • Drag-and-drop card reordering within a column
  • Cross-column card moves when the board is grouped by a writable note.* property
  • Context menu actions for moving cards and columns
  • Card menu actions to rename or delete notes
  • Keyboard card focus with arrow keys
  • Keyboard card moving with / Ctrl arrow shortcuts
  • Animated keyboard card moves that respect reduced-motion preferences
  • Persisted column order per grouping
  • Persisted manual card order per grouping (see note 2 below)
  • View options to hide empty card properties and choose the card preview size

Keyboard usage

Cards 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.
  • If no card is focused yet, the first arrow-key navigation starts at the first card in the first non-empty column.
  • Moving the mouse over a card focuses that card. After keyboard navigation or keyboard moving, stationary mouse hover is ignored until the pointer moves again.

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

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

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.

Design goals

  • Reuse the existing Sort, Group, Filter, and Properties controls instead of introducing separate kanban settings
  • Keep the styling minimal so the view feels like part of Bases rather than a themed plugin
  • Prefer pragmatic UX decisions over ornamentation or broad customization
  • Keep interactions fast and predictable (fast updates, no jumping DOM, etc.)

Privacy and safety

  • No telemetry or analytics.
  • No network requests.
  • No account, license key, or paid service required.
  • No access to files outside the vault.
  • Uses Obsidian APIs to read notes shown by the active Base, create notes from kanban columns, and update note frontmatter when cards move between writable note.* groups.

Development

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

Release

The first community release starts at 0.5.0.

  1. Update manifest.json, package.json, and package-lock.json to the release version.
  2. Update versions.json only when the required Obsidian version changes.
  3. Run npm test, npm run lint, and npm run build.
  4. Create a GitHub release whose tag exactly matches manifest.json version.
  5. Attach main.js, manifest.json, and styles.css to the release.

Notes

1. Note on rawKanbanView and runtime API

I 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.

2. Note on ordering behavior

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.


Future work

  • Better handling for date-typed properties, including daily note awareness and interaction
  • Smarter property type detection and cleaner formatting, ideally configurable from the view
  • Proper mobile validation; I have not tested it thoroughly yet, although this.app.emulateMobile(true); suggests the basic layout should be workable

License

MIT