Repolode
Defiabell

Defiabell/shotsync

Self-hosted cross-device image and text pool on Cloudflare Workers and R2, accessed through a PWA with no app install.

Open-source alternative to:AirDropGoogle Photos

Stars
207
Forks
13
Open issues
0
Last commit
30 days ago

What is it?

shotsync is a small cross-device pool for screenshots, photos and text snippets. It runs as a single Cloudflare Worker backed by an R2 bucket, and the gallery is a PWA that works in any browser, so there is no native app to install on phones or desktops. Deployment uses your own Cloudflare account and a shared access token that you enter on each device.

Uploaded images are converted to JPEG and thumbnailed in the browser before upload, and the Worker stores the bytes without server-side image processing. Items show newest-first and refresh automatically. You can create signed share links that expire after 7 days, and items are removed after 30 days through an R2 lifecycle rule you configure yourself.

The default self-hosted mode uses one shared token for the whole pool, so it suits a single user or a small trusted group. A separate hosted mode with email accounts is also described in the project, and the repository includes a read-only demo.

Key features

  • 01Shared pool for images and text across devices, with no app install needed
  • 02Client-side JPEG and HEIC conversion with thumbnail generation
  • 03Signed share links for single items that expire after 7 days
  • 04Multi-select batch deletion and per-item download
  • 05Runs on the Cloudflare free tier using Workers and R2
  • 06Items auto-delete after 30 days via an R2 lifecycle rule

Use cases

  • Sending a screenshot from a Mac or phone to another device and picking it up later
  • Acting as a cross-device clipboard for snippets of text
  • Sharing one screenshot via a temporary public link without exposing the whole pool
  • Running a private personal image inbox on your own Cloudflare account

Quick start

  1. 1

    Clone the repository

    git clone https://github.com/Defiabell/shotsync
  2. 2

    Enter the project folder and install dependencies

    cd shotsync && npm install
  3. 3

    Log in to Cloudflare, create the R2 bucket, and set the access token

    npx wrangler login
  4. 4

    Deploy to Cloudflare Workers

    npm run deploy

Things to know

  • Anyone with the URL and the shared token can view, upload and delete everything in the pool.
  • Requires a Cloudflare account with R2 enabled, and Cloudflare asks for a card even on the free tier.
  • The UI is currently in Chinese only.
  • Items auto-delete after 30 days, and the 30-day lifecycle rule must be configured manually.

Topics

FAQ

What is shotsync?
Self-hosted cross-device image and text pool on Cloudflare Workers and R2, accessed through a PWA with no app install. shotsync is a small cross-device pool for screenshots, photos and text snippets. It runs as a single Cloudflare Worker backed by an R2 bucket, and the gallery is a PWA that works in any browser, so there is no native app to install on phones or desktops. Deployment uses your own Cloudflare account and a shared access token that you enter on each device.
Is shotsync free to use? What license does it have?
shotsync is open source under the MIT license. Check the license terms before using it in commercial products.
Is shotsync still maintained?
Actively maintained. The last commit to shotsync was on Sep 20, 2026.
What can I use shotsync for?
Sending a screenshot from a Mac or phone to another device and picking it up later Acting as a cross-device clipboard for snippets of text Sharing one screenshot via a temporary public link without exposing the whole pool Running a private personal image inbox on your own Cloudflare account
How do I install shotsync?
Clone the repository: git clone https://github.com/Defiabell/shotsync Enter the project folder and install dependencies: cd shotsync && npm install Log in to Cloudflare, create the R2 bucket, and set the access token: npx wrangler login Deploy to Cloudflare Workers: npm run deploy
Where can I get shotsync?
The source code and installation instructions are on GitHub: https://github.com/Defiabell/shotsync

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects