Back to Ratnesh Dagli's portfolio
Two PCs, one machine.
PC Bridge · architecture
Send a program to another PC and its localhost URL keeps working. If that PC goes quiet, the program comes home. Everything here is something you can trigger.
Guided tour
- Two PCs, one workflow: PC Bridge links a laptop to a spare or stronger PC. Programs move across, and every localhost URL keeps working.
- Your laptop: Heavy side projects live here today: a search engine, a notes API and a price tracker, each on its own port.
- Send them across: Each folder is copied, its dependencies installed on the other side, and a tunnel forwards the same port back. Watch the programs cross.
- The other PC: A supervisor now runs them and restarts any that crash. Requests from localhost flow through the tunnel as light.
- When it goes quiet: A poller checks the other PC every few seconds. After three missed polls the programs start on the laptop again, and the URL never changed.
Parts you can inspect
Your PC: Where you work
PC Bridge is one small Node service with no Electron. Its UI and JSON API listen on 127.0.0.1 only, and it opens in the browser you already have.
- About 40 MB of RAM for the whole service
- It shells out to the system ssh, docker, tailscale and tar, and logs every command
SSH tunnel: The same port, forwarded
The two PCs talk over Tailscale with SSH key auth only. An ssh -L tunnel forwards the local port to the program on the other PC, so every URL stays the same.
- Nothing is exposed to the internet
- On the same Wi-Fi, large copies use the LAN address
Other PC: Where it runs
A program’s folder is copied to one folder on a non-C drive, its dependencies are installed there, and a supervisor restarts it if it crashes.
- Node via a portable runtime, Python via uv and a private venv
- Docker containers move too, with config and data copied
Things you can try
- Send the apps across
- Take the other PC offline
- Bring it back
A schematic with sped-up timings: the real poller checks every few seconds. The facts come from the project’s code and README.