How uniai-team/uniwork works
UniWork is a collaborative work platform organized around organizations and workspaces, combining task and project management, meetings with video calls, chat, and administrative capabilities. A member enters through authentication and workspace selection, then works in workspace-specific screens; task views query and mutate tasks through the core API and Go service layer. Meetings and chat are substantial parallel product areas, with realtime support and optional LiveKit integration. The README documents the backend handler-to-service-to-database layering. Some subsystem links reflect documented architecture and tree structure; unsampled implementation wiring is omitted.
Main entry points: [workspaceSlug] Workspace screens · api HTTP and WS client · app Next.js app · chat Chat client
Components 22
Web experience
- Next.js app
apps/web/app - Authentication
packages/views/auth - Workspace screens
apps/web/app/[orgSlug]/[workspaceSlug] - Admin console
packages/views/admin
Work management
- Task surfaces
packages/views/tasks - Task controller
packages/views/tasks/surface/use-task-surface-controller.ts - Task queries
packages/core/tasks - Task endpoints
packages/core/api/endpoints/tasks.ts - Projects
packages/core/projects
Collaboration
- Chat screens
packages/views/chat - Chat client
packages/core/chat - Meetings
packages/core/meetings
Backend services
- HTTP routes
server/internal/handler/router/routes.go - Task service
server/internal/service/task_query.go - PostgreSQL
- Realtime delivery
server/cmd/server/main.go
Platform infrastructure
- HTTP and WS client
packages/core/api - Redis
- Object storage
server/internal/storage/storage.go - Feature flags
packages/core/feature-flags
Other components
- Workspace member
- LiveKit
Connections 23
- Workspace member → Next.js app: opens
- Next.js app → Authentication: renders auth
- Workspace member → Workspace screens: selects workspace
- Workspace screens → Task surfaces: opens tasks
- Workspace screens → Chat screens: opens chat
- Workspace screens → Meetings: opens meetings
- Task surfaces → Task controller: controls views
- Task controller → Task queries: queries and mutates
- Task queries → Task endpoints: calls endpoints
- Projects → Task endpoints: uses task APIs
- Chat screens → Chat client: uses client
- Chat client → HTTP and WS client: sends requests
- Meetings → HTTP and WS client: sends requests
- Task endpoints → HTTP and WS client: sends requests
- HTTP and WS client → HTTP routes: HTTP requests
- HTTP routes → Task service: dispatches task routes
- Task service → PostgreSQL: queries tasks
- HTTP routes → Realtime delivery: serves WS routes
- Realtime delivery → Redis: relays events
- Meetings → LiveKit: joins video
- Chat client → Object storage: uploads media
- Workspace member → Admin console: administers platform
- Next.js app → Feature flags: reads configuration