Privacy Policy
Last updated: 29 May 2026 · Effective on first install of PageMate
The short version. PageMate runs entirely on your device. We don't have a server. We don't collect, transmit, or store your screenshots anywhere we control. We don't build a profile of you, sell anything to advertisers, or use your captures to train any model. Free-tier outbound network calls: zero. Pro adds one: license-key validation against our payment provider.
1. What PageMate does
PageMate is a screenshot extension that runs locally inside your browser. It:
- captures screenshots of your browser tab, window, or screen at your request;
- scans the captured DOM — including iframes (even cross-origin ones like Gmail Chat or embedded docs, where each frame scans its own content locally) and open shadow roots — for sensitive patterns: emails, phone numbers, credit cards, API keys, PII / PHI identifiers like SSN, Aadhaar, MRN;
- auto-applies a redaction (blackbox / pixelate / blur) over each match;
- lets you annotate, crop, and export the result as PNG / JPG / WebP / PDF or copy it to your clipboard.
All of this happens in your browser. The captured image bytes never leave your device unless you explicitly export, copy, or download them.
2. What we store, and where
| Data | Where | Why |
|---|---|---|
| Your settings (detector toggles, redaction style, whitelist, recent colours, format preference, tour-seen flag) | chrome.storage.sync | So your preferences persist and sync across Chromes you're signed in to. |
| Capture history (thumbnails + source images) | IndexedDB on your local device (pagemate-history) | So the gallery can re-open past captures. Free: most recent 10. Pro: unlimited. |
| Active capture bundle (the screenshot you're editing) | chrome.storage.session | Plumbing between capture and editor. Wiped when the browser closes. |
| Dev / tier override flags | chrome.storage.local | Internal flags only set when you toggle them in Options. |
| Pro only — license key + paid tier status + last-validated timestamp | chrome.storage.local | So we don't re-hit the license server on every popup open. Re-validated every 24 hours. |
We do not store:
- the contents of any web page you visit, beyond the screenshots you explicitly capture;
- which sites you've captured on (no analytics, no telemetry, no funnel tracking);
- your IP address, email, or any account identifier (Free users never give us any of these);
- any backups, copies, or cloud mirrors of your screenshots.
To wipe everything PageMate has stored, uninstall the extension from chrome://extensions/.
3. Network requests
PageMate makes zero outbound network calls in the Free tier. The extension is fully offline-capable.
Pro users only, in two situations:
- License activation — POST your license key to the payment provider's
/licenses/validateendpoint. The provider returns yes/no plus the linked email + variant + expiry. - License re-validation — same call, on schedule every 24 hours.
We never transmit your captures, annotations, or any page content as part of these calls. The only payload is your license key.
4. Permissions and why we need them
4.1 The big scary-sounding one: "Read and change all your data on all websites"
When you install PageMate, Chrome displays this permission. It sounds much worse than it is.
What Chrome's wording literally means — the extension can read the visible content of pages you visit (DOM, text, structure) and modify those pages (inject elements, change styles). This is the same string shown for every screenshot tool, password manager, ad blocker, grammar checker, and translation extension on the Web Store.
What PageMate specifically does with it:
- Inject a small (~40 KB) content script so the auto-redactor can run when you trigger a capture.
- Read visible text on the page during a capture, to find emails, phone numbers, credit cards, SSNs.
- Walk into iframes — including cross-origin ones like Gmail Chat or embedded docs (each frame scans its own DOM locally and returns only the redaction rectangles, never its content) — and open shadow roots.
- Draw overlays on the page during a capture: the region-select box, the element-picker outline.
What PageMate explicitly does NOT do with it — physically can't, given the rest of the permission set:
- ❌ Send your page content anywhere. The Free tier makes zero outbound network calls.
- ❌ Read your cookies (we don't have the
cookiespermission). - ❌ Read your browsing history (we don't have
history). - ❌ See your network requests (we don't have
webRequest). - ❌ Read your bookmarks (we don't have
bookmarks). - ❌ Identify you (we don't have
identity). - ❌ Track which pages you visit over time. We do request
webNavigation, but use only its one-shotgetAllFramescall at the moment you capture — to list the frames inside the tab being captured. We never register navigation-event listeners, so we can't observe your browsing as it happens. - ❌ Read passwords. Chrome doesn't expose them to ANY extension.
- ❌ Track you across sites. No analytics, no telemetry, no remote server.
- ❌ Inject ads.
Why we don't ask for less. The auto-redactor's whole reason to exist is that it sees the page text before you screenshot it, so it can blur sensitive bits. Without <all_urls>, that only works on tabs where you explicitly click PageMate first.
4.2 Full permission list
| Permission | Chrome shows | Why |
|---|---|---|
host_permissions: <all_urls> | "Read and change all your data on all websites" | Auto-redactor must see page text. See § 4.1. |
activeTab | (folded into above) | Call chrome.tabs.captureVisibleTab for the current tab's screenshot. |
scripting | (folded into above) | Inject the in-page scanner + region overlay + element picker. |
downloads | "Manage your downloads" | Save exported screenshots to your Downloads folder. We can only WRITE downloads. |
desktopCapture | "Capture content of your screen" | Powers Choose Window mode — opens Chrome's native source picker. |
storage | (silent) | Persist your settings, recent colours, whitelist. |
offscreen | (silent) | Reserved for future on-device AI Pro features. Unused at runtime in Free. |
contextMenus | (silent) | Adds the right-click PageMate submenu. |
webNavigation | (silent) | Enumerate the frames inside the tab you're capturing (getAllFrames) so the auto-redactor can reach cross-origin iframes. One-shot at capture time — no navigation tracking. |
4.3 Permissions we explicitly do NOT request
For comparison, PageMate does NOT ask for: tabs, webRequest, cookies, bookmarks, history, identity, clipboardRead, topSites, geolocation, notifications. Some popular screenshot extensions request several of these. We don't need any of them.
5. Third-party services
| Service | Used for | Data shared |
|---|---|---|
| Dodo Payments | Pro tier — checkout + license-key validation | Email + payment details (handled by Dodo; we don't see card numbers). |
| Chrome Web Store | Distribution + auto-update | Standard browser behaviour. |
No analytics. No A/B testing. No session-replay. No crash reporters. No remote feature flags. No ad networks.
6. Children
PageMate is not directed at children under 13. We don't collect personal information at all.
7. Changes to this policy
We'll bump "Last updated" and publish material changes on the Chrome Web Store listing. Material changes that would affect what data leaves your device will trigger an in-extension notice on next launch.