Collaborative whiteboard with real-time drawing, chat and audio/video conference, built on a modular monorepo architecture.
- 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
- 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
- Prepare
.envfile make infra-upspins up PostgreSQL and Redis
pnpm pushto apply SQL schema via Drizzlepnpm dev:apifor the standalone Hono APIpnpm dev:webfor the TanStack Start web apppnpm build:api/pnpm build:webfor production builds
pnpm -F @drawbox/transport openapi-generateoutputs OpenAPI spec from oRPC procedures
- Prepare
.envfile make up- Optional
pnpm pushwith overridden DB URL to apply schema