Skip to content

Prathamesh0901/SyncBoard

Repository files navigation

SyncBoard

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.

Features

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

Architecture

📦 Overview

Apps

  • web → Frontend built with Next.js
  • http-backend → Handles REST APIs
  • ws-backend → Manages real-time communication via WebSockets

Packages

  • db → Database layer using Prisma + PostgreSQL
  • common → Reusable utility functions
  • store → Zustand-based state management
  • types → Shared TypeScript types across the monorepo

Getting Started

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

Deployment

Frontend: Vercel

Backends: Render

Database: Neon / Supabase / Render (PostgreSQL)

Redis: Redis Cloud

About

Real Time Collaborative Whiteboard Application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors