A modern, open-source kanban board for project management. Built with Go, htmx, and PostgreSQL, pm provides organizations with a simple yet powerful way to track work, collaborate on tasks, and manage projects.
- Drag-and-drop task management between customizable columns
- Customizable columns with color coding (default: To Do, In Progress, Done)
- Task cards showing title, description, due date, and assignees
- Task counts per column for quick progress tracking
- Organization-based workspaces with member management
- Multiple projects per organization for different teams or initiatives
- Cross-project task dependencies for complex workflows
- Blocking relationships between tasks (Task B blocked by Task A)
- Dual view of blockers (what's blocking this task) and blocking (what this task blocks)
- Cycle detection prevents circular dependencies
- Visual indicators for dependency status
- User accounts with email authentication and session management
- Task assignments to multiple team members
- Threaded comments with nested replies (up to 3 levels deep)
- Activity feed tracks all task changes with audit history
- Arbitrary key-value metadata stored as JSONB for custom fields
- Due dates with visual indicators for overdue and due-soon tasks
- Rich descriptions and editing capabilities
- Author tracking for task ownership
- Project-level labels with customizable colors
- Task categorization with multiple labels per task
- Visual indicators in task cards and detail pane
- Label management in project settings (create, edit, delete)
- Task search across titles and descriptions
- User search for finding team members
- Project picker for quick navigation between projects
- URL-based navigation for bookmarking and sharing task views
- htmx-powered partial updates for instant feedback
- Keyboard shortcuts (ESC to close panels)
- Responsive design works on desktop and tablet
- Clean, accessible interface built with TailwindCSS
| Component | Technology |
|---|---|
| Language | Go 1.26 |
| Web Framework | Fiber v3 |
| Database | PostgreSQL with sqlx |
| Migrations | goose |
| Templates | templ |
| CSS | TailwindCSS v4 |
| Frontend Interactivity | htmx 2.x |
| Drag-and-Drop | Sortable.js 1.15 |
# Install dependencies
mise install
mise run setup
# Start development server
mise run dev
# (Optional) In a separate terminal, run CSS watch mode
mise run dev:cssVisit http://localhost:3000 to get started.
- Sprint planning: Create columns for Backlog, In Progress, In Review, Done
- Bug tracking: Use dependencies to link bugs to the features they block
- Code reviews: Assign tasks to multiple reviewers for sign-off
- Release milestones: Tag tasks with metadata like
milestone: v1.2
- Campaign tracking: Columns for Ideation, Content Creation, Review, Published
- Content pipeline: Chain dependencies (brief β draft β design β publish)
- Creator assignments: Assign writers, designers, and reviewers to campaigns
- Due date management: Track publication deadlines with visual urgency indicators
- Ticket management: Columns for New, In Progress, Awaiting Customer, Resolved
- Priority routing: Use metadata for
priority: high,SLA: 4h,escalated: true - Cross-team dependencies: Block engineering tasks on customer features
- Activity tracking: Full audit log of who did what and when
- Maintenance schedules: Tasks for recurring operations with due dates
- Incident response: Track incident tasks blocking normal operations
- Change management: Dependency chains for multi-step deployments
- On-call assignments: Tag tasks with metadata like
team: DB,type: alert
- Client projects: Separate projects per client within your organization
- Deliverable tracking: Custom metadata for
client: Acme,contract: $10k,hours: 8 - Resource assignments: Assign multiple consultants to high-touch client work
- Cross-client dependencies: Block internal tooling tasks on client projects
- Volunteer coordination: Assign tasks to volunteer team members
- Event planning: Columns for Planning, Recruitment, Execution, Follow-up
- Grant management: Track deliverables with metadata for
grant: 2025-EF,deadline: Q2 - Program dependencies: Chain tasks across different program areas
- Onboarding flows: Dependency chain from offer accepted β account setup β orientation
- Employee lifecycle: Custom columns per stage (Hiring, Onboarding, Active, Offboarding)
- Policy updates: Assign tasks to document owners and reviewers
- Metadata tags: Track
department,urgent,quarter
- Create an organization (or join an existing one)
- Create a new project with name and description
- Customize columns to match your workflow (or use defaults)
- Create tasks directly in columns via the "Add Task" button
- Create or open a task to see the full detail pane
- In the "Dependencies" section, search for and add blocking tasks
- Visual indicators show which tasks are blocked and which are blocking
- The system prevents circular dependencies
- Open any task to see its history
- Add comments with rich text descriptions
- Reply to comments for threaded discussions
- Edit or delete your own comments
- View the activity feed to see all task changes
- Open a task and scroll to the "Metadata" section
- Click "Add Metadata" to create key-value pairs
- Examples:
priority: high,story_points: 5,estimate: 4h - Search, edit, or delete metadata entries as needed
We welcome contributions! Please see the AGENTS.md file for developer guidelines, including our tech stack, build commands, and code style conventions.
# Run tests
mise run test
# Run tests with coverage
mise run test:coverage
# Lint code
mise run lint
# Auto-fix linting issues
mise run lint:fix
# Database migrations
mise run db:up # Apply pending migrations
mise run db:down # Rollback last migration
mise run db:status # Show migration status
mise run db:seed # Load seed dataMIT