Docs
Cloud sync
How the extension syncs scan data to the cloud once the Pro tier ships.
The free Chrome extension is local-first. Every scan stays in your browser via chrome.storage.local. When the Pro tier ships, this page describes how the cloud-sync layer works on top of the local store.
Planned Firestore data model
Scans
Path: users/{uid}/scans/{scanId}
{
"url": "https://example.com",
"title": "Example - Home",
"hostname": "example.com",
"score": 87,
"tags": { "og:title": "Example", "og:description": "..." },
"audit": { /* AuditResult object */ },
"scannedAt": "2026-05-20T12:00:00Z"
}
Shares
Path: shares/{shareId}
{
"uid": "abc123",
"scanId": "xyz789",
"snapshot": { /* ScanSnapshot - PII stripped */ },
"createdAt": "2026-05-20T12:00:00Z"
}
Planned security rules
- Users can only read/write their own scans:
users/{uid}/scans/{scanId}. - Shares are publicly readable, but only the owning user can create or delete them.
- The
uidfield on share docs is validated on create to match the authenticated user.
Planned PII stripping
When creating a share, fields whose key matches email, phone, or address are removed from the snapshot. This runs on the client before writing to Firestore.
Planned extension integration
Auth via Firebase Auth, same project as the website. The extension reads users/{uid}.plan on auth-state change:
- pro or trial: scans auto-sync.
- free: local-only. Extension shows an “Upgrade to sync” prompt (subject to engagement-threshold rules).
Until Pro launches, none of this is active. Everything runs locally.