Skip to main contentBeta

Reelic is now in open beta. Free while we shape it with you.

Join the beta
Reelic
Back to blog
Privacy1 week ago4 min read

Privacy by default: no servers, no accounts, no telemetry

Most "private" products mean "we are nice about your data." Reelic is built so that we never have it in the first place. This is the honest version of how that works, what runs locally, what gets sent over the network, and how you can verify the whole thing yourself.

Lock icon with the words on-device and zero telemetry on a dark background

The default everyone should expect

Local-first means the data lives on the device that produced it, and a copy only leaves with explicit user action. We made it the default rather than an opt-in.

Concretely: your saves index lives in your browser's IndexedDB and Chrome's storage area. It is namespaced to the Reelic extension. Uninstalling the extension removes the index. Clearing browser data clears it too. There is no second copy on a server we control.

Privacy Shield Status
Local Database StorageActive (On-Device)
Remote Server SyncingDisabled (Zero Server)
Telemetry & TrackingBlocked (No tracking)

What we never see

A short list of things that never leave your machine.

Reel captions and hashtags. The text we index for search stays in your browser. Search queries run locally, against the local index.

Thumbnails and video URLs. Reelic does not download videos. It links back to Instagram for playback, so the bytes only travel from Instagram to your browser, never through us.

Creator handles. The accounts you have saved from are part of your local index. We do not log them.

Individual reels. We never store, count, or log a list of specific reels you have saved. There is no row in any database that names a reel from your library.

What we do send, only if you opt in

Two features need a tiny amount of network traffic to work: the global leaderboard and the taste twin. Both require comparing your library against other libraries. To make that possible without leaking your reels, we send aggregates.

The aggregate payload looks like this: a display name you choose, your total save count, your top 20 creators by save count, and your top 20 hashtags by save count. That is it.

No reel-level data. No URLs. No captions. No thumbnails. The aggregates are enough to rank curators and to find matching libraries, and not enough to reconstruct what you have saved.

Both leaderboard and taste twin are opt-in. The default is off. You can toggle them off at any time from the side panel and the aggregates are deleted.

Why we built it this way

The alternative is a breach waiting to happen. Any product that stores a copy of your Instagram saves on a server is one S3 misconfiguration away from a headline. Most of the time the breach is not malicious, it is just bad luck. The safest data is the data we never have.

The second reason is simpler. Reelic does not need a server to do its job. The interesting computation, indexing and search, runs faster locally than it would on a remote machine. Building it the local-first way was both more honest and more performant.

How to verify it yourself

Trust is good. Verifiable trust is better. A five-minute audit you can run on your own machine.

Open the Reelic side panel and the Chrome DevTools network tab side by side.

Run a search. Watch the network tab. You will see zero outbound requests. The search runs locally.

Visit your saves page. Watch the network tab. You will see Instagram's own requests for the page. No requests from Reelic to any external server. The indexing happens in the page.

Toggle the leaderboard on. Now you will see one outbound request to Reelic's aggregator endpoint, containing only the aggregate payload above. Toggle it off, and the request stops.

No magic. No hidden calls. The whole thing runs in front of you, and you can watch it work.

More from the blog

Stop scrolling. Start searching.

Add Reelic to Chrome and turn your Instagram saves into a searchable library in under a minute.