logo
Hello World!

BetaHub Recorder

June 26, 2025 (Updated: July 4, 2025)
electrontypescriptreactbetahub

Desktop application for recording gameplay with voice commentary to complement traditional game testing methods.

The project was created in mid-2025 as a desktop application for recording gameplay with voice commentary. The application complements traditional game testing methods by adding visual and audio context to text-based bug reports.



  • Authentication: Login through deep link from browser
  • Configuration: Selection of screen, audio source and target project on BetaHub platform
  • Recording: Recording using FFmpeg
  • Upload: Sending to BetaHub platform with progress tracking
  • Cross-platform: Windows, macOS, Linux
  • Screen recording: With microphone audio
  • Upload from disk: Ability to upload existing files
  • Error handling: Displayed as toasts

Electron, React + TypeScript, FFmpeg

Electron architecture with separation into main process (recording, upload) and renderer process (UI), communication through IPC.

Often, when a screen is physically small but has a high resolution, scaling is applied to improve readability. The application has a function that reads the scaling level and adjusts the correct recording resolution. Without this, the recording would be incorrectly cropped.

The application is designed to work mainly on Windows, but it's cross-platform. Other systems, while not priority, are supported. As a result, there are several solutions specific to given systems.

Windows:

  • Automatic progress bar management in taskbar
  • Rich API for DirectShow audio devices
  • GDI screen capture with hardware acceleration

macOS:

  • Limited audio options (system audio only)
  • Manual progress management in dock
  • AVFoundation screen capture

Linux:

  • X11/Wayland screen capture
  • PulseAudio/ALSA audio devices
  • No native progress bar

This is a problem that occurs mainly on Windows. When the user is redirected back to the application after login, a new instance is created. The application uses the requestSingleInstanceLock() mechanism to ensure that only one instance is running.

BetaHub Recorder is a desktop application that complements traditional game testing methods by adding visual and audio context to text-based bug reports.

Cross-platform compatibility: Each operating system required a special approach - Windows (GDI + DirectShow), macOS (AVFoundation + Core Audio), Linux (X11/Wayland + PulseAudio/ALSA).

Resolution scaling: Automatic detection of system scaling level and adjustment of recording resolution.

Single instance: Blocking single application instance during deep link login.

The project enriched my experience with Electron, taught me multimedia processing through FFmpeg and creating cross-platform abstractions. It expanded my skills in desktop application development and operating system integration.

©2025 BatStack