airpipe send file.txt : QR code appears, scan with phone, file downloads. Reverse works too: airpipe receive lets phone upload to server.
The relay is zero-knowledge. Encryption key lives in the URL fragment (the #... part), which browsers never send to servers. Relay only sees encrypted bytes. NaCl secretbox for the crypto.
~900 lines of Go. Relay uses ~1MB RAM if you want to self-host.