Real-time. Ephemeral. Secure. Share files and text across devices instantly. Everything self-destructs after 2 hours of inactivity.
👉 https://deaddropexe.vercel.app/
Live Drop is a lightweight, browser-based dead drop for digital content. It solves the problem of quickly moving a file or a snippet of text from Phone A to Laptop B (or to a friend) without logging in, emailing yourself, or using permanent cloud storage.
The catch? It’s ephemeral. Every room and every byte of data is automatically purged from existence exactly 2 hours after creation.
- ⚡ Real-Time Sync: Powered by Socket.io, transfers happen instantly. No page refreshes required.
- 🔒 Zero Auth: No accounts, no emails. Just create a Room Code and share it.
- ⏳ 2-Hour Inactivity Self-Destruct: An automated cleanup cron job ensures privacy by wiping all data (Database entries + Cloudinary files) after a room has been inactive for 2 hours.
- 📂 Universal Sharing: Supports text snippets (with one-click copy) and file uploads (images, PDFs, zips, etc.).
- 🌑 Dark Mode UI: A sleek, minimal interface designed for speed.
Built with the MERN stack, optimized for free-tier deployment.
- Frontend: React (Vite), Tailwind CSS
- Backend: Node.js, Express.js
- Real-Time Engine: Socket.io
- Database: MongoDB Atlas (Persists metadata)
- File Storage: Cloudinary (Persists binary files)
- Automation: Cron-job.org (Triggers the cleanup API)
- Node.js installed
- MongoDB Atlas Account
- Cloudinary Account
-
Clone the repo
git clone https://github.com/yourusername/live-drop.git cd live-drop -
Install Backend Dependencies
cd server npm install -
Install Frontend Dependencies
cd ../client npm install -
Environment Variables Create a
.envfile in theserverdirectory and add your keys:PORT=3001 MONGO_URI=your_mongodb_connection_string CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
-
Run the App
- Backend:
npm start(inside /server) - Frontend:
npm run dev(inside /client)
- Backend:
To ensure the free tier of Cloudinary doesn't fill up, this project uses a specific architecture for deletion:
- MongoDB stores the file metadata and a
createdAttimestamp. - A dedicated API route
/api/cleanupchecks for rooms with no activity for > 2 hours. - It first calls the Cloudinary API to destroy the raw file.
- Then, it deletes the MongoDB document.
- (Production) An external Cron Job pings this route every hour.
Contributions are welcome!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Built with 🖤 by Ankush