Why we went local-first — and what changed because of it
A short essay on building a screenshot tool with no servers, no analytics, and no account. The constraints turned out to be the feature.
When we started Snappy, we made one decision that ended up shaping every other one: nothing leaves the device.
Not “we encrypt your screenshots.” Not “we delete them after 30 days.” Just — they don’t go anywhere. The Chrome extension runs entirely in the browser, stores everything in IndexedDB, and never touches a server.
It sounds like a constraint. It turned out to be the feature.
The boring benefits
There’s no signup flow because there’s no account to make. There’s no “your screenshots are syncing…” spinner because there’s nowhere to sync them. There’s no quota meter because storage is your disk. There’s no privacy policy long enough to need a summary because there’s almost nothing to disclose.
These are the boring benefits, and they compound.
The less obvious one
The thing we didn’t expect: it made the product easier to trust. When someone installs Snappy and sees that the extension asks for nothing — no email, no permission to read all sites, no telemetry toggle to find and disable — there’s a small moment of recognition.
“Oh. This is the kind of tool I keep wishing existed.”
That moment is worth more than any landing-page copy.
Where it gets hard
Local-first isn’t free. Without a server, you can’t share a screenshot with one click — you have to download, then paste it somewhere. Without an account, you can’t roam your captures between devices. Without analytics, we can’t always tell which features matter and which are just clutter.
We accept those tradeoffs gladly. The alternative — a tool that watches you to improve itself — is the one we wanted to escape.
What’s next
We’re bringing the same architecture to a desktop app (built on Tauri) so that the macOS, Windows and Linux versions inherit the same promise. Same editor, same theme, same local-only storage — just a different shell around it.
If you build software, we’d love to compare notes. Local-first is having a moment, and small tools like Snappy are a good place to prove the model.