A lightweight, local-network file-sharing web application inspired by tools like LocalSend. It allows devices connected to the same Wi-Fi network to automatically discover each other in real-time, customize their device names, securely authorize connection requests, and stream files directly browser-to-browser (P2P) without needing an active internet connection.
- Automatic Local Discovery: Instantly lists all devices currently connected on your local network using WebSockets.
- Secure AirDrop-Style Handshake: Clicking a peer triggers a connection request modal on their screen with file details, requiring explicit acceptance before any transfer occurs.
- Peer-to-Peer (P2P) File Transfer: Files are streamed directly between devices using WebRTC Data Channels (no server file-upload bottlenecks or size limits).
- Smooth Progress Tracking: Real-time progress bars show transfer percentages and live status updates for both sending and receiving files.
- Random Codenames: Automatically generates fun default names (e.g., Cosmic Panda 42) on first visit and persists them using
localStorage. - Customizable Identity: Users can easily rename their device or roll a new random codename on the fly.
- Responsive & Modern UI: Built with Tailwind CSS for a sleek, dark-mode-first aesthetic.
Device 1 - Desktop
Device 2 - Mobile
- Backend: Node.js, Express, Socket.io
- Frontend: HTML5, Tailwind CSS, WebRTC Data Channels, JavaScript
Follow these steps to set up and run LocalDrop on your local machine:
Make sure you have Node.js installed on your computer. (You can check by running node -v in your terminal).
Ensure your project folder structure looks like this:
local-drop/
├── public/
│ └── index.html
├── package.json
└── server.js
Open your terminal, navigate to your project directory, and run:
npm installStart the application server by running:
node server.js(Alternatively, if configured in your package.json, you can run npm start)
once running, the console will display URLs similar to this:
🚀 LocalDrop server running!
> Open on this machine: http://localhost:3000
> Open on other network devices: [http://192.168.](http://192.168.)X.X:3000
-
On your computer: Open
http://localhost:3000in your browser. -
On other devices (Phones, Tablets, Laptops): Connect them to the same Wi-Fi network and type the network URL provided in your terminal (e.g.,
http://192.168.1.15:3000) into their browser. -
You will see devices populate on the screen, ready to send files to one another!
Distributed under the MIT License. See LICENSE for more information.
