Kolabr
2023–2024An open-source real-time collaborative Kanban board: live multi-user boards with drag-and-drop, custom authentication, and persistent storage.
- SvelteKit ·
- Liveblocks ·
- Lucia ·
- MongoDB
The problem
Kolabr began as the final project for a university course, built by two peers and me on a tight deadline. The idea was a Trello-style Kanban board, but a real-time one: you create boards and collaborate with other people live, with changes synced across every connected client.
Real-time collaboration is deceptively hard. The moment two people act on the same board at once, you have a consistency problem, and a naive approach leaves the board in a different state for each person looking at it. That, and doing it well in the time we had, was the real challenge.
The approach
I was responsible for the backend and the real-time functionality. We started on MySQL because the course required it, not because it fit, and the mismatch showed quickly: fetching a board and all its data took four chained joins and a script to parse the result. I migrated the project to MongoDB, where the same read is a single query, because a flexible document schema matched the shape of the data far better.
The real-time layer runs on Liveblocks. There was no official Svelte library, so I wrote custom stores to drive the synchronization, which turned out to be a clean fit for SvelteKit. For authentication we used Lucia, chosen for its simplicity and its support for multiple providers. The frontend started on Bootstrap, but I was not fond of that look and redesigned it with shadcn/ui, which gave the app the clean, modern feel I wanted.
The outcome
Kolabr is an open-source, real-time collaborative Kanban board: live multi-user boards, drag-and-drop synced across clients, custom authentication, and persistent storage. Past the original requirements I added the touches that make it feel finished, including ticket assignees, tag customization, small animations, and a dark mode. It started as coursework on a deadline and became a project I am genuinely happy with, and the source is on GitHub for anyone to read or build on.