Nexus
A real-time collaboration platform with team workspaces, task boards, chat, file sharing, and video calls. Features role-based access control, activity feeds, and integrations with third-party tools.
A real-time collaboration platform with team workspaces, task boards, chat, file sharing, and video calls. Features role-based access control, activity feeds, and integrations with third-party tools.
Remote and hybrid teams need a unified workspace that goes beyond basic task management. Existing tools force teams to context-switch between Slack for chat, Trello for tasks, Google Drive for files, and Zoom for calls. Each switch costs focus, and important context gets scattered across platforms.
Nexus is a real-time collaboration platform that combines task boards, team chat, file sharing, and video calls in a single workspace — with role-based access control and activity feeds that keep everyone aligned.
The platform uses a real-time-first architecture built on WebSockets and WebRTC:
┌──────────────────────────────────┐
│ React Frontend │
│ ┌──────┐ ┌──────┐ ┌──────────┐ │
│ │Boards│ │ Chat │ │Video Call│ │
│ └──────┘ └──────┘ └──────────┘ │
└──────────────────────────────────┘
│ │
REST API WebSocket
│ │
▼ ▼
┌──────────────────────────────────┐
│ Node.js Server │
│ ┌──────────┐ ┌──────────────┐ │
│ │ Express │ │ Socket.io │ │
│ │ (REST) │ │ (Realtime) │ │
│ └──────────┘ └──────────────┘ │
│ ┌──────────────┐ │
│ │ WebRTC │ │
│ │ Signaling │ │
│ └──────────────┘ │
└──────────────────────────────────┘
│ │
┌────┴────┐ ┌──┴──┐
▼ ▼ ▼ │
┌────────┐ ┌────────┐ │
│PostgreSQL│ │ Redis │ │
│ (Data) │ │(Pub/Sub)│ │
└────────┘ └────────┘ │
┌────┘
▼
┌────────┐
│ S3 │
│(Files) │
└────────┘
Task Boards — Kanban boards with drag-and-drop cards, custom columns, labels, due dates, assignees, and checklists. Real-time sync — when someone moves a card, everyone sees it instantly.
Team Chat — Channel-based messaging with threads, reactions, file attachments, and @mentions. Message search across all channels with highlighted results.
Video Calls — Peer-to-peer video and audio calls via WebRTC. Screen sharing, in-call chat, and automatic call history logging to the activity feed.
Role-Based Access — Workspace owners, admins, and members with granular permissions. Control who can create channels, invite members, delete messages, and manage integrations.
Activity Feed — Chronological feed of all workspace activity — task updates, new messages, file uploads, member joins — filterable by type and team member.
| Metric | Value | |--------|-------| | Real-time events | Socket.io (< 50ms latency) | | Video calls | WebRTC (P2P, up to 4 participants) | | Auth | JWT + refresh tokens with RBAC | | Database | PostgreSQL with 18 tables | | Caching | Redis for presence + Pub/Sub | | File storage | S3-compatible (presigned uploads) | | Search | Full-text PostgreSQL search across messages + tasks |
Socket.io rooms map perfectly to workspaces. Each workspace is a Socket.io room. When a task is updated, the event broadcasts to everyone in that room — no polling, no stale data, and minimal server overhead.
WebRTC needs a fallback. Peer-to-peer connections fail in ~15% of corporate networks due to symmetric NATs. Implementing a TURN server as a relay fallback was essential for production reliability.
Redis Pub/Sub enables horizontal scaling. When running multiple Node.js instances behind a load balancer, Redis Pub/Sub ensures a chat message sent to server A reaches a user connected to server B. This was the key to scaling beyond a single process.
Optimistic UI with conflict resolution. Drag-and-drop on task boards uses optimistic updates for snappy UX, but the server is the source of truth. When two users move the same card simultaneously, the server resolves the conflict and broadcasts the canonical state.