AetherDrop is a modern, secure file-sharing platform that allows users to upload files and share them via temporary, expiring links.
Built as a full-stack system with production-ready infrastructure, it focuses on privacy, control, and simplicity.
- 📦 Upload multiple files at once
- 🔐 Secure file access via unique links
- ⏳ Expiry-based file deletion
- 📉 Download limits per file
- 🗂 Automatic ZIP generation for multi-file downloads
- ☁️ AWS S3 storage integration
- 🧹 Background cleanup service (cron-based)
- 🌍 Public access via Cloudflare Tunnel
- ⚡ Fast and responsive UI
-
User uploads files
-
Files are stored in AWS S3
-
A unique shareable link is generated
-
Download requests are validated:
- Expiry time
- Download count
-
Files are streamed and zipped on demand
-
Expired files are automatically deleted
Frontend (React + Vite + Tailwind)
↓
Nginx (Reverse Proxy)
↓
Backend (Node.js + Express)
↓
MongoDB (Metadata)
↓
AWS S3 (File Storage)
- React (Vite)
- Tailwind CSS
- Framer Motion
- Node.js
- Express.js
- Multer (file handling)
- Archiver (ZIP streaming)
- AWS S3
- MongoDB Atlas
- Docker & Docker Compose
- Nginx
- No direct S3 exposure
- Backend-controlled access
- Download limit enforcement
- Expiry-based cleanup system
- Fully containerized deployment
The application is deployed on an AWS EC2 instance using Docker.
Public access is enabled via Cloudflare Tunnel with HTTPS support.
aetherdrop/
├── frontend/
├── backend/
├── monitoring/
├── docker-compose.yml
└── README.md
- User authentication
- File encryption
- Progress indicators
- Drag & drop upload
- Custom domains
- Analytics dashboard
Feel free to fork and improve the project.
MIT License
Built with focus on real-world deployment and system design.