Lightweight peer-to-peer screen sharing with memorable 2-word room codes.
- Screen + Audio Sharing - Share your screen with system audio
- True P2P - Direct WebRTC connection, server only handles signaling
- Memorable Codes - Room codes like
maple-storminstead of random strings - One Viewer - Simple 1:1 sharing
- Minimal - No frameworks, just vanilla JS
# Install dependencies
npm install
# Start server
npm startThen open http://localhost:3000
- Sharer visits
hyperframe.computer→ sees code likemachine-cash - Sharer clicks "Share Screen" → selects screen/window
- Viewer visits
machine-cash.hyperframe.computer→ sees the stream - Connection is direct P2P after signaling
For subdomain testing locally, you'll need to:
-
Add to
/etc/hosts:127.0.0.1 test-code.localhost -
Or use a tool like
lvh.mewhich resolves all subdomains to 127.0.0.1:http://localhost:3000 # Sharer http://maple-storm.lvh.me:3000 # Viewer
- Point
*.hyperframe.computerDNS to your server (wildcard A record) - Set up SSL with Let's Encrypt (wildcard cert)
- Run with PM2 or systemd:
pm2 start server.js --name hyperframe
server {
listen 443 ssl http2;
server_name hyperframe.computer *.hyperframe.computer;
ssl_certificate /etc/letsencrypt/live/hyperframe.computer/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hyperframe.computer/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}- Node.js + Express
- WebSocket (ws library)
- WebRTC (native browser APIs)
- Vanilla CSS/JS