A self-hosted kanban board. Create a board, share the link with your team, and organize work into columns, cards, and tasks. No accounts, no sign-ups — just a private URL for each board.
Share a board by sending the URL, or export it to Markdown and send the file. No accounts required.
Each board gets a random key. Only people with the link can see it — no global listing. Boards expire after a period of inactivity.
Organize work into columns, break it down into cards, and track individual tasks with checkboxes.
Export any board to Markdown and import it back. Easy backups, easy migration.
Boards untouched for 120 days are automatically cleaned up. Every view or edit resets the timer.
You can share boards in two ways: send someone the board link, or export the board to Markdown and share the file. Boards stored on the server expire after 120 days with no access. Until then, the board stays on the server even if you clear your browser data — to remove it permanently you have to delete the board yourself.
When you open a board, it is added to your “Your boards” list in the browser using localStorage only. No cookies are used. That list is just a convenience so you can jump back to boards you’ve visited; the real data lives on the server until it expires or you delete it.
This is a fork of kanban-go by lite1pal. The original is a solid Go + HTMX kanban board. This fork keeps the core and adds the following:
Single-file database. No separate database server to manage. Just mount a volume and go.
Boards use random 8-character URL keys instead of sequential IDs. No one can guess or enumerate boards.
When you load a board it is cached in your browser’s localStorage (no cookies). Your “Your boards” list is only in the browser; the server never exposes a list of all boards.
Boards not touched in 120 days are automatically deleted. Every view, edit, card or task action resets the timer.
Export a board as a Markdown file and re-import it later. Works as a portable backup.
Rename columns in-place and reorder them with left/right controls.
Packaged as a Docker image. Pull it, point a volume at
/data for the SQLite database, and
expose port 8080. Works on any server, VPS, or local machine that can run Docker.
Create and import boards from the command line with curl.
Full machine-readable docs at
/.well-known/skills.md.
curl -X POST https://kanban.colinknapp.com/api/board-import \
-H "Content-Type: text/markdown" \
--data-binary @board.md
curl -X POST https://kanban.colinknapp.com/api/boards \
-H "Content-Type: application/json" \
-d '{"name": "Sprint 12"}'
cat <<'MD' | curl -X POST https://kanban.colinknapp.com/api/board-import \
-H "Content-Type: text/markdown" --data-binary @-
# Weekend Project
## To Do
- Design landing page
- [ ] Pick color palette
## Done
- Buy domain
MD
curl -s https://kanban.colinknapp.com/board/<KEY>/export -o board.md
curl -X POST https://kanban.colinknapp.com/api/boards/<KEY>/import \
-H "Content-Type: text/markdown" \
--data-binary @board.md