TransferFiles is an open-source web application that enables secure file transfers between any devices, without requiring installation, shared networks, or user accounts. Built with modern web technologies, it creates direct peer-to-peer connections for fast, private file sharing.
Demo: https://transferfiles.pro
- Universal Compatibility: Works between any devices and operating systems (Windows, macOS, iOS, Android, Linux)
- No Installation: Runs entirely in the browser with no downloads or plugins required
- Network Independent: Transfer files between devices on different networks or locations
- End-to-End Encryption: All transfers are secured with WebRTC's built-in encryption
- No Size Limits: Transfer files of any size without restrictions
- Privacy-Focused: Files are transferred directly between devices, never through our servers
- No Account Required: Use instantly without registration or personal information
- Instant Messaging: Text chat alongside file transfers in an IM-style interface
- QR Code Connectivity: Quickly connect devices by scanning a QR code
TransferFiles uses WebRTC technology with STUN/TURN servers to establish direct peer-to-peer connections between devices:
- Connect Devices: Generate a unique ID or QR code on one device and enter/scan it on another
- Select Files: Choose files to send or type messages in the chat interface
- Transfer Content: Files and messages are sent directly to the connected device
- Instant Access: Access transferred files immediately, with download options
The technology behind TransferFiles enables connections across different networks and NAT types, making it work in scenarios where traditional file sharing methods fail.
- Node.js 18.x or higher
- npm or yarn
-
Clone the repository:
git clone https://github.com/CoderLim/transferfiles.git cd transferfiles
-
Install dependencies:
npm install # or yarn install
-
Set up environment variables: Create a
.env.local
file with the following (optional):NEXT_PUBLIC_GA_ID=your-google-analytics-id
-
Run the development server:
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser.
npm run build
# or
yarn build
- Frontend Framework: Next.js 14 (React)
- Language: TypeScript
- Real-time Communication: WebRTC via PeerJS
- Connectivity: STUN/TURN servers for NAT traversal
- QR Code: QRCode.js for connection sharing
- Styling: CSS with JSX styling
- Blog System: Markdown with gray-matter and remark
- Analytics: Google Analytics (optional)
- Transfer photos from a phone to a computer
- Share work documents between office and home devices
- Send files to friends/family regardless of their location
- Move data between different operating systems
- Share code snippets or text between devices
- Quick file sharing without cloud storage
- All data transfers are end-to-end encrypted
- No data is stored on any servers
- Direct peer-to-peer connections when possible
- Relay servers only transmit encrypted data when direct connections aren't possible
- No user tracking or data collection beyond optional analytics
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you find TransferFiles useful, please consider supporting the project:
- PeerJS for WebRTC implementation
- Next.js for the React framework
- The WebRTC community for making peer-to-peer web communication possible
Made with ❤️ for a more open and private web