Skip to main content

Kandown is a lightweight, markdown-inspired Kanban board application that lets you manage tasks using a simple YAML file, featuring a web UI, image and markdown support, and a hybrid demo mode for browser-based or local file storage.

Project description

Kandown

A simple, markdown-inspired Kanban board powered by YAML and Flask.

screenshot.png

๐ŸŽฏ Try Kandown Instantly Online

Experience Kandown without any installation required!
Access the GitHub hosted demo โ€” your data stays private and is stored locally in your browser.

Want to preview a real project?
Check out our own backlog.

Overview

Kandown is a lightweight web application for visualizing and managing tasks in a Kanban board format. Tasks are stored in a YAML file, making it easy to edit, version, and share your board. The app features a clean, responsive web UI started by the CLI.

Features

  • ๐Ÿ—‚๏ธ Kanban board UI: Drag-and-drop tasks between columns (To Do, In Progress, Done)
  • โœ๏ธ Markdown support: Write task descriptions using Markdown syntax
  • ๐Ÿ–ผ๏ธ Paste images: Task descriptions support pasting images from clipboard
  • ๐Ÿ—‚๏ธ Image Storage: Images can be embedded as base64 or saved to disk into an .backlog folder
  • โœ… Interactive checkboxes: Clickable checkboxes in task descriptions
  • ๐Ÿ“„ YAML-backed storage: All tasks are stored in a simple YAML file
  • ๐Ÿ”„ Jetbrains IDE integration: View and track tasks directly from JetBrains IDEs
  • ๐Ÿš€ CLI: Start the server, choose host/port/debug, auto-create YAML file if missing
  • ๐ŸŒ Hybrid demo mode: Try it in your browser with localStorage or connect to local files (Chrome/Edge)

Usage

You can install it or directly or use via uvx.

# install via uv
uv tool install kandown

# or via pipx
pipx install kandown

# or via pip
pip install kandown

# even without installing, you can run it directly:
uvx kandown [OPTIONS] [YAML_FILE]

Usage

Start the Kanban server

kandown [OPTIONS] [YAML_FILE]
  • If no YAML file is provided, defaults to backlog.yaml (auto-created if missing).
  • Open your browser to http://127.0.0.1:5001 (default) to view the board.

CLI Options

Options:
  --host TEXT     Host to bind to (default: 127.0.0.1)
  --port INTEGER  Port to bind to (default: 5001)
  --debug         Enable debug mode
  --help          Show help message

Examples

# Start server with default YAML file (if exists)
kandown

# Start server with a custom YAML file on a custom port
kandown --port 5001 page.yml

Hosted Version

A GitHub hosted version of Kandown is hosted at https://eruvanos.github.io/kandown/.

Storage Modes

localStorage Mode (Default - All Browsers):

  • โœ… Works in all modern browsers
  • โœ… Data stored in browser's localStorage
  • โœ… Quick trials without any setup
  • โœ… Privacy: Data stays in your browser
  • โœ… Offline use after initial load
  • โœ… Download data as YAML file
  • โœ… Import data from YAML file

File System Mode (Chrome/Edge Only - Optional):

  • โœ… Connect to a local folder on your computer
  • โœ… Read and write real backlog.yaml files
  • โœ… Work with existing Kandown projects
  • โœ… True file system integration
  • โœ… Changes persist to actual files

Demo Mode Features

The demo mode includes all core features:

  • โœ… Drag-and-drop task management
  • โœ… Markdown rendering
  • โœ… Image paste support (stored as base64 in localStorage, or as files in File System mode)
  • โœ… Task tags and types
  • โœ… Dark mode
  • โœ… Data persistence (localStorage or file system)
  • โœ… Storage mode switcher (localStorage โ†” File System)
  • โœ… Clear data option in settings
  • โœ… Load backlog files via URL parameter

Loading a Backlog File via URL Parameter (Read-Only Mode)

You can load and view a specific backlog YAML file in demo mode using URL parameters:

https://eruvanos.github.io/kandown/?backlog=example.yaml
https://eruvanos.github.io/kandown/?file=path/to/backlog.yaml

Read-Only Mode Features: When loading a backlog via URL parameter, the application enters read-only mode to protect your data:

  • ๐Ÿ“– View-only access - no modifications allowed
  • ๐Ÿšซ Drag and drop disabled
  • ๐Ÿšซ Text editing disabled
  • ๐Ÿšซ Type changes disabled
  • ๐Ÿšซ Tag editing disabled
  • ๐Ÿšซ Task creation/deletion disabled
  • ๐Ÿ’พ Data not stored in localStorage - kept only in memory

This is useful for:

  • ๐Ÿ“ค Sharing backlogs with team members for viewing
  • ๐Ÿ“š Providing example projects or templates
  • ๐ŸŽ“ Creating tutorial or demo workflows
  • ๐Ÿ‘๏ธ Previewing backlog files without modifying your local data

Requirements:

  • The YAML file must be accessible via HTTP
  • Either same-origin or CORS must be enabled on the file's server
  • If the file cannot be loaded, the demo falls back to default demo tasks (editable)

Using File System Mode

  1. Open the demo in Chrome or Edge browser
  2. Click the settings button (โš™๏ธ)
  3. Scroll to "Storage Mode" section
  4. Click "๐Ÿ“‚ Use File System (Chrome/Edge)"
  5. Select a folder on your computer (it will look for or create backlog.yaml)
  6. Start working with your local files!

Note:

  • In localStorage mode, data is stored in your browser's localStorage. Clearing browser data will delete all tasks.
  • In File System mode, your data is stored in actual files on your computer. The browser needs permission to access the folder, which you can revoke at any time.

Deploy Your Own Demo

The demo can be deployed to any static hosting service. A GitHub Actions workflow is included to automatically deploy to GitHub Pages:

  1. Enable GitHub Pages in your repository settings (Settings โ†’ Pages โ†’ Source: GitHub Actions)
  2. Push to the main branch or trigger the workflow manually
  3. The demo will be built and deployed automatically

Jetbrains Task Integration

You can integrate Kandown with Jetbrains IDEs using the Tasks & Contexts feature.

To set up Kandown as a task server open the IDE settings and navigate to Tools > Tasks > Servers. Add a new generic server with the following details:

  • General Settings:
    • URL: http://localhost:5001 (or your server URL)
    • Login Anonymously: Checked
  • Server Configuration:
    • Task List URL: http://localhost:5001/api/tasks
    • Tasks: $
    • id: id
    • summary: text

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kandown-0.1.6.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kandown-0.1.6-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file kandown-0.1.6.tar.gz.

File metadata

  • Download URL: kandown-0.1.6.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kandown-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f3c2be869e345353da284c0f4bca96a3b4f4a047b35b51fa3ef05d0cbcba0afc
MD5 fa83d87e98efb6dfc74ea6fce163500d
BLAKE2b-256 d79a75c389ccdea03138cd8da979b6bdee20620e9288df8a56a85c68925c8602

See more details on using hashes here.

Provenance

The following attestation bundles were made for kandown-0.1.6.tar.gz:

Publisher: pypi-release.yml on eruvanos/kandown

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kandown-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: kandown-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kandown-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9becfe69a86e6a23677d52a164884f7f9d3f8b6c58559990c08c0eb464eee493
MD5 6e69ec5b571eb747d0a7e93a688ed96d
BLAKE2b-256 725f7dea25e32199e441925950af14ff1562ad311372b1d340178d50c9c5dbf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kandown-0.1.6-py3-none-any.whl:

Publisher: pypi-release.yml on eruvanos/kandown

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page