How FreeSend works
FreeSend connects two browsers to each other and lets the file flow between them. This page says plainly what that means, and where it stops.
The short version
When you press “Create a room”, your browser asks a free public matching service for a free 6-digit code. When the other person types the code, the matching service passes a few connection details between the two browsers, just enough for them to find each other. Then the two browsers open a direct, encrypted WebRTC connection and the file streams across it. The matching service is not part of the transfer.
What the matching service can see
The code, and the connection details (the technical “offers” browsers exchange to connect, which include network addresses). It never sees file names, file contents or sizes: those only travel over the direct connection. The matching service is the free public PeerJS cloud server. It is run by volunteers, has no uptime promise, and could be rate limited or go down; if it does, FreeSend cannot start new transfers until it is back.
Privacy and safety
The direct connection is encrypted with DTLS, the same encryption WebRTC video calls use. Nothing is written to a server. By default each file is also checked against the original in blocks while it arrives, so a corrupted or tampered file is rejected instead of saved as if it were fine.
The 6-digit code is short on purpose, so it is easy to read out. It works like a room key: anyone who has it can download your files while your page is open, and it stops working the moment you close the room. You can see everyone who joined and stop any download. For something truly sensitive, share the code only through a channel you trust and close the room when you are done.
Big files
The sender reads the file in small pieces from disk and the receiver writes each piece to disk as it arrives, so even a 20 GB file never sits in memory. There is no compression, so the file arrives byte for byte. FreeSend sets no size limit. What actually limits you is free disk space on the receiving device, how long both of you can keep the page open, and how fast the connection is.
Chrome and Edge on a computer save straight to the file or folder you choose. Firefox, Safari and phones first write to private browser storage and then offer a Save button, so they need free space for the file briefly twice over.
What it cannot do
- Both people must be online at the same time. There is no storage on the way.
- It is only as fast as the slower of the sender's upload and the receiver's download.
- Some networks block direct browser-to-browser connections (certain offices, schools, mobile data plans, VPNs). The usual fix for that is a relay server that carries the bytes; those cost money per gigabyte, so FreeSend does not include one. If you cannot connect, try the same Wi-Fi, switch off a VPN, or use a phone hotspot.
- A dropped connection cannot be resumed. Pause and resume work while you are connected.
- On phones, keep the screen on and the page in front. FreeSend asks the phone to stay awake, but not every phone agrees.