Skip to content

mshaa/drawbox

Repository files navigation

Drawbox

Collaborative whiteboard with real-time drawing, chat and audio/video conference, built on a modular monorepo architecture.

Points of Interest

  • Dual transport: in-process oRPC client for SSR web + OpenAPI HTTP endpoints for external consumers
  • Decoupled feature domains and infrastructure wiring
  • Real-time collaborative drawing via Yjs and Hocuspocus
  • Real-time chat via Socket.IO with Redis adapter
  • Audio/video conference via LiveKit
  • Persistent public / private rooms with password protection
  • Authentication via better-auth (email/password, google social)
  • Rate limiting per-domain (auth, ORPC, draw, chat)
  • Containerized deployment behind Caddy

Tech Stack

  • TanStack Start / React, TanStack Query, Tailwind CSS, Radix / Shadcn
  • Hono, oRPC with Zod, Socket.IO, Hocuspocus, LiveKit
  • better-auth
  • Drizzle ORM
  • PostgreSQL, Redis
  • pnpm workspaces, tsx, tsup
  • Docker Compose, Caddy

Run

Infrastructure:

  • Prepare .env file
  • make infra-up spins up PostgreSQL and Redis

Standalone:

  • pnpm push to apply SQL schema via Drizzle
  • pnpm dev:api for the standalone Hono API
  • pnpm dev:web for the TanStack Start web app
  • pnpm build:api / pnpm build:web for production builds

OpenAPI:

  • pnpm -F @drawbox/transport openapi-generate outputs OpenAPI spec from oRPC procedures

Docker:

  • Prepare .env file
  • make up
  • Optional pnpm push with overridden DB URL to apply schema

About

Real-time whiteboard collaboration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages