Screenshotify
Help · Phone pairing

Troubleshooting phone pairing.

TL;DR. Both phone and studio need WebRTC support and a working data connection. Most failures: corporate firewall blocks WebRTC, or the PIN expired (3-second window after the phone connects). Refresh both sides and retry.

How the pairing works

Studio side (the desktop browser) opens a PeerJS connection and generates a 6-character PIN. The PIN gets embedded into a QR code as part of the phone-side URL screenshotify.app/app?peer=ID&pin=PIN. Phone scans the QR, opens the URL, connects back to the studio. PIN gets verified, then the data channel opens. From that point, your phone's "Tik om foto's te kiezen" button sends image data directly to the studio over WebRTC.

If the QR doesn't connect

  1. Both browsers must support WebRTC. Safari 17+, Chrome 100+, Firefox 100+, Edge. Older Safari versions don't have the data-channel API enabled.
  2. Both need internet. The pairing uses PeerJS's signaling server to set up the direct connection; without a working connection on either side, the QR-handshake fails.
  3. Corporate / school firewalls often block WebRTC. If you're on a guest network or corporate VPN, WebRTC's STUN/TURN traffic might be filtered. Try a mobile hotspot from the phone.
  4. PIN times out after 3 seconds. If you scanned the QR but didn't open the URL fast enough, the studio rejects the connection. Click "Connect phone" again to generate a fresh PIN.

"Camera permission denied" on iOS Safari

iOS Safari restricts camera access aggressively. Three things to check:

"Niet verbonden" after scanning

The data channel is open but the studio side didn't acknowledge the phone. Usually means the PIN check timed out before the phone-side could send its auth message. Close the phone tab, generate a fresh QR on the studio side, scan again.

Pairing works but images don't appear

Image data goes one direction: phone → studio. If your studio doesn't show the image after the phone says "Verzonden", check:

Privacy reminder

Screenshot data travels phone-to-studio directly over WebRTC. Nothing routes through our servers. The signaling server (PeerJS) only sees that two peers want to connect — it doesn't see the image payload.

Open the editor → How it works