Skip to main content

Ko-Lab

Ko-Lab is a collaborative development workspace. A team creates a group, links it to a GitHub repository, and then works inside one place: editing code, planning on shared boards, chatting, and talking over voice and video — with every change flowing through a review step before it reaches the repo.

What it does

AreaSummary
GroupsA team bound to a GitHub repo, with roles and per-member code access
ChatGroup chat and 1:1 direct messages, delivered live over WebSocket
Workspace boardsFour collaborative canvases — UI design, mind map, DB schema, planning — with live cursors and presence
Code editorIn-browser IDE over the linked repo, with a Groq-backed AI assistant
VCSBranches, change requests, diff review, and merge — without leaving the app
Voice & videoLiveKit-backed 1:1 and group calls with screen sharing
NotificationsIn-app centre plus Web Push
Bug reportingIn-app reports that open GitHub issues

How it is put together

Three deployable pieces:

┌─────────────────┐ HTTP ┌──────────────────┐
│ apps/web │◄─────────────►│ PostgreSQL │
│ Next.js 14 │ Prisma │ │
│ UI + REST API │ └──────────────────┘
└────────┬────────┘
│ WebSocket (/ws)

┌─────────────────┐ simple-git ┌──────────────────┐
│ apps/web-socket │◄─────────────►│ Git workspaces │
│ WS hub + git │ │ on disk │
│ microservice │ └──────────────────┘
└─────────────────┘
  • Frontend — Next.js 14 App Router, React 18, Tailwind
  • Backend — Next.js API routes, Prisma, PostgreSQL
  • WebSocket — a standalone Node service that is two things at once: a realtime hub and a git microservice

That last point surprises most people reading the code for the first time, so it is called out explicitly in the WebSocket overview.

External services

Ko-Lab talks to several third parties. Only the first four are needed to boot:

ServiceRequired?Used for
PostgreSQLYesAll persistence
GitHub OAuthYesSign-in, repo linking
Google OAuthOptionalAlternative sign-in
LiveKitCalls onlyVoice/video SFU
S3 / R2 / LocalStackUploads onlyAvatars, file drafts
GroqAI onlyCode assistant, README generation

Where to go next

  1. Installation — get it running locally
  2. Credentials — generate every key and secret
  3. Environment variables — the full reconciled reference
  4. Testing — 261 tests, and how to run them

:::note Documentation status These docs were written by reading the source directly, because the previous README had drifted badly from reality — it documented 13 environment variables where 46 exist, and 19 database models where there are 34. Where something is specified but not built, the page says so. :::