Transform any old mobile device into a physical control panel — no native apps required.
Built with Node.js, Socket.io, and vanilla HTML/CSS. Your phone becomes a Stream Deck-style controller for your computer via WebSockets.
- 📱 Works on any device with a browser — no app installs
- ⚡ Real-time communication via WebSockets (Socket.io)
- 🎨 Dark, mobile-optimised UI with customisable button colours
- ⚙️ All buttons configured via a single
config.json— no code changes needed - 🔄 Hot-reload config without restarting the server
- 🖥️ Cross-platform: Windows, macOS, Linux
# 1. Install dependencies
npm install
# 2. Start the server
npm startThe terminal will display the local network URL (e.g. http://192.168.1.42:3000).
Open that URL on your phone — make sure both devices are on the same Wi-Fi.
webdeck-js/
├── server.js ← Express + Socket.io backend
├── config.json ← Button definitions (edit this!)
├── package.json
└── public/
└── index.html ← Mobile web interface
{
"deck": {
"title": "WebDeck",
"columns": 3
},
"buttons": [
{
"id": "btn-unique-id",
"label": "My Button",
"icon": "🚀",
"color": "#00d4ff",
"action": {
"type": "launch",
"windows": "notepad.exe",
"mac": "open -a TextEdit",
"linux": "gedit"
}
}
]
}| type | Description | Example |
|---|---|---|
launch |
Open a program or URL | calc.exe, open -a Terminal |
hotkey |
Send a key combination | ctrl+c, cmd+shift+4 |
custom |
Run any shell command | echo hello |
- Drag-and-drop button reordering via UI
- Per-button long-press secondary action
- Profile switching (Gaming / Work / Media)
-
robotjs/nut.jsintegration for true hotkey simulation - QR code display for easy phone connection
- PWA manifest for homescreen install
MIT