Privacy disclosures
The Chrome Web Store privacy-practices tab asks what user data your extension collects, category by category. This page maps the kit’s actual collection footprint to those categories, with template answers you can paste.
What the kit actually collects
Section titled “What the kit actually collects”| data | where it goes | notes |
|---|---|---|
| Auth profile (email, name, avatar, uid) | Firebase Authentication | only when the user signs in; anonymous-first mode creates an account without personal info |
| Billing state (plan, subscription status, Stripe customer ID) | Stripe + Firestore customers/{uid} |
only when the user purchases; card data never touches your code (Stripe Checkout hosts it) |
| Usage counters (feature/action counts, keyed by uid) | Firestore usage/{uid} |
gate events; no page URLs or content |
| Crash reports (error message, stack, surface name, extension version) | Firestore errors |
consent-gated (“Share crash reports” toggle), keyed by a random install ID, never a uid; content scripts report only errors whose stack points at the kit’s own bundle |
What the kit does not collect, by construction: no analytics, no
browsing history, no host-page content, no keystrokes, no location. Support
logs never upload (they live in storage.session and export only when the
user explicitly copies them).
The questionnaire, category by category
Section titled “The questionnaire, category by category”CWS asks “Which of the following types of user data do you collect?”. The answers for the unmodified kit:
| CWS category | collect? | why |
|---|---|---|
| Personally identifiable information | Yes | email address and name via sign-in (Firebase Auth) |
| Health information | No | n/a |
| Financial and payment information | No | purchases happen on Stripe-hosted Checkout pages; the extension never sees payment details. Disclose subscription status under PII/authentication if in doubt |
| Authentication information | Yes | Firebase auth credentials/tokens (background-only; never synced or exposed to pages) |
| Personal communications | No | n/a |
| Location | No | no location APIs, no IP collection by the extension |
| Web history | No | no page URLs are ever collected |
| User activity | Yes, minimal | in-extension feature-usage counters and, with consent, crash reports. No network monitoring, no clicks/keystrokes on pages |
| Website content | No | content scripts read the page only to render local features; nothing page-derived is transmitted |
Template free-text justification (adapt the product name):
We collect an account profile (email, name) through Firebase Authentication when the user signs in, subscription status through Stripe when the user purchases, and in-extension feature-usage counts tied to the account. Crash reports (error message and stack trace only, no browsing data) are collected only if the user opts in from Settings. We do not collect browsing history, page content, or any data from the websites the user visits.
The certification checkboxes
Section titled “The certification checkboxes”You must certify all three; the unmodified kit satisfies them:
- “I do not sell or transfer user data to third parties, apart from the approved use cases”: data goes only to your own Firebase project and Stripe (a service provider processing payments).
- “I do not use or transfer user data for purposes that are unrelated to my item’s single purpose”: auth, billing, usage gating, and opt-in crash reporting all serve the extension’s function.
- “I do not use or transfer user data to determine creditworthiness or for lending purposes”: trivially true.
Pre-submission checklist
Section titled “Pre-submission checklist”- Privacy policy is live at the URL in
site.config.ts → urls.privacyand describes the four data types in the table above. - “Share crash reports” default matches your policy copy (the kit
ships it as a consent toggle in Settings; flip the default in
apps/extension/utils/settings.tsif your policy is strictly opt-in). - You haven’t added an analytics or error SDK without updating this mapping (a script-injecting SDK is also a remote-code rejection).
- If you dropped modules, drop the corresponding disclosures: no
billing→ no Stripe/billing rows; noerror-reporting→ no crash report rows; no auth-requiring features in use → reconsider the PII rows. - Firefox/Edge: reuse this content in AMO’s data-collection section and Partner Center’s privacy fields; the facts are identical.
