Dropbox is just rsync with a GUI and extra steps
Under the hood
- rsync A utility that efficiently transfers and synchronizes files by computing and sending only the differences. Wikipedia ↗ (opens in a new tab)
- inotify A Linux kernel subsystem that monitors filesystem events — file creation, modification, and deletion — in real time. Wikipedia ↗ (opens in a new tab)
- cloud storage Remote file storage accessed over a network, abstracting away the physical location of data. Wikipedia ↗ (opens in a new tab)
What they say
Dropbox is “the simplest way to keep your files in sync.” When it launched at Y Combinator in 2007, the pitch was magical: install it, get a folder, anything you put in the folder appears on all your devices.
What it actually is
Watch a directory for file changes. Compute diffs. Transfer the diffs to a remote server. Apply them on other clients. That’s the core loop.1
The pattern in pseudocode
# 1. Watch a directory for changes (inotify on Linux, FSEvents on macOS)
inotifywait -mr ~/Dropbox -e modify,create,delete
# 2. Compute and transfer diffs (rsync's core algorithm)
rsync -avz ~/Dropbox/ remote:~/sync/
# 3. On the other side, apply the diffs to the local copy
rsync -avz remote:~/sync/ ~/Dropbox/
The delta transfer algorithm — splitting files into chunks, computing rolling checksums, sending only the changed blocks — is literally what rsync does.2
The “extra steps”
- Filesystem watching — monitoring a folder for changes in real-time instead of running sync manually (inotify/FSEvents)
- Block-level dedup — splitting files into 4MB chunks and only storing unique blocks (content-addressable storage)
- Conflict resolution — handling the case where two clients edit the same file (last-writer-wins with “conflicted copy” fallback)
- Cross-platform GUI — making the sync folder feel native on Windows, macOS, and Linux (the actual product moat)
What you already know
If you’ve ever run rsync -avz to back up a folder to a remote server, you’ve done the hard part. Dropbox automated the trigger (filesystem events instead of a cron job) and added a storage backend.
# You've done this
rsync -avz ~/projects/ server:~/backup/
# Dropbox does this, triggered by filesystem events, continuously
while true; do
wait_for_changes ~/Dropbox
sync_deltas ~/Dropbox cloud://storage/
pull_deltas cloud://storage/ ~/Dropbox
done
The reason Dropbox is worth $8B and rsync isn’t3 has nothing to do with the algorithm. It’s the GUI, the cross-platform client, the sharing links, the collaboration features, and the fact that your parents can use it without opening a terminal. The primitives were never the moat — the product was.
Footnotes
-
BrandonM on Hacker News — the comment that launched a thousand takes. “For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS…” Technically right. Commercially irrelevant. ↩
-
rsync algorithm — Wikipedia — the rolling checksum and delta transfer algorithm. Dropbox’s sync engine uses a similar chunking approach, though their block-level dedup goes further than rsync’s file-level diffing. ↩
-
Drew Houston resurfaced BrandonM’s comment at Dropbox’s IPO in 2018. The original HN submission for Dropbox is item 8863 — one of the most famous Show HN posts ever. ↩