A real-time collaborative whiteboard application built on a Turborepo monorepo. Multiple users can draw, annotate, and collaborate on shared canvases with low-latency synchronization.
Real-time collaboration — multi-user drawing via WebSockets
Drawing tools — rectangle, ellipse, line, arrow, pencil, and text
Zoom and pan — smooth canvas navigation
Invite-based access — shareable links with access control
Stroke, fill, and font styling
Redis pub/sub sync — low-latency multi-user synchronization
- web → Frontend built with Next.js
- http-backend → Handles REST APIs
- ws-backend → Manages real-time communication via WebSockets
- db → Database layer using Prisma + PostgreSQL
- common → Reusable utility functions
- store → Zustand-based state management
- types → Shared TypeScript types across the monorepo
Prerequisites: Node.js >= 18, pnpm, PostgreSQL, Redis
Install dependencies:
pnpm install
Run locally:
pnpm --filter web dev
pnpm --filter http-backend dev
pnpm --filter ws-backend dev
Frontend: Vercel
Backends: Render
Database: Neon / Supabase / Render (PostgreSQL)
Redis: Redis Cloud