by Jan Ma
2D Kanban/Swimlane task board with Task-as-File architecture, virtual grouping, and dynamic color coding.
ColorCoder Tables
A Notion-like 2D Kanban/Swimlane board for Obsidian with Task-as-File architecture, typed properties, and dynamic color coding.
π¬ Visuals
Board Demo β Color-coded 2D Kanban with Drag & Drop
Color-coded board, drag & drop between columns/swimlanes, hiding groups and swimlanes
Color Rules Settings
Condition rules + Gradient rules with live preview, priority ordering, per-board overrides
π± Origin & Motivation
ColorCoder Tables was born from a personal need: I wanted the power of Notion's databases and Kanban boards inside Obsidianβwithout leaving my vault, without cloud sync, and with full ownership of my data as Markdown files.
As a solo developer (jaho123i), I built this plugin to solve my own workflow gaps and to give back to the incredible Obsidian community that has given me so much. Every feature exists because I needed it daily. If it helps you too, that's the best reward.
No hidden telemetry β’ No cloud dependency β’ Your vault, your rules
β¨ Features
| Feature | Description |
|---|---|
| π― Task-as-File Architecture | Every task is a Markdown file with YAML frontmatter. No proprietary databaseβjust plain text you can version, grep, and script. |
| π 2D Kanban + Swimlanes | Columns (group by any property) Γ Swimlanes (second dimension). Drag cards to update values instantly. |
| β‘ Notion-like Quick Add Modal | Press a hotkey β typed form appears with dropdowns, date pickers, toggles, multi-selectsβall based on your property schema. |
| π·οΈ Typed Properties with Validation | Text, Number, Checkbox, Date/DateTime, Select, Multi-select, Reference. Auto-adoption detects existing vault properties. |
| π¨ Dynamic Color Coding | Condition rules (Priority = High β red) + Gradient rules (progress bars across values). Per-board or global defaults. |
| π Virtual Grouping | Group tasks by shared property values across foldersβsolves the "directory problem" elegantly. |
| π¦ Segmented Views | Split boards into segments by project type, duration, or custom criteria. |
| π₯ Notion Import | Export a Notion database as Markdown β import β every row becomes a task with all properties preserved. |
| π§ Per-Board Customization | Each board snapshots settings at creation. Global defaults never override existing boards unless you explicitly apply them. |
| π± Mobile-First | Touch-friendly drag & drop, Capacitor back-button support, responsive UI. |
| π Dark Mode Native | Uses Obsidian CSS variablesβlooks great in any theme. |
π How to Use
1. Create Your First Board
- Command Palette β
Create ColorCoder Boardβ pick a folder - Right-click a folder in the file explorer β
Create ColorCoder board here - A board file (
<name>-board.md) is created. It reads tasks from that folder and all subfolders.
2. Add Tasks β The Quick Add Way
-
Open the board (or run
Quick Add Taskfrom anywhere) -
Pick the target board from the picker
-
Fill in the typed form:
- Select/Multi-select β dropdown with your defined options
- Date β native date picker (toggle "Include time" for datetime)
- Checkbox β toggle
- Number β numeric input with validation
- Reference β file path input
-
Hit Create β task file appears instantly on the board
3. Organize with Drag & Drop
- Drag between columns β updates the group-by property (e.g., Status: Todo β In Progress)
- Drag between swimlanes β updates the swimlane property (e.g., Priority: Low β High)
- Drag within column β reorders cards (persisted per-group)
4. Color Code Your Way
Open Settings β ColorCoder Tables β Color Rules (or board Customize β Color Rules):
- Condition Rules:
Property+Operator+ValueβBackground/Text Color - Gradient Rules: Pick a property β each value gets an interpolated color between start/end
- Priority: Drag rules to reorder (first match wins)
5. Customize Per Board
Click the paint palette icon (or Customize board command) on any board:
- General: Cards per column, panel tinting, font size, compact toolbar
- View: Column/swimlane order, sort mode, visible groups, card fields
- Properties: Types, options, hide/exclude, auto-adopt new ones
- Color Rules: Board-specific overrides
6. Import from Notion
- Export Notion database as Markdown & CSV
- Run
Import Notion Exportcommand - Pick source folder β pick destination vault folder
- Every row with frontmatter becomes a task; database pages skipped; board created automatically
π¦ Installation
Option 1: Community Plugins (Recommended)
- Open Settings β Community Plugins β Browse
- Search for "ColorCoder Tables"
- Click Install β Enable
Option 2: Manual Installation
-
Go to the Releases page
-
Download the latest release assets:
main.jsmanifest.jsonstyles.css
-
Copy all three files to:
<your-vault>/.obsidian/plugins/colorcoder-tables/
- Reload Obsidian β enable ColorCoder Tables in Community Plugins
Option 3: BRAT (For Beta Testing)
- Install BRAT (Beta Reviewers Auto-update Tool) from Community Plugins
- In BRAT settings β
Add Beta Pluginβ paste this repo URL:
https://github.com/jaho123i/ColorCoder_Tables_System
- BRAT will fetch the latest build and keep it updated
π¬ Feedback & Contact
| Channel | Purpose |
|---|---|
| GitHub Issues | π Bug reports, π‘ Feature requests, π Documentation improvements |
| Obsidian Discord | π¬ Quick questions, π€ Community discussion, πββοΈ Tag @jaho123i |
Please use GitHub Issues for anything that needs tracking. Discord is great for chat, but issues get lost there.
β€οΈ Support / Funding
ColorCoder Tables is completely free β no paywalls, no locked features, no tracking.
There are no donation links set up yet. If you find this plugin highly valuable and want to support development financially, just let me know via GitHub Issues or ping @jaho123i on Discord β I'll gladly add a Ko-fi / GitHub Sponsors link!
Your feedback, bug reports, and kind words are already the best fuel for this project. π
π License
MIT License β see LICENSE for details.
π Acknowledgments
- The Obsidian Team for an extensible, developer-friendly platform
- The Obsidian Community for inspiration, API docs, and peer support
- @dnd-kit for the excellent drag-and-drop primitives
- @tanstack/react-table for headless table logic
Built by jaho123i.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.