PROJECT 03 / Active development
Telecastt
One host. More screens.
- My role
- Product design & software development
- Focus
- React, TypeScript, Node.js & WebRTC
TelecasttOne host.
More screens.
What if another screen was already sitting on your desk?
A spare laptop already has a display and a browser. Telecastt explores how that device can become a companion screen through WebRTC, receiving a mirrored or tiled view of a host desktop.
The product question is also an interface question: how do people recognise the host, understand a companion’s state and recover when the session changes? My focus is making that relationship legible without asking someone to understand the transport behind it.
Use the displays you already have.
From host to companion.
- 01
Host
Begin with a clear source: the desktop content being shared and the session it belongs to.
- 02
Connect
Give each companion a recognisable connection state, with a clear way to join or return.
- 03
Display
Make the relationship between the full desktop and a tiled region understandable on the receiving screen.
- 04
Interact
Keep control state visible, especially when an input session ends or a companion disconnects.
Make the session understandable.
Each companion receives its own WebRTCWebRTCA browser technology for sending media and data between peers. In this project, it carries a host’s screen view to a browser companion; the Windows host companion handles returned input. connection. Mirroring shares the desktop; tiling assigns an existing desktop region. Tiling does not create another operating-system monitor.
As the number of screens grows, connection state becomes part of the composition. The host needs an overview; each companion needs a clear sense of its own role. A useful interface should answer what is being shown, where it comes from and what happens when the connection changes.
One desktop.
Two ways to share it.
Keep the whole view, or give each companion its own frame.
One existing host desktop
Mirror
Companion 1Complete desktop
Companion 2Complete desktop
Inspect the shared content
Each companion receives this whole composition. Its proportions stay the same, with unused space above and below on a taller screen.
The same vector composition, enlarged for inspection. The full arrangement remains above; close this fold to return to it.
Tile
Companion 1Left region
Companion 2Right region
Inspect the shared content
The two views meet at the centre of one host desktop. Neither region is stretched to fill the other.
The same vector composition, enlarged for inspection. The full arrangement remains above; close this fold to return to it.
Host screenBrowser companions
Mouse · keyboard · text clipboardWindows host companion
Mirror. Both browser companions receive the same, complete view of the existing host desktop.
Mirror. Both browser companions receive the same, complete view of the existing host desktop.
Tile. Each browser companion receives a different region of that desktop. No operating-system monitor is added.
Mouse, keyboard and text clipboard input return through the Windows host companion.
What a connection changes
Two paths have to be understood together: the view leaving the host, and supported input returning to it.
HostCompanion
Disconnected
No shared view is arriving, and there is no active remote input path.
Start with a recognised host and the intended session. An old picture on a screen does not establish a current connection.
HostCompanion
Joining
Session information is being exchanged. The request is still distinct from an established stream.
Show that the connection is pending. If it cannot be established, return to the host and session details rather than labelling the companion connected.
HostCompanion
Connected
The host’s screen travels to the browser companion. Supported input returns through the Windows host companion.
Keep the source, assigned view and input ownership visible together. A connection state describes the channel; it does not add a native operating-system monitor.
If the connection is lost. Treat the shared view and remote input as unavailable until a new connection is established. Reconfirm the host, session and assigned region before returning to the arrangement.
A new explanation of session states. These drawings are visible together; this page connects to no device and does not measure a connection’s quality or recovery.
New layout study; not a running Telecastt session. Native virtual-display extension remains experimental.
- Shared bandwidth
- The repository describes adaptive bitrate and frame rate per companion, within a shared host budget.
- A readable session
- The design priority is continuity: joining, reconnecting and leaving should feel like states of the same session, with understandable feedback.
Be precise about the experience.
The Windows companion handles mouse, keyboard and text clipboard input. Rich clipboard content and broader platform support are separate development work. Default signalling uses plain WebSocket; a hosted deployment needs its transport and access configuration reviewed before use.
An interface should state its limits as clearly as its capabilities. A mirrored view, a tiled desktop region and a native extended display are different experiences. The product language needs to preserve those distinctions, so someone can judge whether the current version fits their setup.
Active development
An open development project.
The public repository describes browser mirroring, tiling, adaptive quality and Windows host interaction. Native virtual-display extension remains experimental, with separate driver requirements. The portfolio does not present the project as a released or production-verified application.
Return to the reasoning.
- Browser companion displays↗
The arrangement study: one source, mirrored or tiled views.
- WebRTC connection architecture↗
The host-to-companion relationship described in the case.
- Host interaction and adaptive quality↗
The input path and its boundaries; no device is connected here.
Follow its development.
Follow the repository for the current feature set, setup instructions, and development status.
Explore the repository