
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
A privacy-focused, peer-to-peer (P2P) file sharing app — fast, secure, and serverless.
PeerDrop lets you share large files directly between devices using WebRTC. No file ever touches a server. No storage. No spying. Just pure, encrypted transfer — from you to your peer.
| Layer | Tech |
|---|---|
| Frontend | HTML, Tailwind CSS, JavaScript |
| Core Logic | WebRTC DataChannel |
| Signaling Server | Node.js + Express + Socket.io |
| TURN/STUN | Google STUN servers |
peerdrop/
├── public/ # Static assets (icons, favicon, etc.)
├── src/
│ ├── index.html # Entry HTML
│ ├── 404.html # 404 error page
│ ├── styles/ # CSS styles
│ │ └── main.css # Tailwind CSS
│ └── js/ # JavaScript files
│ └── app.js # Core WebRTC logic
├── server/
│ ├── index.js # Express + Socket.io Signaling Server
│ └── config.js # TURN/STUN configs
├── workers-site/ # Cloudflare Workers configuration
│ ├── index.js # Worker script
│ └── package.json # Worker dependencies
├── wrangler.toml # Cloudflare Wrangler config
├── README.md
└── package.json
RTCPeerConnection is used to create a connection.createOffer() and createAnswer() are exchanged via Socket.io.DataChannel.# Clone the repo
git clone https://github.com/sh20raj/peerdrop.git
# Install dependencies
cd peerdrop
npm install
# Start the server
npm start
# For development with auto-restart
npm run dev
Then open http://localhost:3000 in your browser.
1. Install Wrangler CLI:
npm install -g @cloudflare/wrangler
2. Authenticate with Cloudflare:
wrangler login
3. Update your Cloudflare account details in wrangler.toml:
account_id = "your-account-id" # Replace with your Cloudflare account ID
zone_id = "your-zone-id" # Replace with your Cloudflare zone ID (if applicable)
4. Build the project:
npm run build
5. Deploy to Cloudflare Pages:
npm run deploy
1. Build the project:
npm run build
2. Go to the Cloudflare Pages dashboard
3. Click "Create a project"
4. Connect your GitHub repository
5. Configure your build settings:
npm run buildsrc/6. Click "Save and Deploy"
The signaling server needs to be deployed separately:
signalingServerUrl in workers-site/index.js to point to your deployed signaling serverContributions are welcome! If you want to:
Fork the repo and open a PR 🚀
MIT License
Inspired by ToffeeShare, built with love and curiosity ❤️
FAQs
A privacy-focused, peer-to-peer (P2P) file sharing app
We found that peerdrop demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.