DEV Community

Alex Chen
Alex Chen

Posted on

I Replaced iCloud + Google Drive with Syncthing — Free, Private, and 3x Faster on LAN

Two years ago I was paying for two sync services at once: iCloud ($2.99/month for 200GB that my photo library kept blowing past) and Google Drive ($1.99/month because the free 15GB evaporates fast when Gmail eats into it). ~$60/year for the privilege of uploading my own files to someone else's computer, throttled by my upload bandwidth, scanned by their content classifiers.

Then a coworker mentioned Syncthing. Open source, continuous file synchronization directly between your devices — no server in the middle unless you want one. I've run it for 18 months now across a laptop, a desktop, and a NAS. Total cost: $0. Sync speed on my LAN: limited by disk, not by a data center in another country.

What replaced what

iCloud + GDrive Syncthing
Cost (my usage) ~$60/yr $0
Storage limit 200GB + 15GB Your disk size
LAN sync speed Capped by upload (~40 Mbps) 300+ MB/s on gigabit
Files leave your network Always Never (unless you relay)
Works offline / LAN-only No Yes
Versioning 30 days Configurable, unlimited
Mobile (iOS) Native Needs Möbius Sync (3rd party)

The speed difference is not subtle. Copying a 4GB project folder between my laptop and desktop went from "start upload, wait 15 minutes, other device starts downloading" to ~20 seconds. It's the same difference as AirDrop vs emailing yourself a file — except it works between Linux, macOS, Windows, and Android.

The setup (actually 10 minutes)

# macOS
brew install syncthing

# Debian/Ubuntu
sudo apt install syncthing

# Start it — it runs as a background service and
# opens a web UI on http://127.0.0.1:8384
syncthing
Enter fullscreen mode Exit fullscreen mode

Then:

  1. Open the web UI on both machines
  2. Actions → Show ID on machine A, copy the device ID (a long string like MFZWI3D-...)
  3. On machine B: Add Remote Device, paste the ID
  4. Machine A gets a prompt to accept — click Add
  5. Share a folder, accept on the other side, done

No account. No email. No trial period. The device IDs are cryptographic keys — the "pairing" is the security model.

The honest trade-offs (read this before uninstalling Dropbox)

Both devices must be online to sync. This is the fundamental trade. iCloud syncs through Apple's servers, so your phone gets the file even if your laptop is asleep. Syncthing is peer-to-peer — laptop off means phone waits. My fix: the NAS is always on, so it acts as the "cloud" I own. A $5/month VPS or even a Raspberry Pi does the same job.

iOS is second-class. Apple's background restrictions mean the community iOS app (Möbius Sync) only syncs when opened or periodically woken. On Android it's flawless.

Conflicts are your problem. Edit the same file on two offline devices and you get a .sync-conflict copy, not a merge UI. In 18 months: 6 conflicts, all trivial to resolve. iCloud silently picks a winner — which is worse, but you never notice it happening.

Deletes propagate. Delete a folder on one machine and it's gone everywhere. Turn on staggered versioning (one setting per folder) and deleted/changed files are kept in a .stversions folder for as long as you set. Do this on day one.

Where it fits in my stack now

  • Code: still Git — Syncthing doesn't replace version control
  • Documents, notes, photos, VM images, dotfiles: Syncthing
  • Sharing files with other people: still needs something with links — I use a throwaway Cloudflare R2 bucket (10GB free) for that

I've sketched most of my sync scripts and folder configs with AI assistance — MonkeyCode is what I use for that kind of glue code, it's free and open source.

Rating: 8.5/10

Loses points for the iOS situation and the "devices must be online" constraint. Gains everything else: speed, privacy, unlimited storage, and the quiet satisfaction of not renting access to my own files.

The question I keep coming back to: how much of the "cloud" we pay for is just file sync that our own devices could do peer-to-peer? And for those of you who self-host — what does your Syncthing topology look like? Do you run an always-on node, or sync laptop-to-laptop and accept the gaps?

Top comments (0)