Features

Everything you need to run a Kanban workflow for a small team — self-hosted, no subscriptions.

Visiban board showing cards with labels, due dates, checklists, and movement history

The board

Here's what you'll see

Daily workflow

Here's what you'll do every day

Insights

Here's what you'll learn

Getting started

Here's how easy setup is

Board

Swimlane Kanban grid

Columns on the X-axis, customer/team swimlanes on the Y-axis. Each cell is a droppable zone. Up to 50 columns and 100 swimlanes per board.

Board templates

Choose from 11 built-in templates on creation — Sales Pipeline, Customer Support, Customer Success, Simple Kanban, Product Roadmap, Project Delivery, Content Production, Hiring & Recruiting, Legal & Compliance, Infrastructure & DevOps, or Blank Board — each pre-seeded with columns and a swimlane label.

Drag-and-drop

Move cards between cells with @dnd-kit. Optimistic updates with automatic rollback on failure.

Column WIP & weight limits

Set a WIP limit (card count) and a weight limit (numeric budget) per column. When enforcement is enabled, moving a card into a full column returns a structured error; board admins can override with a single click.

Collapsible swimlanes

Collapse a swimlane to hide its cards and reclaim vertical space.

Default board

Mark any board as your default — after login you land there directly instead of the board list.

Cards

Rich text descriptions

Click-to-edit descriptions with a Tiptap toolbar: bold, italic, code, lists, headings, blockquote, and text color. Stored as markdown; no migration required.

@mentions in descriptions

Type @username in a description to pick a board member from a dropdown. They receive an in-app notification immediately. Re-editing an existing mention does not re-notify.

Card detail fields

Title, priority (low / medium / high / urgent), assignee, labels, due date, weight, checklist, comments, and attachments — all in one side panel.

Movement audit trail

Every column or swimlane change is recorded with who moved it, from where, to where, and when. Dwell time and stalled-card detection are built on top of this data.

Card archiving

Archive cards instead of deleting them — they disappear from the board but can be restored at any time from the Archived panel. Analytics use the archive timestamp as the terminal event.

Bulk actions

Select multiple cards and move, assign, set priority, archive, or delete in a single action from the bulk toolbar.

Search & filters

Server-side full-text search (title and description) with 300ms debounce, combined with client-side filters for assignee, priority, label, and due date. Filter state persists across navigation.

Labels

Create color-coded labels per board and apply multiple labels to a card for grouping and filtering.

Stable UIDs

Every board, column, swimlane, label, and card carries a permanent 16-character hex UID — safe to reference in integrations, webhooks, and scripts even after renames.

Collaboration

Real-time sync

All board mutations broadcast instantly to connected members via Django Channels WebSockets. Broadcasts are deferred to transaction commit — no stale state.

Online presence

See who is currently viewing the board in the top-right corner of the toolbar.

Notifications

In-app notifications for card assignments, @mentions, due date warnings, card moves, and new comments. Per-trigger preferences let you enable or disable each type individually.

Card comments

Threaded comments on each card, visible to collaborators and above. Authors and board admins can delete comments with a two-stage confirmation.

Organization

Groups & sub-groups

Nest boards inside a group hierarchy. Role inheritance flows from parent groups to child groups and boards automatically.

RBAC

Four board-level roles with strict boundaries: Admin (full access), Member (create/edit/move cards), Collaborator (comment and upload — cannot create or move cards), Viewer (read-only — no comments or uploads). A separate site-admin flag grants instance-level access.

Group Admin cascade

Assigning someone Group Admin automatically grants them board-admin rights on every board in the group — the recommended role for team leads.

Invite links

Generate named shareable join links for groups, each with its own role and optional expiry (1, 7, or 30 days). Up to 5 active links per group.

Starred favorites

Star boards and groups to pin them in the sidebar under Favorite Boards and Favorite Groups.

Administration

Site admin panel

A built-in /admin interface for instance owners: manage users, toggle registration mode (open / invite-only / closed), deactivate accounts, and force password resets.

Registration modes

Open registration, invite-only (admin creates accounts), or fully closed — switchable from the site admin panel without a redeploy.

OAuth login

Login with Google, GitHub, or GitLab via django-allauth. Password auth also supported. OAuth providers are optional and configurable per instance.

API rate limiting

DRF throttling: 60 req/hour for anonymous, 1000 req/hour for authenticated. User search is separately limited to 30 req/min to prevent account enumeration.

Settings

Locale preferences

Set your preferred date format (MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD), time format (12-hour or 24-hour), and number format (US, European, Indian). Applied to due dates, timestamps, and analytics.

Theme

System (follows OS preference), Dark, or Light — applied immediately and persisted in localStorage.

Notification preferences

Enable or disable individual notification triggers — assignments, @mentions, due dates, card moves, and new comments. Preferences are enforced server-side; disabled triggers are never sent.

Security

Change your password and manage linked OAuth providers from Settings → Security.

Data

Export to CSV or JSON

Download a full board export including cards, comments, checklists, and movement history.

Import from file

Import a Visiban JSON or CSV export to create a new board. The importer accepts lowercase and snake_case headers (e.g. title, due_date) so files from external tools import cleanly.

Analytics view

Median dwell time per stage computed from movement history. Outlier cells highlighted in red. Stalled-card list for cards stuck longer than the configured threshold.

Summary view

Card counts and 7-day / 30-day velocity per swimlane — useful for weekly standups.

Infrastructure

Docker Compose

Single-command dev and production setup. Postgres 17, Redis 7, daphne ASGI, Nginx. Production stack adds Let's Encrypt TLS via Certbot.

Kubernetes / Helm

Official Helm chart with configurable ingress, TLS, external Postgres and Redis support, OIDC SSO, and persistent media storage.

Health check endpoints

Liveness and readiness probes at /api/health/ for Kubernetes deployments.

OpenAPI spec

Machine-readable OpenAPI 3.0 schema at /api/schema/ with interactive Swagger UI and ReDoc. CI validates the schema on every backend change.

Security hardening

MIME-validated file uploads, formula-injection-safe CSV exports, admin restricted to loopback by default, CORS localhost guard in production.