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 demo.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.5.tar.gz (40.1 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.5-py3-none-any.whl (50.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kandown-0.1.5.tar.gz
  • Upload date:
  • Size: 40.1 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.5.tar.gz
Algorithm Hash digest
SHA256 b4acf44df69f39078706fb988f632b6bdded7097d011dd9ff976c3ac076df660
MD5 79a1f6d3a70a77f4724ed9028ef699db
BLAKE2b-256 96153ae00f89010949b14eb0da5df231b11f6531636991cc7d274cd26336b8e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for kandown-0.1.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: kandown-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 50.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 44954f1b76a9f3faad1509e35f916803b3e573c3faebd1d3b08758b4219f409c
MD5 98adda46140aaffdbf642b2e9b371467
BLAKE2b-256 b4c05a4b867bdc76792f8c4b3d2093e9ee5705913326a9f742562eda789dd3f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for kandown-0.1.5-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