RelayX

A completely peer-to-peer, zero-cost voice software based on Tailscale network.

Try It Now

View Source Code | Download Windows Portable Version
(This is a very early version, currently only supports Windows)

Watch a two-minute demo to see how it works:
Watch YouTube Demo Video
Watch YouTube Demo Video (login improvement)

Story: The Birth of RelayX

I'm a loyal Tailscale user who frequently needs to remotely connect to high-performance PCs at home or in my dorm using portable devices. In my years of Tailscale experience, 99% of the time was spent using remote desktop. I deeply understand Tailscale's potential - once when I was in another city, I could still connect to my dorm PC with extremely low latency for remote desktop access. In various harsh network environments, I've witnessed Tailscale's excellent performance and reliability firsthand.
On the other hand, when gaming with friends, we were always troubled by the limitations of existing voice tools: poor audio quality, paid features, and privacy concerns... Tailscale seemed to perfectly solve these problems. Thus, RelayX was born. Its goal is simple: to create a voice tool that truly belongs to users and is not controlled by central servers.
Thanks to Tailscale's open-source strategy and the pion/webrtc implementation, I was able to turn this idea into reality. Although RelayX is currently just a very early project, I hope it can become an interesting and practical tool that demonstrates Tailscale's great potential in peer-to-peer communication.

Advantages: Why Choose RelayX?

Architecture: How Does It Work?

RelayX's core is a very simple concept: combining Tailscale's network layer capabilities with WebRTC's communication abilities.

+---------------------------------------------+          
|  peer A                                     |          
|                                             |          
|                                             |          
|   +--------------------------------------+  |          
|   |  front end                           |  |          
|   +------------+-------------+-----------+  |          
|   | microphone |audio capture| screenshare  |          
|   +------------+----+------^-+-----------+  |          
|                     |      |                |          
|                 encoder  decoder            |          
|                     v      |                |          
|   +------------------------+---+---------+  |          
|   | go subprocess          |   | tailscale  |          
|   +------------------------+   | client  <--+----      
|   | pion/webrtc     <----------+         +--+--> peer B
|   +-----------------+----------+-^-+---+-^  |          
|                                  | |   | |  |          
+----------------------------------+-+---+-+--+          
                                   | |   | |             
                                   | |   | |             
                                   | v   v |             
                                 peer C  peer D          
            

Tech Stack Details


Future Roadmap

Video Processing

  • Camera support
  • Move video codec to Go subprocess
  • Hardware-accelerated codec

Audio Processing

  • Use wasm RNNoise instead of existing JS version
  • Automatic Gain Control

Network Connectivity

  • Headscale support
  • Daisy-chained relay

User Interface

  • DM UI
  • Custom user status
  • Emoji reactions
  • More uses for mini card

File Operations

  • File transfer

History Dev Versions

This project has undergone several changes involving the core architecture.