Skip to content

Control Room module — standalone Vue 3 SPA, status: 🟢 ACTIVE. Extracted from the legacy Nuxt monolith (already removed): there are no legacy sources left to maintain, all the code has been ported here.

Stack

ComponentTechnology
FrameworkVue 3 (Composition API)
CSS FrameworkTailwind CSS ^4.x
BuildVite
LanguageTypeScript
CommunicationWebSocket (useWsRegia → /ws/regia) + REST fallback

Pages

PageFeatureWhat it does
Dashboard/Summary: online devices, active links, WS connection status, current event
Streams/streamsView of the 3 slots (MAIN/FEED/ALT) with stream name, URL, ON AIR status. "Free stream" button to remove an active link
Links/linksFull CRUD of streaming links. Activate/block/unblock links on the various slots
Devices/devicesList of connected iPads, heartbeat, rename, delete
Events/eventsEvent management: create, edit, delete, push event to devices
License/licenseLicense status: client, expiry, days remaining, time bar, revoke

Components

ComponentFeatureWhat it does
LinkPanelLink managementCard for each link with name, URL, slot, status (active/blocked/inactive). Buttons: Activate on slot, Free, Block/Unblock, Ping 📡
DevicePanelDevice managementCard for each iPad with name, IP, last heartbeat, status. Buttons: Rename, Delete, Restart all, MAIN/FEED/ALT slot controls (▶ ⏹ 🔄)
EventPanelEvent managementEvent create/edit form, Push and Terminate buttons
ConfirmModalConfirmationGeneric modal for destructive actions (delete, block, revoke)
SidebarNavigationSide menu with icons for each page: Dashboard, Streams, Links, Devices, Events, License
Connection statusWS statusVisual indicator in the header: green (connected), red (disconnected), yellow (reconnecting)

Real-time interactions

FeatureWhat it does
Live WS statusEvery change to links/devices/events instantly propagates to all open Control Room browsers
Link pingTests the reachability of a stream URL with visual feedback (time in ms or ERR)
Remote slot controlFrom the Control Room you can stop/restart a stream on a specific iPad
Device resetRestarts all 3 streams on an iPad without restarting the app

Future evolution

  • Full dashboard → Split pages, ON AIR/STANDBY status, device health
  • Microservices → Integration with an API Gateway post-production

© 2026 Zerolatency — All Rights Reserved