Sha. Share. Host. Access.
P2P file transfer. No servers. No bullshit.
- Direct P2P Transfer: Files are transferred directly between browsers using WebRTC
- No Server Storage: Your files never touch our servers
- Simple Code Sharing: 6-character alphanumeric codes for easy sharing
- Progress Tracking: Real-time progress bar with transfer speed
- No Login Required: Just open and share
- Open the website
- Select or drag & drop a file
- Share the 6-character code with the receiver
- Wait for the receiver to connect
- Transfer happens automatically
- Open the website
- Switch to "Receive" mode
- Enter the 6-character code
- Click "Connect"
- File downloads automatically when transfer completes
- Frontend: Vanilla HTML/CSS/JavaScript
- P2P: PeerJS for WebRTC signaling
- Hosting: Cloudflare Pages
Simply open index.html in a browser, or serve with any static file server:
# Using Python
python -m http.server 8000
# Using Node.js
npx serve┌─────────────────────────────────────────────────────────┐
│ Cloudflare Pages │
│ (Static Files) │
└─────────────────────────────────────────────────────────┘
│
┌──────────────────┴──────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ SENDER │ │ RECEIVER │
│ Browser │ │ Browser │
│ │ PeerJS Cloud │ │
│ 1. Select │◄────(Signaling)─────►│ 3. Enter │
│ file │ │ code │
│ 2. Get code │ │ │
│ │◄═══════════════════►│ │
│ │ Direct WebRTC │ 4. Download │
│ │ (P2P Transfer) │ │
└───────────────┘ └───────────────┘
- Binary ArrayBuffer transfers (33% smaller than base64)
- 64KB chunk size (optimal for WebRTC data channels)
- Flow control with bufferedAmount monitoring
- Minimal protocol overhead (metadata once, then raw chunks)
/
├── index.html # Main HTML
├── css/
│ └── style.css # Styling
├── js/
│ ├── app.js # Main app logic
│ ├── sender.js # Sender functionality
│ └── receiver.js # Receiver functionality
└── README.md # This file
MIT
Made by @Yashas.VM | Co-Powered by Claude