Where tasks find their groove.
- Kanban board with configurable columns — add, rename, color, and drag-to-reorder via grip handles
- Task management with title, description, type (task/bug/feature/improvement/epic), priority (critical/high/medium/low/none), tags, category, and assigned person
- Live select indicators — every dropdown (type, priority, assigned to, category, column) shows an icon or colored dot that updates as you choose
- People system — assign tasks to team members with custom icons, colors, and names
- Category system — filter tasks by category with custom colors and hundreds of Lucide icons, displayed as icon dots in the sidebar
- Card color modes — color task card borders by priority or category (configurable in settings)
- Drag-and-drop between columns (mouse + touch with long-press)
- Search and category/person filtering — click a category or person in the sidebar to filter the board
- Collapsible sidebar — toggle to icon-only mode (52px) for more board space
- Multiple themes — Catppuccin (Macchiato, Mocha, Frappé, Latte), Nord, One Dark, Tokyo Night, Dracula, GitHub, Gruvbox (Material), Ayu, Night Owl, Cyberpunk
- Dark/light mode toggle
- Local storage — IndexedDB with in-memory fallback
- GitHub repository sync — push/pull tasks, categories, people, and board config (theme, mode, card color, columns) to a GitHub repo for cross-device use
- Silent pull after onboarding — fetches existing remote data without toasts
- GitHub avatar auto-fetching via /user and /users API
- Onboarding flow for first-time setup
- Data export/import (JSON)
- PWA support (manifest, service worker with offline caching, favicon PNGs + SVG)
- Mobile-responsive — scroll-snap columns, full-screen modals, safe-area awareness, floating action button for quick task creation
- Timestamps — tasks, categories, and people all track
createdAtandupdatedAt - Hundreds of Lucide icons — inline SVG sprite sheet with no external dependencies
- Vanilla HTML/CSS/JavaScript (ES5-compatible)
- IndexedDB (with in-memory fallback)
- Lucide icons (inline SVG, no CDN)
- GitHub API v3 (for sync)
kanzo/
├── index.html # Main HTML entry point
├── manifest.json # PWA manifest
├── sw.js # Service worker (offline caching)
├── config.example.json # Example server config
├── favicon.svg # SVG favicon
├── favicon-32.png # 32×32 favicon
├── favicon-192.png # 192×192 favicon
├── favicon-512.png # 512×512 favicon
├── apple-touch-icon.png # 180×180 Apple touch icon
├── LICENSE # MIT license
├── .github/
│ └── FUNDING.yml # Sponsor config
├── css/
│ ├── themes.css # Theme families (CSS custom properties)
│ └── components.css # All component styles
└── js/
├── config.js # Constants, DEFAULTS, icon/color arrays
├── icons.js # Lucide SVG icons (inline sprite sheet)
├── configStore.js # Config CRUD (localStorage)
├── themes.js # Theme application and toggle
├── storage.js # IndexedDB backend (LocalBackend + GitHubBackend)
├── boardStore.js # Task, category, and people CRUD + filtering
├── sync.js # GitHub push/pull sync
├── app.js # App init, onboarding, DOM mapping, SW reg, avatar fetch
├── utils/
│ ├── dom.js # UUID, slugify, sanitize, timeAgo, etc.
│ └── github.js # GitHub API client
└── ui/
├── toast.js # Toast notification system
├── modals.js # Settings, task, category, people, column modals
├── sidebar.js # Sidebar navigation, categories, people
└── board.js # Board rendering + mouse & touch drag-and-drop
- Clone the repository
- Open
index.htmlin a browser, or serve with any static file server - Complete the onboarding flow
- Create categories, people, and tasks — drag them between columns
- Create a fine-grained GitHub PAT with
reposcope - Open Settings → switch to GitHub storage
- Enter your token and repository (e.g.
username/kanzo-data) - Use Push/Pull to sync
MIT
- Lucide — icon library (inline SVG sprite)
- Catppuccin — theme palette inspiration
- sainnhe/gruvbox-material — Gruvbox Material palette
Features
- Kanban board with configurable, drag-to-reorder columns
- Task management with title, description, type, priority, tags, category, and assignee
- Live select indicators in task modal (type icon, priority dot, assignee circle, category dot, column dot)
- People system with custom icons, colors, and names
- Category system with hundreds of Lucide icons, filterable from sidebar
- Card color modes — color task borders by priority or category
- Drag-and-drop between columns (mouse + touch with long-press)
- Search and sidebar-based category/person filtering
- Collapsible sidebar (toggle to icon-only 52px mode)
- 13 themes across dark/light variants: Catppuccin (4 flavors), Nord, One Dark, Tokyo Night, Dracula, GitHub, Gruvbox Material, Ayu, Night Owl, Cyberpunk
- Dark/light mode toggle
- IndexedDB storage with in-memory fallback
- GitHub repository sync — push/pull tasks, categories, people, and board config
- Silent pull after GitHub onboarding
- GitHub avatar auto-fetching
- Onboarding flow for first-time setup
- Data export/import as JSON
- Keyboard shortcuts:
Nnew task,Btoggle sidebar,Dtoggle dark mode,/focus search,?help,Escclose modal - Help modal with getting started guide and shortcut reference
- PWA support — manifest, service worker with offline caching, favicons
- Mobile-responsive layout with scroll-snap columns, FAB, full-screen modals, safe-area awareness
- Timestamps (
createdAt/updatedAt) on tasks, categories, and people
Bug Fixes
- Card color mode switching now re-renders the board immediately
- GitHub push handles SHA requirements correctly (re-fetches before each PUT to avoid 409 conflicts)
- Improved GitHub API error messages
