Local Drop is a lightweight, Node.js-based web application designed for transferring text, links, and files between devices (PC/Laptop and Mobile) in real-time over a local area network (WLAN/Mobile Hotspot).
This application was built as a faster, more lightweight, and private alternative to WhatsApp Web for personal file transfers. Since it operates entirely on a local network, transferring massive files (up to Gigabytes) will not consume any of your internet data quota.
- 🚀 Real-time Text Sync: Type on your phone and watch it instantly appear on your laptop screen without the need to refresh the page (powered by Socket.IO).
- 📁 Multiple File Upload: Send multiple images, videos, or documents simultaneously.
- 📊 Progress Bar Indicator: Accurately monitor the upload percentage and progress of large files.
- 📝 Text-to-File Generator: Instantly convert long notes or text into a physical
.txtfile ready to be downloaded. - 🕒 Smart File Naming: Automatically renames uploaded files using a neat
YYYYMMDD_HHMMSSformat to prevent overwriting and keep your storage organized. - 🔒 PIN / Password Protected: Secured with an authentication gateway to prevent unauthorized access or file drops from strangers on the same public Wi-Fi network.
- 🌙 Dark Mode: Eye-friendly user interface with automatic theme state saving using
localStorage. - ⚡ Reactive UI: Built with Alpine.js for a fast, lightweight, and modern reactive user interface without the overhead of heavy frameworks.
- 📡 Auto IP Detection: Automatically detects and displays your local IP addresses in the terminal for easy mobile access.
- Frontend:
HTML5,CSS3,Alpine.js - Backend:
Node.js,Express.js - Real-time Engine:
Socket.IO - File Handling:
Multer,Node.js File System (fs)
-
Ensure you have Node.js installed on your machine.
-
Clone this repository:
git clone https://github.com/devannoap31/local-drop.git
-
Navigate to the project directory:
cd local-drop -
Install all required dependencies:
npm install
-
Open
server.js, locate theSECRET_PINvariable, and change the default password to your own secure PIN/Password. -
Start the server:
node server.js
-
Open a web browser on your devices:
- On the Host Laptop: Access http://localhost:3000
- On your Mobile Device: Access the IP address displayed in your terminal (e.g., http://192.168.x.x:3000)
Created by Devanno Andhika Putra.