[ Desktop app · 2026 ]
ShiftPane
Your phone or tablet as a second monitor, sized to the device, with a live widget board beside it — scan a QR code, no cable, no app store.
Views — shown on the object
- Type
- Desktop app
- Year
- 2026
- Stack
- Electron, React, TypeScript, Rust
- Libraries
- Tailwind CSS, Zod, WebRTC, QuickJS, Vite
- Tools
- pnpm, Turborepo, Biome, Vitest, GitHub Actions, Ollama
ShiftPane turns a phone into a real extra monitor. The PC sees a new display sized to the phone, you drag windows onto it, and the picture streams over WebRTC after pairing with a QR code. Split view shows a widget board beside the screen, and the split you pick sets the resolution of the second monitor.
The widget board has built-in widgets — clock, calendar, now playing, PC stats — and others installed from the gallery. Widget Studio builds one without code from PC readings and how to show them, or from a sentence written by an open-weights model running locally in Ollama. The model only fills in a schema-checked recipe, never code, and third-party widgets run in a QuickJS WebAssembly sandbox with capped memory and a guarded fetch.
It is a pnpm and Turborepo monorepo with a Cargo workspace. An Electron and React desktop app owns the pairing, the HTTPS and WebSocket server and the capture; a Rust helper is the only process that touches the OS display APIs; and a PWA on the phone plays the stream. Every message across a process boundary is schema-validated with zod or serde. Display mode, the widget board, split view and Widget Studio work on Windows; the macOS and Linux backends are written but not yet run on those systems.








