ForzaShare is a modern, high-performance, browser-based peer-to-peer file sharing application. It allows users to transfer files directly between devices without ever uploading them to a server, ensuring maximum privacy and speed.
- Peer-to-Peer (P2P): Direct browser-to-browser transfers using WebRTC DataChannels.
- Zero Server Storage: Files never touch the server; they move directly from sender to receiver.
- Real-time Presence: See all online devices on the network instantly.
- Modern UI: A clean, responsive interface inspired by LocalSend and PairDrop, built with Tailwind CSS.
- Chunked Transfer: Reliable file transfer using 64KB chunks for stability and progress tracking.
- Drag & Drop: Effortless file sharing with intuitive drag-and-drop support.
- Cross-Platform: Works on any device with a modern web browser (Mobile, Desktop, Tablet).
- No Accounts: Start sharing immediately without registration or login.
- Framework: React + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS + Shadcn/UI
- State Management: Zustand
- Networking: WebRTC (DataChannel) & WebSockets
- Runtime: Node.js
- Framework: Express.js
- WebSocket Library: ws
- Language: TypeScript
fshare/
├── frontend/ # React + Vite application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── services/ # WebSocket and WebRTC logic
│ │ ├── store/ # Zustand state management
│ │ └── types/ # Shared TypeScript interfaces
├── backend/ # Express signaling server
│ ├── src/
│ │ ├── clientManager.ts # Device tracking logic
│ │ ├── socketHandler.ts # WebSocket message routing
│ │ └── index.ts # Server entry point
- Node.js (v18+)
- npm or bun
- Navigate to the backend folder:
cd backend - Install dependencies:
npm install - Start the development server:
npm run dev
- Navigate to the frontend folder:
cd frontend - Install dependencies:
npm install - Create a
.envfile with:VITE_SIGNALING_SERVER=http://localhost:3001 - Start the development server:
npm run dev
To share files between different devices (e.g., your Phone and Laptop) connect to the same network:
ForzaShare is designed with a "privacy-first" architecture. The signaling server only facilitates the initial handshake (exchanging ICE candidates and SDP offers/answers). Once the WebRTC connection is established, the server is no longer involved in the data transfer process. Your files are encrypted end-to-end by the WebRTC protocol itself.
Built with ❤️ for a private and faster internet.