SnuffleStudy Privacy Policy
Last updated: October 6, 2026
This page describes what SnuffleStudy actually does with your data, in plain terms. Inside the extension, the Account page's "Delete account" action removes everything listed here as belonging to your account.
On this device
- chrome.storage.local — your extension settings, a snapshot of your currently active study session, your hard-block passcode (stored as a hash, not plaintext), and small timestamps the extension uses to know when it last checked for friend activity.
- IndexedDB — your full session history and per-session events (one local database), and your tasks (a second local database).
None of this leaves your device unless a specific feature below sends it somewhere — most of it never does. Uninstalling the extension removes it.
Supabase (our backend)
SnuffleStudy uses Supabase for accounts, the social/accountability features, and file storage. You only send data here at all if you sign in.
- Auth — your email address, used only for email one-time-code sign-in and password-based sign-in.
- Postgres (database) — if you add friends, use study rooms, or audio nudges: your friend connections, invite codes, per-friend privacy toggles, generic session-status events (session started/paused/distracted/completed, etc. — never a site name or your goal text, and only synced at all if you turn on "Share session activity" in Settings), unlock requests and temporary-passcode requests you send or receive, study rooms and who's in them, audio nudge metadata and who you sent one to, your daily digest numbers, nudges, and a short-lived rate-limit timestamp for the AI coaching feature.
- Storage — audio nudge recordings: short voice clips you record and send to friends or into a study room.
- Realtime — used to deliver live presence and audio nudge broadcasts inside a study room while you're in it; not separately persisted beyond the Postgres rows above.
Anthropic (Claude), server-side only
If you're signed in and get distracted during a focus session, SnuffleStudy can ask an Anthropic model to generate a short, in-character coaching line. The request (handled entirely on our server — your device never talks to Anthropic directly) sends Anthropic your study goal's text and the hostname of the site you got distracted on, purely to generate that one sentence. SnuffleStudy does not store this text beyond a short per-request rate-limit timestamp; handling of the request itself is subject to Anthropic's own API data-use terms.
Resend (email), server-side only
If you request a temporary passcode from a friend to unlock a site during a locked session, SnuffleStudy emails that friend (via Resend) to let them know, including the hostname you're asking to unlock. This only happens when you initiate that request.
LiveKit (video/audio calls)
Joining a Study Room mints a short-lived (one hour), single-use access token scoped to your identity and that specific room. Your camera and microphone connect directly to LiveKit's video infrastructure for the call itself — SnuffleStudy's own servers never see or store your audio/video stream.
What we don't do
No analytics or advertising trackers, no selling your data, no browsing history sent anywhere unless you explicitly opt into "Share session activity" with your own friends — and even then, only generic event types, never site names or your goal text.
Deleting your data
The Account page's "Delete account" action permanently removes every row across every table above tied to your account, your audio nudge recordings from Storage, and your account itself — irreversibly. On-device data (chrome.storage.local, IndexedDB) is separate and local; uninstalling the extension removes that.
Contact
Questions about this policy or your data can be filed as an issue at github.com/chloewychan/SnuffleStudy/issues.