all projects
Full Stack2026

Kanbanminator

Kanban board for managing PR review comments with AI-assisted code changes.

kanbanminator.zisiskostakakis.com
Kanbanminator screenshot

01 Overview

Kanbanminator turns pull request review comments into a kanban workflow. It syncs unresolved Bitbucket PR comments onto a board (Comments → Todo → In Progress → Review → Done) so review feedback becomes trackable tasks instead of a scattered comment thread.

Accepting a task triggers an AI agent (Cursor Agent) that drafts a code fix in an isolated per-task git workspace; rejecting one drafts a reply instead. The human stays in the loop throughout: every diff is reviewed on the board before commit, push, and resolving the comment. The board supports drag-and-drop, undo/redo, real-time updates, and PR rebase/squash management with conflict detection.

The backend is a FastAPI (Python 3.11) service with SQLAlchemy on SQLite, deployed as a container-image AWS Lambda behind API Gateway and provisioned with Terraform. The React 19 / Vite frontend is deployed on Vercel. Because Lambda cannot hold WebSocket connections open, the hosted deployment uses an event buffer with an HTTP polling fallback: the client polls GET /api/events with a sequence cursor that detects Lambda cold starts and triggers a full refetch, while local/self-hosted mode keeps native WebSockets.

The hosted demo runs in demo mode: Bitbucket, OAuth, and the AI agent are mocked server-side, so the full workflow is explorable without any login or secrets. Seeded data resets automatically after 5 minutes of inactivity. Self-hosted mode supports multiple users with Google OAuth and per-user encrypted Bitbucket OAuth tokens.

02 Key Features

Syncs unresolved Bitbucket PR comments into a kanban workflow (Comments → Todo → In Progress → Review → Done)
Accept triggers an AI agent (Cursor Agent) that drafts a code fix; reject drafts a reply instead
Isolated per-task git workspaces keep AI changes sandboxed until approved
Human-in-the-loop: every diff is reviewed before commit, push, and comment resolution
Real-time board updates: native WebSockets locally, event-buffer + HTTP polling fallback on Lambda
Drag-and-drop board with undo/redo
PR rebase/squash management with conflict detection
Multi-user with Google OAuth and per-user encrypted Bitbucket OAuth tokens
Hosted demo mode: Bitbucket, OAuth, and the AI agent mocked server-side, seeded data, auto-reset after 5 minutes of inactivity
Infrastructure as Code with Terraform (Lambda, API Gateway, ECR)

03 Architecture

System Architecture

The React/Vite frontend is deployed on Vercel. The FastAPI backend runs as a container-image AWS Lambda behind API Gateway, with the image stored in ECR and all resources provisioned with Terraform. In the hosted demo, Bitbucket, OAuth, and the AI agent are mocked server-side.

rendering diagram…

Real-Time Updates Without WebSockets

Lambda cannot hold WebSocket connections open, so the hosted deployment buffers board events server-side and the client polls GET /api/events with a sequence cursor. A cursor mismatch signals a Lambda cold start (empty buffer), triggering a full board refetch. Local/self-hosted mode keeps native WebSockets.

rendering diagram…

AI Task Workflow

Each accepted task gets an isolated git workspace where the AI agent drafts a fix. Nothing reaches the PR without human approval: the diff is reviewed on the board before commit, push, and resolving the original comment.

rendering diagram…