What is FPPS?

FPPS stands for Free Peer-to-Peer file Sharing, real name TBD. It is a web application that enables direct file transfers between browsers using WebRTC technology. Unlike traditional file-sharing services that require uploading to a server, FPPS establishes direct browser connections, enabling fast, private, unlimited file transfers.

How It Works

When you create a room, the application generates a unique code invisible to us. Share this code with anyone you want to exchange files with. When they join using the code, a direct WebRTC connection is established between your browsers.

Files are compressed and transferred directly between browsers. Your files never touch our servers; the server only facilitates signaling to establish a WebRTC connection. Once connected, it's just you and your peer.

🔒

Secure & Private

End-to-end encrypted connections. Your files are never stored on our servers.

Fast Transfers

Direct peer-to-peer connections mean faster transfers with no middleman.

No Limits

Share files of any size with no upload limits or file size restrictions.

🌐

Browser-Based

Works entirely in your browser. No installation or registration required.

Open Source

FPPS is open source software licensed under AGPL-3.0. The source code can be found here.

Frequently Asked Questions

Yes! All connections use WebRTC's built-in encryption (DTLS and SRTP). The files are transferred directly between browsers without passing through our servers. We never see, store, or have access to your files.

The only data that passes through our signaling server is the encrypted connection metadata needed to establish the peer-to-peer connection. Once connected, everything happens directly between browsers.

No! Unlike traditional file-sharing services, there are no file size limits. Since files are transferred directly between peers rather than uploaded to a server, you can share files of any size, for free.

No. This application works entirely in your web browser with no registration, sign-up, or installation required. Just create a room, share the code, and start transferring files. It's that simple.

If the connection is lost during a file transfer, the transfer will fail. Unfortunately, this is a limitation of the web browsers. You will need to restart the transfer.

Both peers must remain connected and keep their browser tabs open until the transfer completes. Make sure both parties have stable internet connections for best results.

Currently, each room supports two peers: one person creates the room, and another person joins it. This creates a direct one-to-one connection. Support for group file sharing is not planned.

Transfer speeds depend on the network quality of you and your peer. Since the connections are direct, transfers are typically limited by the slower of the two connections. In ideal conditions with fast internet, transfers can be very fast, even faster than ordinary cloud file-sharing methods.

Yes. Both peers must keep their browser tabs open and active for the connection to remain established and for file transfers to work. If either person closes their tab or loses internet connection, the file transfer will need to be restarted.

All modern browsers are supported. However, some privacy-focused browsers may have issues with establishing direct peer-to-peer connections.

Brave has options to disable direct peer connections to prevent IP leaks. To fix this, set WebRTC IP Handling policy to Default. More information

Sure thing! This project is open source and licensed under the AGPL-3.0 license. You can view, modify, and contribute freely. Community contributions are welcome!

The application is licensed under the AGPL-3.0 license, which allows commercial use. Please review the license for details.

We highly encourage self-hosting the application for internal use.

FFPS application is distributed as a single executable: download and run. You can also run it with Docker. Refer to self-hosting instructions for up-to-date self-hosting instructions.

Nothing. Never have, never will. That's a promise!

The server does not use a database. It utilizes an in-memory messaging to facilitate peer-to-peer connections. Furthermore, the contents of these signaling messages are encrypted. There is nothing we can collect, and that is by design.