Lessons from building a QR-paired browser handoff tool A developer built a QR-paired browser handoff tool that transfers text or files between devices without accounts or cloud storage. The tool uses browser-generated ECDH key pairs and AES-GCM encryption, with separate derivation contexts for text and file transfers. The pairing model avoids public file links and distinguishes session states to handle reconnections securely. I have been working on a small browser handoff tool. The use case is intentionally narrow: open a page on one device, scan a QR code with another device, then move live text or one selected file between the two browsers without creating an account, installing an app, or using a cloud drive. This post is less a launch announcement and more a build note. The interesting part was not drawing a QR code. It was deciding what the pairing model should promise, what it should not promise, and how to keep the browser UX understandable while avoiding privacy claims that are too broad. Disclosure: I used AI editorial assistance while preparing this article draft. The technical claims are based on the implementation I worked on and should be checked against the live code before publishing. The first design choice was to avoid public file links. Public links are convenient, but they also create a bigger surface area: For this tool I wanted a live, pair-only workflow instead. Both browsers are present at the same time. One browser shows a QR code, the second browser scans it, and the session exists for that pair. That constraint makes the product less flexible, but it also makes the mental model simpler: The QR code does not need to contain a secret payload. It can contain a short pairing URL such as: https://example.com/?i=