Simple kanban app for personal use
Find a file
2025-11-17 19:22:39 +01:00
LICENSES Comments and README and Licenses 2025-11-17 19:21:04 +01:00
src Comments and README and Licenses 2025-11-17 19:21:04 +01:00
.gitignore gitignore 2025-11-10 20:25:41 +01:00
build.zig feat/KBN-4-ajouter-colonnes-dynamiques (#2) 2025-11-14 11:33:44 +01:00
build.zig.zon bump to version 0.4.0 2025-11-17 19:22:39 +01:00
LICENSE Comments and README and Licenses 2025-11-17 19:21:04 +01:00
README.md Comments and README and Licenses 2025-11-17 19:21:04 +01:00

Bankal

Personal kanban board built with Zig + Alpine.js. Uses event sourcing/CQRS.

Features

  • Multiple boards
  • Drag & drop cards
  • Event-sourced persistence (append-only WAL)
  • Single binary, embeds frontend

Prerequisites

  • Zig 0.15.2 (later might break it)
  • Bun (for bundling frontend)

Build & Run

cd static/ && bun install
zig build run

Server runs on localhost:8080. WAL file created automatically.

Deployment

Put behind nginx/caddy with auth or keep on localhost.

API

Simple REST, all JSON:

GET  /api/boards              - list boards
POST /api/boards              - create board
GET  /api/boards/:id/cards    - cards for board
POST /api/cards               - create card
PATCH /api/cards/:id          - update card
PATCH /api/cards/:id/column   - move column
PATCH /api/cards/:id/board    - move board

Architecture

Event sourcing: all changes = events appended to WAL. State is rebuilt from events on startup, which works well enough for small scale.

License

AGPL-3.0 Alpine.js is MIT licensed (see LICENSES).