Skip to content

holiber/unikanban

Repository files navigation

UniKanban

CI Coverage

A Kanban board built with the Unapi pattern — self-documented, type-safe, transport-agnostic APIs in TypeScript.

Links

Quick Start

pnpm install

Web (Browser)

Start the Vite dev server and open in your browser:

pnpm dev

Build for production:

pnpm build:app

TUI (Terminal)

Launch the terminal UI powered by Ink:

pnpm dev:tui

Keyboard controls: h/j/k/l or arrow keys to navigate, t to toggle theme, q to quit.

Build the TUI:

pnpm build:tui

Headless (Library)

Import the core library and use the Unapi-powered Kanban API:

import { createKanbanApi } from "unikanban";

const { client: kanban } = createKanbanApi();

// Full CRUD with type-safe, validated inputs
const board = await kanban.board.create({ title: "Sprint 1" });
const col = await kanban.column.create({ boardId: board.id, title: "To Do" });
const doneCol = await kanban.column.create({ boardId: board.id, title: "Done" });
const card = await kanban.card.create({
  boardId: board.id,
  columnId: col.id,
  title: "Write tests",
  priority: "high",
});

// Move cards between columns
await kanban.card.move({
  boardId: board.id,
  sourceColumnId: col.id,
  targetColumnId: doneCol.id,
  cardId: card.id,
});

Build the library:

pnpm build

Testing

pnpm test          # all tests (unit + e2e + scenario)
pnpm test:unit     # unit tests only
pnpm test:smoke    # fast smoke check
pnpm test:coverage # unit tests + coverage (used for the badge)

Documentation

About

Universal kanban widget

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages