Skip to content

MusicMaster4/WaterDrop

Repository files navigation

WaterDrop

Latest release Build status Windows Non-commercial license

Private AirDrop-style file sharing for your Tailscale network.
Drop files on your PC, scan a QR code with your phone, and download them from a private shelf. No cloud storage, no public links, no account.

What WaterDrop Does

WaterDrop is a small Windows desktop app for moving files between your computer and devices on the same Tailscale tailnet.

  • Share files through a private /drop/ shelf served from your own PC.
  • Upload from desktop or phone without transcoding, compression, or quality loss.
  • Download, preview, delete, and clear files from a responsive browser UI.
  • Keep each file's original bytes and show its SHA-256 hash.
  • Auto-expire files after 7 days.
  • Keep serving from the system tray when the window is closed.

Screenshots

These screenshots are captured from the real app using synthetic demo files and an example tailnet URL.

WaterDrop desktop app with QR code, settings, upload area, and file shelf

WaterDrop mobile shelf with upload and download controls

Install

Download the latest Windows installer from GitHub Releases:

Download WaterDrop for Windows

  1. Download WaterDrop-<version>-Setup.exe.
  2. Run the installer and choose the install location.
  3. Open WaterDrop and keep Tailscale connected on the devices you want to use.

The installer is currently unsigned. Windows SmartScreen may show "Windows protected your PC" on first launch. Choose More info and then Run anyway if you trust this build.

Tailscale Requirement

WaterDrop uses Tailscale to make your PC reachable from your own devices without exposing the shelf to the public internet.

  1. Install Tailscale on your Windows PC and sign in.
  2. Install Tailscale on your phone or other device and sign in to the same account.
  3. Keep Tailscale connected on both devices.

WaterDrop can still run locally without Tailscale, but the phone QR flow needs a connected tailnet.

First-Time Setup

The first time you open WaterDrop, a short setup guide walks you from install to your first drop. You can re-run it anytime from Settings → Re-run setup.

These screenshots are captured from the real app using an example tailnet URL — no personal data.

1. Welcome

WaterDrop welcome screen

2. Install Tailscale on this PC

WaterDrop checks that Tailscale is installed, signed in, and connected. Use Re-check after you install or connect it.

WaterDrop Tailscale setup step for this PC

3. Set up your phone

Add your phone to the same Tailscale account so it can reach this computer's shelf.

WaterDrop phone setup step

4. Publish your shelf

Publish the private /drop path once so the QR code carries a real, phone-ready HTTPS link over Tailscale Serve.

WaterDrop publish /drop step

5. Finish

Choose whether WaterDrop starts automatically at boot, then you land on the shelf ready to drop files.

WaterDrop finish setup step

How To Use

  1. Open WaterDrop on your PC.
  2. If /drop is not published yet, click Publish once.
  3. Scan the QR code with your phone.
  4. Upload files by dragging them into the app or tapping Upload.
  5. Download files with Save on desktop or Get on mobile.

When WaterDrop publishes /drop, it runs:

tailscale serve --bg --yes --set-path /drop http://127.0.0.1:<port>

On desktop, file cards can also be dragged out of WaterDrop into another folder or app.

Privacy Model

WaterDrop is designed for private, short-lived handoff, not public file hosting.

  • The server accepts loopback and Tailscale client addresses only.
  • Files stay on your machine.
  • No external WaterDrop server, account, analytics, or cloud storage is used.
  • The QR code and /drop/ link should only be shared with people you trust on your tailnet.
  • Files expire after 7 days, and the shelf can be cleared manually at any time.

Updates

WaterDrop checks for GitHub Releases from inside the installed app. When a new version is available, it can download the update and restart into the new version while preserving your settings, shelf data, and download folder.

Build From Source

WaterDrop is an Electron app with a React/Vite renderer and a local Node HTTP file server.

git clone https://github.com/MusicMaster4/WaterDrop.git waterdrop
cd waterdrop
npm install
npm start

For live renderer development:

npm run dev

Run tests:

npm test

Build the Windows installer:

npm run dist

The installer is written to release/ as WaterDrop-<version>-Setup.exe.

Project Structure

  • src/main/ - Electron main process, tray behavior, app settings, Tailscale integration, and updater bridge.
  • src/server/ - local HTTP server, upload/download API, file metadata, retention cleanup, and static renderer serving.
  • src/renderer/ - React UI used by both the desktop window and the phone browser page.
  • .github/workflows/release.yml - automated Windows build and GitHub Release publishing.

Release Flow

Pushes to main or master that touch app code trigger the release workflow. The workflow resolves the next version, builds the Windows installer, uploads update metadata, and publishes a GitHub Release.

Manual workflow runs can publish a patch, minor, or major release, or produce a test build artifact without publishing.

License

WaterDrop uses a custom non-commercial license. You may use, copy, modify, and distribute it for personal, educational, evaluation, or internal purposes, but you may not sell, monetize, or sell modified versions without prior written permission. See LICENSE.