TIMERS STUDIO
MASTER YOUR FLOW

Stream Deck or Companion: which path for your show control

An honest comparison of native WebHID integration versus Bitfocus Companion for controlling Timers Studio from hardware surfaces.

· Hardware · 8 min read

Every technical director I know has a strong opinion about how show control buttons should work. Some want the shortest possible signal path between their finger and the action. Others want a single control surface that talks to everything in their rack. Both camps are right, and that tension is exactly why Timers Studio offers two distinct paths for hardware integration. The first path is native WebHID. You plug an Elgato Stream Deck directly into a Chrome or Edge browser, and the browser talks to the device through the WebHID API. There is no software to install, no driver to update, no middleware running in the background. The browser is the middleware. When you press a button, the signal travels from the USB port through the browser's HID layer directly to Timers Studio's JavaScript runtime. The latency is genuinely sub-frame, meaning the response happens faster than your monitor can redraw. For people who come from a broadcast background where every millisecond matters, this is not a theoretical advantage. It is the difference between a cue that feels instant and one that feels sluggish. The native path currently supports seventeen actions. You can start, pause, stop, and reset individual timers. You can advance to the next cue or go back to the previous one. You can send flash messages to the speaker. You can toggle blackout mode. And you can trigger any of the custom actions defined in your rundown. Timers Studio ships a Producer template that maps the most common actions to a logical button layout, so you can be operational within minutes of plugging in the device. The second path is Bitfocus Companion. This is a desktop application that acts as a universal translator between control surfaces and software systems. Companion supports not just the Elgato Stream Deck family but also Loupedeck, Razer Stream Controller, Logitech MX Creative Console, HUION, X-keys, and dozens of other surfaces. When you install the Timers Studio Companion module, you get access to over thirty actions, fifteen feedbacks, and twenty-five variables. The module communicates with Timers Studio through the REST API and receives real-time state updates through Server-Sent Events. So when should you choose which path? If your setup involves a single Stream Deck controlling a single Timers Studio session, and you want zero installation overhead, native WebHID is the clear winner. You open Chrome, navigate to your studio, plug in the Stream Deck, and you are live. There is nothing to configure on another machine, nothing to update when the OS pushes a patch, nothing that can break because a background service crashed. I have used this configuration at dozens of events and the failure rate is effectively zero because the failure surface is so small. If your setup involves multiple software systems, Companion is the right choice. A typical broadcast truck might run Timers Studio alongside vMix, OBS, ProPresenter, and a lighting console. Companion lets you put all of those systems on a single button grid. Press one button and it starts the Timers Studio countdown, switches the vMix input, cues the ProPresenter slide, and fires a DMX scene. That kind of synchronized multi-system control is something native WebHID simply cannot do because it only talks to one application. There is a middle ground that I see more and more technical directors adopting. They use native WebHID for the show caller's primary deck, because that person needs the fastest possible response time and is only controlling Timers Studio. And they use Companion for the producer's deck, because that person needs to orchestrate multiple systems and values breadth of control over raw speed. This hybrid approach gives you the best of both worlds without either tool stepping on the other. One question comes up often. Does native WebHID work on Safari or Firefox? Not today. The WebHID API is a Chromium feature, which means Chrome, Edge, Opera, and Brave support it. Safari and Firefox do not. If your workflow requires Safari, Companion is your only option for hardware integration. In practice this is rarely a constraint because most production environments standardize on Chrome, but it is worth knowing before you commit. Another consideration is feedback resolution. Native WebHID can update button icons in real time because it has direct access to the device's display buffer. When a timer enters its warning zone, the button physically turns yellow. When it enters overtime, the button turns red. This happens within a single frame because the rendering pipeline is entirely local. Companion can achieve the same visual feedback, but the update travels through a longer path: Timers Studio SSE stream to the Companion module, then from Companion to the device. In practice the difference is around 100 to 200 milliseconds, which most operators will never notice during a show but which purists will measure and debate. The hardware investment is identical for both paths. An Elgato Stream Deck MK.2 runs about $150, the XL about $250, and the Plus about $200. If you go the Companion route with a non-Elgato surface, prices vary from $100 for a basic Razer controller to $400 for a fully loaded X-keys panel. My honest recommendation is to start with native WebHID. It is the simpler path, it requires no additional software, and it covers the most common use cases. If you later discover that you need multi-system control, add Companion alongside it rather than replacing it. The two paths are complementary, not competitive. Timers Studio was designed from the start to support both, and many of the most sophisticated production setups I have seen use both simultaneously on different surfaces. The choice is not about which technology is better. It is about which workflow matches your show.