# snapdrop/snapdrop

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/snapdrop-snapdrop).**

19,715 stars · 1,881 forks · JavaScript · GPL-3.0

## Links

- GitHub: https://github.com/SnapDrop/snapdrop
- Homepage: https://snapdrop.net
- awesome-repositories: https://awesome-repositories.com/repository/snapdrop-snapdrop.md

## Topics

`pwa` `snapdrop` `webrtc`

## Description

Snapdrop is a browser-based peer-to-peer file sharing tool that transfers files directly between devices on the same local network without uploading to any intermediate server. It operates as a progressive web app, meaning it works across devices without installation, and uses end-to-end encryption to ensure only the sender and receiver can read the content being transferred.

The application establishes direct browser-to-browser connections using WebRTC, splitting large files into chunks for real-time streaming with progress tracking. It discovers nearby devices on the same subnet through local network discovery, and caches application assets via service workers for offline-capable functionality. The entire transfer model is serverless, with zero persistence on any server, ensuring privacy and minimal infrastructure.

Snapdrop supports sending and receiving individual files or entire folder structures while preserving directory hierarchy, with the ability to accept or ignore each incoming transfer. For users who want full control over their hosting and privacy, the application can be deployed as a private instance using a Docker container that packages the signaling server and static assets.

## Tags

### Networking & Communication

- [Local Peer-to-Peer](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/bittorrent-file-sharing/file-sharing/local-peer-to-peer.md) — A progressive web app that transfers files directly between devices on the same local network using peer-to-peer connections with no server-side storage. ([source](https://cdn.jsdelivr.net/gh/snapdrop/snapdrop@master/README.md))
- [Peer-to-Peer File Sharing](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/peer-to-peer-file-sharing.md) — Send one or more files from the browser to another device on the same local network using peer-to-peer connections. ([source](https://snapdrop.net))
- [Local Network Discovery](https://awesome-repositories.com/f/networking-communication/local-network-discovery.md) — Discovers nearby devices on the same subnet using mDNS or WebRTC signaling without external servers.
- [Browser-Based Local Transfers](https://awesome-repositories.com/f/networking-communication/network-file-sharing/browser-based-local-transfers.md) — Transferring files directly between devices on the same local network without uploading to a server.
- [WebRTC Data Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange/data-channel-establishment/webrtc-data-channels.md) — Establishes direct browser-to-browser data channels for file transfer without intermediate servers.

### Web Development

- [Browser-Based File Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/browser-based-file-transfers.md) — A browser-based tool that sends files between devices on the same local network without uploading to any intermediate server.
- [Browser-Based P2P Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/browser-based-p2p-transfers.md) — Sending files between browsers using direct connections with no intermediate storage.
- [Offline Caching](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/service-worker-controls/service-worker-libraries/offline-caching.md) — Caches application assets in the browser for offline-capable progressive web app functionality.
- [Local File Sharing PWAs](https://awesome-repositories.com/f/web-development/progressive-web-apps/local-file-sharing-pwas.md) — Using a browser-based app that works across devices without installation for local file transfers.
- [Docker-Deployable File Servers](https://awesome-repositories.com/f/web-development/self-hosted-file-servers/docker-deployable-file-servers.md) — A Docker-deployable application that gives users full control over their local file sharing infrastructure.

### Data & Databases

- [Streaming File Chunking](https://awesome-repositories.com/f/data-databases/storage-abstraction/file-storage-services/chunked-file-storages/streaming-file-chunking.md) — Splits large files into smaller chunks for real-time streaming over WebRTC data channels with progress tracking.

### DevOps & Infrastructure

- [Peer-to-Peer Storage Models](https://awesome-repositories.com/f/devops-infrastructure/single-node-deployment/single-process-servers/multi-model-server-architectures/peer-to-peer-storage-models.md) — Transfers data directly between peers with zero persistence on any server, ensuring privacy and minimal infrastructure.
- [Docker Container Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments.md) — Packages the signaling server and static assets into a single container for self-hosted private instances.
- [Self-Hosted Instances](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-instances.md) — Run the application on personal infrastructure using a Docker container for full control. ([source](https://cdn.jsdelivr.net/gh/snapdrop/snapdrop@master/README.md))

### Security & Cryptography

- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — An application that encrypts file transfers between sender and receiver so only the intended parties can read the content.

### User Interface & Experience

- [File and Blob APIs](https://awesome-repositories.com/f/user-interface-experience/browser-based-file-exports/file-and-blob-apis.md) — Uses the File and Blob APIs to read, write, and reconstruct files entirely within the browser sandbox.
- [Local Network Folder Transfers](https://awesome-repositories.com/f/user-interface-experience/folder-upload-support/local-network-folder-transfers.md) — Transfer an entire folder structure to another device on the local network while preserving the directory hierarchy. ([source](https://snapdrop.net))

### System Administration & Monitoring

- [Incoming Transfer Acceptances](https://awesome-repositories.com/f/system-administration-monitoring/device-file-transfers/incoming-transfer-acceptances.md) — Accept or ignore each incoming file transfer from another device on the local network. ([source](https://snapdrop.net))
