Milestone

pending

by Achraf Ayar

A full-featured Kanban board with team members, milestones with ordering, and filtering by assignee, milestone, priority and tags.

2 starsUpdated 1mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Milestone — Obsidian Kanban Board

A full-featured Kanban board built for teams that live in Obsidian.
Manage tasks, team members, and milestones — all stored as a single JSON file that syncs seamlessly via Git or Obsidian Sync.


Features

  • Kanban board with drag-and-drop between columns
  • Filter bar — filter by assignee, milestone, priority, and tag in real time
  • Team members panel — add/remove members, pick colours, track task counts
  • Milestones panel — create milestones with labels, due dates, progress bars, and drag-to-reorder
  • Task modal — create and edit tasks with title, description, status, priority, assignee, milestone, and tags
  • Vault-native storage — all data lives in a single .json file, perfect for Git/Sync sharing
  • Quick create — add users and milestones on-the-fly from task modal dropdowns
  • Keyboard shortcut — press Ctrl+M (Cmd+M on Mac) to open the board instantly
  • Board Settings — set default filters that apply every time you open the board, and configure the data file path

Screenshots

Kanban Board View

Kanban Board

Task Creation Modal

Task Modal

Milestones Panel

Milestones Panel

Team Members Panel

Team Members Panel

Board Settings Modal

Board Settings


Installation

From the Community Plugin List

  1. Open Settings → Community Plugins → Browse
  2. Search for Milestone
  3. Click Install, then Enable

Manual Installation

  1. Download main.js and manifest.json from the latest release
  2. Place them in <vault>/.obsidian/plugins/milestone-board/
  3. Reload Obsidian and enable the plugin under Community Plugins

Usage

Open the board using any of these methods:

  • Press Ctrl+M (or Cmd+M on Mac)
  • Click the dashboard icon in the ribbon
  • Run "Open Milestone Board" from the command palette
ActionHow
New taskClick + New Task or + Add card under any column
Edit taskHover a card → click ✏️
Delete taskHover a card → click 🗑
Move taskDrag card to another column
FilterUse the dropdowns in the top bar
Manage usersClick 👥 Users in the top bar
Manage milestonesClick 🏁 Milestones in the top bar
Reorder milestonesDrag rows in the Milestones panel
Quick createSelect "➕ Create new..." from assignee/milestone dropdowns in task modal
Open settingsClick the ⚙ Settings button in the top bar

Board Settings

Click the ⚙ Settings button in the top bar to open the settings modal.

Default Filters

Set filters that are applied automatically every time you open the board — no need to re-select them on every session:

SettingDescription
Default SearchPre-fill the search box with a keyword (e.g. auth, v2)
Default AssigneeShow only tasks assigned to a specific team member
Default MilestoneShow only tasks belonging to a specific milestone
Default PriorityShow only tasks of a chosen priority level
Default TagShow only tasks carrying a specific tag

Data File Path

By default, board data is saved to milestone-board.json at the root of your vault.
You can change this to any path inside your vault (e.g. team/board.json) so it fits your folder structure or sync setup.


Data & Sync

All board data is stored at milestone-board.json in your vault root.
You can change the path under Settings → Milestone Board.

Since it is a plain JSON file, it works perfectly with:

  • Obsidian Sync
  • Git (each team member's filter state is local; task data is shared)

Development

# Install dependencies
npm install

# Build for development (with source maps)
npm run dev

# Build for production
npm run build

Source is organised by domain:

src/
  main.ts              # Plugin entry point
  BoardView.ts         # Root view — orchestrates everything
  SettingsTab.ts       # Obsidian settings UI
  constants.ts         # Default data and settings
  types.ts             # TypeScript interfaces
  styles.ts            # All CSS in one place
  components/
    Card.ts            # Single task card
    Column.ts          # Board column
    TagInput.ts        # Reusable pill tag input
  modals/
    TaskModal.ts       # Create / edit task
    MilestoneEditModal.ts  # Edit milestone details
  panels/
    UsersPanel.ts      # Team members side panel
    MilestonesPanel.ts # Milestones side panel
  utils/
    DataStore.ts       # Vault read / write
    filters.ts         # Filter matching logic
    dom.ts             # DOM helper functions
    uid.ts             # Unique ID generator

License

MIT

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.