Privacy Policy

Effective 22 September 2026 · Applies to the Gray Hole browser extension, the grayhole.tech site and related services

The itemised technical list — what each browser permission is for, every network request the extension can make, and which fields cloud sync writes — is in Permissions & network. This page covers the data itself.

1. The short version

Gray Hole is a local-first tool by default. Your clips live in your own browser's IndexedDB and never pass through our servers — because we do not run servers that collect them. Cloud sync is optional: clips are mirrored to the cloud only after you register and sign in on the account page.

We run no ads, do not read your browsing history, and do not train any models. The extension contains no telemetry at all. The website uses a small self-built funnel counter and Google Analytics 4 (Section 5); both cover the website only and never collect clip content.

2. What we collect

DataWhen it existsWhat it contains
Your clips Always, but only on your machine Text and Markdown copy, title, source information, tags, collections, and the bytes of any image you saved. All of it stays in your browser; we never receive it
Email addressOnly if you registerUsed to sign in, to reset your password, and for essential account notices
Password hashOnly if you registerDerived irreversibly by Supabase Auth before storage. Neither we nor anyone who can read the database can see the plaintext, and it cannot be recovered from the hash
User IDOnly if you registerA random UUID that scopes and isolates your rows in the cloud tables
Registration time and display nameOnly if you registerThe display name is generated from the local part of your email address
Cloud mirror of your clipsOnly if you register and turn on cloud syncField-by-field list in Section 3 of Permissions & network
Website analyticsOnly when you visit this siteThe self-built counter records event name, timestamp, page path, site language, a random ID, a one-way IP + User-Agent key and a crawler flag. GA4 processes page and browser/device analytics. Neither receives clip content — see Section 5

We never ask for, and never accept, a phone number, real name, identity document, avatar, or any social account authorization.

Source URLs can contain private information. So that a clip can find its way back to the original page, we keep the page URL. If that URL carries a session ID, query parameters or a one-time token, those are stored along with it. Treat exported JSON backups and the cloud mirror as content that is not safe to share publicly.

3. Where your data lives

DataLocationCondition
Clip text, titles, tags, collections, image bytesIndexedDB in your browser (database tata-clipper-v1)Default, always
Email, password hash, user ID, clip mirrorA Supabase-managed database in the western United States (Oregon)Only if you register
Access tokenExtension: chrome.storage.local; website: this site's localStorageOnly if you register

The static pages of this website are distributed through Cloudflare's global edge network and do not store your account data.

Registering sends your data across borders. If you are not in the United States, registering means your email address and clip mirror are transferred to and stored on servers in the United States. We chose that region for service availability, but you should know this — especially if you plan to clip material involving personal information, trade secrets, or content governed by local regulations.

If you don't want data to leave your region, don't register. Without an account, every feature of Gray Hole — capturing, organising, searching, exporting — runs entirely on your machine, and nothing leaves your device. Local-first is the default here, not a downgraded mode.

4. What we don't do

5. The website's anonymous funnel counter

The website — and only the website — records which page step was opened and which key button was clicked, so we can see where the funnel gets stuck. The self-built counter records only: event name, timestamp, page path, site language, and a random ID kept in your browser; if you are signed in, the user ID is attached so the same person can be aligned across devices.

To exclude crawlers, the database derives a one-way anonymous key from that request's IP address and User-Agent and records whether the UA matches common crawler or automation markers. Neither the raw IP address nor the raw User-Agent is stored; the key is used only to deduplicate the dashboard by IP + UA. The website also uses Google Analytics 4 to record page views and the same bounded event names, such as get_started_view; GA4 never receives clip text, titles, source URLs, search terms or account details. With Do Not Track enabled, the website neither loads GA4 nor sends its self-built funnel event. The extension has nothing of the kind.

Rows are deleted automatically after 180 days; to remove the ones tied to you sooner, see Section 7.

6. Third-party services

ServicePurposeData it touches
SupabaseAccount authentication, cloud sync database hosting, and storage for the anonymous funnel eventsOnly after you register: email, password hash, user ID, clip mirror; funnel events include anonymous event-level data, a one-way IP + UA key and a crawler flag, but not raw IP or UA. Database region: western United States (Oregon)
CloudflareHosting the grayhole.tech static siteOrdinary request logs from visits to this site (IP, User-Agent)
Google Analytics 4Aggregate analysis of website pages and funnel eventsPage paths, bounded event names and browser/device analytics. It receives no clip content, source URLs or account details, and is not loaded when Do Not Track is enabled
ResendSending account verification and password reset emailsYour email address, plus the metadata needed to deliver the message

These providers process data only as needed and gain no rights to your data through our business.

7. Retention and deletion

8. Security

One thing we should say plainly: we cannot promise absolute security. Any system can be breached. What we can do is keep the attack surface as small as possible — no surplus data, no surplus dependencies, no surplus permissions.

9. Minors

Gray Hole is not directed at children under 13 and does not knowingly collect personal information from children. If you are a parent or guardian and find that your child registered an account without your consent, write to us and we will delete the account and its data.

10. Changes and contact

If this policy changes materially, we will update the effective date at the top of the page and post a notice on the site's home page for at least 14 days. Changes that widen what we collect will additionally be announced by email to account holders before they take effect.

Privacy questions, data access and deletion requests: [email protected]
General support and bug reports: [email protected]

Related documents: Permissions & network (technical annex), Terms of Service.