A self-hosted, real-time collaborative travel planner with maps, budgets, packing lists, a journal and optional AI tools.
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:AirDrop
Google 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
Clone the repository
git clone https://github.com/Defiabell/shotsync - 2
Enter the project folder and install dependencies
cd shotsync && npm install - 3
Log in to Cloudflare, create the R2 bucket, and set the access token
npx wrangler login - 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
A self-hosted gym and body-weight tracker for planning routines, logging sets, and keeping workout data on your own server.
A TypeScript music player focused on full-screen animated lyrics, supporting NetEase, QQ, Kugou, Navidrome and local libraries.
A web desktop operating system for low-power devices like Raspberry Pi, providing file management, network file sharing and a web-based app environment.
Self-hosted platform for file storage, sync, sharing, and team collaboration, with WebDAV and online office editing.
A macOS menu bar app that captures text from any area of the screen via OCR and copies it straight to the clipboard, working offline.