Zap it. Drop it. Share it.
A modern, secure, and completely free peer-to-peer file sharing application built with Next.js and WebRTC. Share files directly between browsers with no servers involved - ensuring complete privacy and security.
- π 100% Private & Secure - Files transfer directly between browsers, never touching our servers
- β‘ Lightning Fast - No upload delays, start sharing immediately with P2P connections
- π Password Protection - Optional password security for sensitive files
- π± Mobile Friendly - Works seamlessly on all devices including mobile browsers
- π¨ Modern UI - Beautiful interface with dark mode support
- π¦ Multiple Files - Upload and share multiple files at once (auto-zipped for download)
- π Real-time Progress - Monitor transfer progress for both uploaders and downloaders
- βΈοΈ Pause & Resume - Download interruptions can be resumed from where they left off
- π Universal Access - Works in any modern browser without installations
This application can be deployed and run completely free forever using these platforms:
- Frontend: Vercel (unlimited deployments)
- Alternative: Netlify (100GB bandwidth/month)
- Alternative: GitHub Pages (static hosting)
- STUN Servers: Google's free STUN servers (included)
- Domain: Your custom domain or free subdomain
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/RajdeepKushwaha5/ZapDrop.git
cd zapdrop-app
# Install dependencies
npm install
# Run development server
npm run dev
# Open http://localhost:3000 in your browserCreate a .env.local file in the root directory (optional):
# Optional: Custom STUN/TURN servers
CUSTOM_STUN_SERVER=stun:your-stun-server.com:19302
TURN_SERVER_URL=turn:your-turn-server.com:3478
TURN_SERVER_USERNAME=your-username
TURN_SERVER_CREDENTIAL=your-password
# Optional: Analytics
NEXT_PUBLIC_GA_ID=your-google-analytics-id- Fork this repository
- Connect your GitHub account to Vercel
- Import the project
- Deploy (takes ~2 minutes)
- Get your free
.vercel.appdomain or add your custom domain
Cost: $0/month forever β
- Fork this repository
- Connect to Netlify
- Build settings:
npm run buildandoutfolder - Deploy automatically
Cost: $0/month forever β
# Build static version
npm run build
npm run export
# Deploy to GitHub Pages
# (Upload the 'out' folder content)Cost: $0/month forever β
βββββββββββββββββββ WebRTC P2P βββββββββββββββββββ
β Uploader ββββββββββββββββββββΊβ Downloader β
β Browser β β Browser β
βββββββββββββββββββ βββββββββββββββββββ
β β
β HTTPS API (ICE servers only) β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js Server (FREE) β
β - ICE server configuration β
β - No file storage β
β - No user data β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS
- WebRTC: PeerJS (simplified WebRTC)
- File Handling: Web APIs (File API, Blob, ArrayBuffer)
- Streaming: Service Workers for download streaming
- State: React hooks and context
- Icons: Lucide React
- End-to-End Encryption: All data encrypted via WebRTC/DTLS
- No Server Storage: Files never touch our servers
- Password Protection: Optional AES-256 password protection
- No Tracking: No user data collected or stored
- Content Security Policy: XSS protection
- HTTPS Only: Secure connections required
| Browser | Support | Features |
|---|---|---|
| Chrome 60+ | β Full | All features |
| Firefox 55+ | β Full | All features |
| Safari 12+ | β Full | All features |
| Edge 79+ | β Full | All features |
| Mobile Chrome | β Full | All features |
| Mobile Safari | β Full | All features |
For better connectivity behind NATs, you can configure custom servers:
// src/hooks/usePeer.ts
const customIceServers = [
{ urls: 'stun:your-stun-server.com:19302' },
{
urls: 'turn:your-turn-server.com:3478',
username: 'your-username',
credential: 'your-password'
}
];- Metered.ca - 50GB/month free
- Twilio - Free tier available
- Self-hosted COTURN - Free on your VPS
| Metric | Limit | Notes |
|---|---|---|
| File Size | Browser memory | Typically 1-4GB per file |
| Concurrent Downloads | Unlimited | P2P scales naturally |
| Transfer Speed | Network limited | Direct P2P connection |
| Storage Cost | $0 | No server storage |
| Bandwidth Cost | $0 | P2P transfer |
We welcome contributions! Here's how to help:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
# Install dependencies
npm install
# Run development server
npm run dev
# Run tests
npm run test
# Build for production
npm run buildThis project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by FilePizza by Alex Kern & Neeraj Baid
- Built with love for the open-source community
- Uses free STUN servers provided by Google and others
Q: Files not transferring? A: Check if both users have the tab open and active. WebRTC requires active connections.
Q: Connection failed behind corporate firewall? A: Use TURN servers for better NAT traversal.
Q: Large files failing? A: Browser memory limits apply. Try smaller files or enable streaming downloads.
Q: Mobile not working? A: Ensure HTTPS is enabled. WebRTC requires secure contexts.
- π Documentation
- π Report Issues
- π¬ Discussions
Made with β€οΈ for a free and open internet
Deploy your own instance today and enjoy unlimited, private file sharing forever - completely free!
