PrivyDrop Logo
# PrivyDrop - A Privacy-Focused, WebRTC-Based File Sharing Tool [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) PrivyDrop(formerly SecureShare) is an open-source, peer-to-peer (P2P) file and text sharing tool built on WebRTC. It requires no server-side data relay; all data is transmitted directly between browsers, ensuring end-to-end encryption for maximum privacy and security. We believe everyone should have control over their own data. PrivyDrop was created to fulfill this vision: a simple, fast, and private sharing solution. [**Try it Live Β»**](https://www.privydrop.app/) | [**GitHub Repository Β»**](https://github.com/david-bai00/PrivyDrop) --- ![PrivyDrop Interface GIF](frontend/public/HowItWorks.gif) ## ✨ Key Features - πŸ”’ **End-to-End Encryption**: Leverages P2P direct connections via WebRTC. All files and text are transferred directly between browsers without passing through any central server. - πŸ“‚ **File & Folder Transfer**: Supports transferring multiple files and entire folders. - ⚑ **Real-time & Efficient**: Displays real-time transfer progress and automatically calculates transfer speed. - πŸ“ **Rich Text Clipboard**: Supports editing and sending formatted text, not just files. - πŸ”— **Convenient Sharing**: Easily share a room and establish a connection via a link or QR code. - πŸ“± **Multi-Device Support**: Responsive design supports both desktop and mobile browsers. - 🌐 **Internationalization**: Supports multiple languages, including English and Chinese. ## πŸ› οΈ Tech Stack - **Frontend**: Next.js 14, React 18, TypeScript, Tailwind CSS, shadcn/ui - **Backend**: Node.js, Express.js, TypeScript - **Real-time Communication**: WebRTC, Socket.IO - **Data Storage**: Redis - **Deployment**: PM2, Nginx, Docker [WIP] ## πŸš€ Quick Start (Full-Stack Local Development) Before you begin, ensure your development environment has [Node.js](https://nodejs.org/) (v18+), [npm](https://www.npmjs.com/), and a running [Redis](https://redis.io/) instance installed. 1. **Clone the Project** ```bash git clone https://github.com/david-bai00/PrivyDrop.git cd PrivyDrop ``` 2. **Configure and Start the Backend Service** ```bash cd backend npm install # Create and configure .env.development.local according to the instructions in backend/README.md npm run dev # Starts by default at http://localhost:3001 ``` 3. **Configure and Start the Frontend App** (in a new terminal window) ```bash cd frontend pnpm install # Create and configure .env.development.local according to the instructions in frontend/README.md pnpm dev # Starts by default at http://localhost:3002 ``` 4. **Start Sharing** Open `http://localhost:3002` in your browser to access the application. ## πŸ—ΊοΈ Roadmap We have a public roadmap that outlines our vision for the future and our current priorities. It's a great place to see what we're working on or to find areas where you can contribute. ➑️ **[Check out the Project Roadmap](./ROADMAP.md)** ## πŸ“š Documentation We provide detailed documentation to help you dive deeper into the project's design and deployment details: - [**Overall Project Architecture**](./docs/ARCHITECTURE.md): Understand how all components of the PrivyDrop system work together. - [**Frontend Architecture Deep Dive**](./docs/FRONTEND_ARCHITECTURE.md): Explore the frontend's code structure, state management, and core logic. - [**Backend Architecture Deep Dive**](./docs/BACKEND_ARCHITECTURE.md): Dive into the backend's code structure, signaling flow, and Redis design. - [**Deployment Guide**](./docs/DEPLOYMENT.md): Learn how to deploy the complete PrivyDrop application in a production environment. ## 🀝 Contributing We warmly welcome contributions of all forms! Whether it's reporting a bug, suggesting a feature, submitting code or adding a star, your help is invaluable to PrivyDrop's growth. Please read our [**Contribution Guidelines**](./.github/CONTRIBUTING.md) to start your journey. We have a [**Code of Conduct**](./.github/CODE_OF_CONDUCT.md) that all contributors are expected to follow. Please be sure to review it before participating. ## πŸ“„ License This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.