Privacy Policy
Last updated: 3 October 2026
This policy covers the WindowShoppings browser extension (Chrome and Firefox), the website at windowshoppings.com, and the WindowShoppings iPhone app. It describes what data each one collects, how the data is used, stored and shared, and the choices you have.
1. Who we are and how to contact us
WindowShoppings is published by Samier Gonzalez, an individual developer. For privacy questions, access or deletion requests, or any other request about this policy, email samgonz021@gmail.com. General support questions can also go to support@windowshoppings.com.
2. Summary
WindowShoppings lets you save products from online stores, organize them into collections, and get alerts when prices drop or items come back in stock. WindowShoppings for iPhone is available on the App Store.
- Your saved products are stored on your own device (in your browser, or in the iPhone app) unless you choose to create an account.
- If you sign in, your library is backed up to your own private account. Other accounts cannot read it. The exceptions are content you choose to share with a share link (see Share links) and collections you choose to share with invited collaborators (see Collaborative collections).
- We do not sell your data, neither data that identifies you nor aggregated data. We show no ads and build no advertising profile.
- If you make a collection collaborative, the people you invite can see and edit its items, notes and tags, and see each other's display names and profile photos. Your target prices, priorities, alerts and price history stay private to you (see Collaborative collections).
- Anonymous usage counts, account sign-in, feedback and price comparison are all optional and off until you act.
- Some links may be affiliate links: if you buy after clicking one, we may earn a small commission at no extra cost to you (see Affiliate links).
- We do not record your browsing history or which pages you visit.
3. Data we collect
Each subsection below says what we handle, where it comes from, when, and whether it is automatic or opt-in.
3.1 Website content read from retailer pages (extension)
What: product name, page URL, image URL, price and currency, availability, and the selected size, colour or other variant.
From where and when: the extension's content script runs on HTTPS pages you open, so that it can detect whether the page is a product and offer a save control. Detection happens in your browser. Nothing is stored or sent anywhere just because you visit a page. The details above are stored only when you save a product (or, for a product you already saved, when a scheduled check re-reads its page, see 3.9).
Automatic or opt-in: the detection is automatic on HTTPS pages. Saving is opt-in, because it happens only when you choose to save. Pages loaded in private or incognito windows are not used, because the extension does not run there.
3.2 Content you enter
What: collection names, notes, tags, priorities, target prices, purchase status, notification preferences and settings, together with the saved-product details from 3.1 and the price history and check diagnostics the extension records for them.
From where and when: you enter it in the extension, the website or the iPhone app. It is stored on your device. It also goes to your account backup only if you are signed in (see 3.3). Please avoid putting sensitive personal information in notes or tags.
Automatic or opt-in: opt-in. You provide it.
3.3 Account data (optional)
What:
- Email and password sign-in: your email address and a hash of your password (we never store the password itself), plus your first and last name if you provide them.
- Sign in with Google: your Google account identifier, email address and display name, returned by Google. We do not receive your Google password and do not read your Google contacts, mail or any other Google service data.
- Sign in with Apple: your Apple account identifier, email address and name, returned by Apple when you authorize sign-in. Apple provides the name only the first time, and may provide a private relay email address instead of your own. We never receive your Apple password.
- Your saved products and collections (3.1 and 3.2), as a cloud backup, so you can view them on other devices and on this website.
- An optional profile photo, stored in your account's own storage area.
When: only after you create an account or sign in. In the extension, Google and Apple sign-in use the browser's identity API only to open that provider's consent screen and receive a sign-in token.
Automatic or opt-in: opt-in. Using the extension or iPhone app without an account (the iPhone app calls this guest mode) keeps everything on your device. If you later sign in on the iPhone app, you can choose whether to upload your on-device library.
3.4 Account activity (last-active timestamp)
What: one last-active timestamp linked to your account, stored in Supabase.
When: while you are signed in, when you open or return to the iPhone app, open or return to a visible website page, or open or interact with the extension's popup, settings, welcome screen or floating save controls. Restoring your signed-in session while one of these is visible can also update it. Updates are limited to once every five minutes and replace the previous timestamp. This helps us understand how recently accounts use WindowShoppings.
What it is not: we keep no activity history, no separate timestamp per platform, no session duration, and no record of which pages, screens or products you view. Loading or browsing retailer pages does not trigger it. Signed-out or guest use, private-window use, background sync, scheduled price checks and token refreshes alone do not update it.
Automatic or opt-in: automatic once you are signed in, and never before. Signing out stops it on that device. Deleting your account deletes the timestamp. It is not sold or shared for advertising. In Firefox, extension activity requires the browser's optional technical-and-interaction data permission, which you can allow or revoke in the extension's Settings separately from anonymous counts. Turning off anonymous sharing in Firefox also revokes that permission. These extension controls do not change website or iPhone activity reporting.
3.5 Anonymous, aggregate analytics (extension, optional)
What: counts of fixed events covering onboarding, the first save, the first verification outcome, price-check outcomes, the first delivered alert, activity after seven days, installation, one active-day tally per day, and removal. Each event contains only its fixed event name. The counts contain:
- No user ID, account, name or email.
- No retailer, product identifier, URL, URL hash, page contents or browsing history.
- No product names, prices, notes or tags.
- No stable device identifier or account-linked event history.
They are stored only as daily totals by UTC day and event name. There is no per-user or per-device event log.
When: only after you turn on the toggle "Share anonymous usage data to improve WindowShoppings" in the extension's Settings → Data & privacy page. It is off by default in every region. While it is on, the extension registers an uninstall page with the browser, so that removing the extension is counted as one anonymous removal. Turning the toggle off clears queued events, stops future analytics requests and unregisters that page.
Network data: like any internet request, an analytics request exposes ordinary network metadata, including your IP address, to our hosting provider while it is routed. Our analytics service uses a short-lived, rotating keyed hash for abuse limits and does not store raw IP addresses in its application database. The provider may process infrastructure logs. We use these counts only to improve WindowShoppings. The iPhone app sends no anonymous extension analytics and contains no third-party analytics or advertising SDKs.
3.6 Feedback and support messages (optional)
What: the message type, the message text, the email address you optionally enter, the extension version, your browser's user-agent string, and, only when you send from the popup with "include this page" checked, the URL of the page you are on.
When: only when you press Send in the extension's Feedback form. Nothing is sent before that. The message goes to an endpoint on our backend provider (Supabase) and is forwarded by email to our support mailbox. We use it only to answer you and fix reported problems. It is not linked to your saved-product library.
Automatic or opt-in: opt-in.
3.7 Compare prices requests (extension, optional)
What: for a saved product that carries a standard barcode (GTIN), the barcode together with the product's brand and name. The request contains no account identity, device identifier, saved library or product URL, and is sent without cookies. The returned offers are cached by barcode only and are not associated with you.
When: only when you press Compare prices for a product. We send the request to a comparison endpoint we host on Supabase, which queries a third-party shopping-data provider for offers from other retailers. For a product without a barcode, or when no offers are found, the extension instead opens Google Shopping with the product name and, where available, a product identifier as the search query. Google receives that query under its own privacy policy.
Automatic or opt-in: opt-in.
3.8 Support links
When you press Support me on Ko-fi in the extension, your browser opens Ko-fi, which receives ordinary visit information under its own privacy policy. We send nothing to Ko-fi on your behalf. This happens only when you press the button.
3.9 Scheduled price and availability checks (extension)
What: for each active saved product, the extension requests the saved product page from the retailer. This reveals the requested URL and ordinary network data, such as your IP address, to the retailer.
When: at the top of each hour while your browser and device are available, or when you start a manual check. The requests come directly from your browser and omit your login cookies and credentials. Price changes require two successful observations before the saved price changes or a price alert is sent. Restock alerts are sent only when WindowShoppings can confidently match the saved product or exact variant. Checks can be delayed or fail while the browser is closed, the device is asleep, or the retailer blocks automated requests.
Automatic or opt-in: automatic, but only for products you have explicitly saved. Notifications are generated on your device according to your settings, and you can disable them, delay them to a digest, or set quiet hours.
3.10 iPhone app: push notification token
If you turn on notifications in the iPhone app, we ask iOS for permission and store your device's push notification token (an identifier issued by Apple) linked to your account. We use it only to send the alerts you asked for, such as a price drop or a restock. You can decline the permission, or turn notifications off in the app or in iOS Settings, and we stop sending them. The token identifies a device for delivery only. It is not an advertising identifier and is not used to track you.
3.11 Share links (optional)
If you are signed in, you can create a share link for a whole wishlist or collection, or for items you select. Anyone who has an active link can view the shared content without signing in, so share links only with people you trust. You choose how long a link works when you create it: 24 hours, 30 days, or never expires. The lifetime cannot be changed afterwards. You can revoke a link at any time from the share links list in the iPhone app, the browser extension or your web dashboard. Revoked and expired links stop working, and share links are removed when you delete your account.
A shared link shows its title (such as the collection or wishlist name), when it expires, and each item's name, link, image, brand, size, colour, prices and availability. A link to a collection is live: recipients see its current items, including ones you add later. Items you mark as purchased, archive or delete are not shown. A link does not show your email address or other account details. A signed-in recipient can save a copy of the shared items to their own account. That copy belongs to them and stays after you revoke the link.
3.11a Collaborative collections (optional)
If you are signed in, you can turn a collection into a collaborative collection and invite other signed-in WindowShoppings users to work on it together. Unlike a share link, collaborators are signed-in people you invited, and they can change the collection. Invite only people you trust. Nothing is shared until you choose it, and a regular share link never makes a collection collaborative.
What collaborators can see and do:
- Every member can see and edit each item in the collaborative collection: its name, link, image, brand, size, colour, prices and availability, and the notes and tags on it. Every member can add items and edit or remove any item, including items added by someone else. Please avoid putting sensitive personal information in notes or tags of a collaborative collection.
- Every member can see who else is on the collection, shown by display name and profile photo. Your email address is not shown to other members. We also record which account added each item.
- The items of a collaborative collection are stored once, in the collection's shared storage on Supabase, not as separate copies in each member's library. They are not part of any member's private backup.
What stays private: your target prices, priorities, restock alerts, price history and the price-check state of an item are never stored in the shared collection and are not shown to other members. For items already in your collection when you make it collaborative, the owner's private values are kept separately where other members cannot read them, and are returned to you if you stop sharing. Price alerts do not run on collaborative items yet.
Invite links: you choose how long a collaborative invite link works when you create it: 24 hours, 30 days, or never expires. A person must sign in to join. Before signing in, anyone with the link can see a read-only preview that shows the collection name, how many people are in it, and the items' display details (but not notes or tags). An expired link stops new people from joining, but does not remove people who already joined. You can replace the invite at any time, which revokes the previous link. Stopping sharing also revokes the link. Joining is rate limited, and the number of collaborators and items per collection is capped.
Who can remove whom:
- You can leave a collaborative collection you joined at any time.
- The owner can remove any collaborator. A removed person cannot rejoin with a link unless the owner allows it. The owner cannot leave their own collection, but can stop sharing it. A shared collection cannot be deleted until its owner stops sharing it.
- Stop sharing (owner only) turns the collection back into a private collection. Every item currently in it, including items collaborators added, becomes part of the owner's private library as ordinary items. All collaborators lose access, and the invite link stops working.
Items you added to someone else's collection: they belong to that collection, not to you. If you leave, are removed, or delete your account, the items you added stay in the collection for the remaining members, and we no longer link them to your account after you delete it. If the owner deletes their account, the collection and all of its items are deleted and every member loses access.
3.12 Website data
The website at windowshoppings.com uses the same account as the extension and iPhone app, so signed-in pages handle the account data and library described above through Supabase. Like any website, our hosting provider receives ordinary network metadata such as your IP address. Our public marketing and guide pages use Skimlinks for affiliate links (see Affiliate links). We do not load Skimlinks on login, password-reset, account, private dashboard or shared wishlist pages.
4. How we use data
We use data only for WindowShoppings' single purpose: letting you save products from retailer pages, organize them, and monitor their prices and availability. Concretely, that means saving and organizing your library, running price and availability checks, sending the alerts you asked for, backing up and syncing your library if you sign in, authenticating you, answering your messages, preventing abuse, and improving the product from anonymous counts and the account last-active timestamp.
We do not use your data to profile you, to advertise, to make credit or lending decisions, or to make legal or similarly significant decisions about you.
5. How we store and protect data
- Local browser storage. By default the extension keeps saved products, collections and settings in your browser's extension storage. The iPhone app keeps guest-mode data on the device.
- Browser sync storage. Supported records may also be stored through your browser provider's extension-sync service when it is available and enabled for your browser profile. It is handled under that provider's terms.
- Supabase. If you sign in, your account data, library backup, profile photo, push token, share links, collaborative collections and their membership, last-active timestamp and (via our endpoints) feedback messages are handled by Supabase, which hosts our database, authentication and endpoints. We operate this backend, and we look at account data only when you ask us for support, for security or abuse investigation, or to comply with law. Row-level security means each account can read or write only its own rows, except for content you share through a share link and the shared items of collaborative collections, which every member of that collection can read and edit. Members of a collaborative collection cannot read each other's private libraries.
- In transit. All data we send to our services, and all product and service URLs the extension uses, travel over HTTPS. Background checks omit retailer cookies and credentials, and the extension runs no remotely hosted code.
Retention.
- Local data: until you remove an item, collection or tag, use Delete all WindowShoppings data, uninstall the extension or clear browser storage.
- Browser-synced data: until you delete it with Delete all WindowShoppings data or through your browser account controls.
- Account data, library backup, profile photo, push token and share links: until you delete them or delete your account.
- Collaborative collections: the shared items stay until a member removes them, the owner stops sharing (the items then become the owner's private items), or the owner deletes their account. Items you added to someone else's collection stay with that collection when you leave, are removed or delete your account. Your membership and your removal record are deleted with your account.
- Last-active timestamp: one value that replaces the previous one. It is deleted with your account.
- Anonymous analytics: stored only as daily totals with no per-user data.
- Feedback messages: only as long as needed for support.
- Compare prices results: cached by barcode only and not associated with any user.
Deletion. You can remove individual products or collections at any time. Signing out stops syncing and removes the session from that device. The extension's Delete all WindowShoppings data button clears the device's local and browser-sync records and signs the device out, but does not by itself erase the copy already backed up to your account. To delete your account and its cloud data permanently (backup, profile photo, share links, collaborative collections you own, your memberships in others, device tokens and the last-active timestamp), use Account > Data & privacy on the website, the account deletion control in the extension's settings, or Account > Delete Account in the iPhone app. Deletion applies across the extension, website and iPhone app and cannot be undone. If self-service deletion is unavailable, contact us.
6. How and when we share data
We do not sell your data and we do not share it for advertising. We do not sell, rent or trade data, whether it identifies you or is aggregated. The only recipients are these:
- Retailers whose pages you saved: during scheduled or manual price checks they receive the requested URL and ordinary network data such as your IP address, without your login cookies. They act under their own privacy policies.
- Supabase, our backend provider and data processor: it hosts account data, library backup, feedback messages, and the comparison and analytics endpoints, as described in section 3.
- The third-party shopping-data provider behind Compare prices: it receives, via our endpoint, only the barcode, brand and product name. It does not receive your account, device identifier, library or product URL.
- Google Shopping: if a comparison has no barcode or no results, and you are sent to Google Shopping, Google receives the product name and, where available, a product identifier as the search query.
- Google and Apple, for sign-in: they confirm your identity and send us the account fields listed in 3.3. We send them nothing about your library.
- Ko-fi: receives ordinary visit information only when you open the support page.
- Affiliate networks and retailers (including Skimlinks on public website pages): see Affiliate links.
- People you share with: anyone with a share link you create can see what that link shows. Members of a collaborative collection you create can see and edit its items, notes and tags, and see the display names and profile photos of its other members.
- Our hosting and push providers: ordinary network metadata, and for iPhone notifications Apple delivers the push using your device token.
We may also disclose data if required by law, or as part of a merger, acquisition or sale of assets, in which case we would give notice before the data became subject to a different privacy policy.
Affiliate links
WindowShoppings is supported by affiliate commissions rather than by selling your data. Some links to retailers, from the extension or this website, may be affiliate links. If you click one and go on to buy something, the retailer or an affiliate network may credit that purchase to WindowShoppings and pay us a small commission. This is at no extra cost to you, and it never changes the products or prices you see.
When you follow such a link, the retailer or affiliate network receives the ordinary information any web link produces (such as the referring link, your IP address and any affiliate tag) and may set its own cookies, under its own privacy policy. We use this only to get credit for a purchase. We do not give affiliate partners your name, email, account or the list of items you saved.
Our public marketing and guide pages use Skimlinks to identify eligible retailer links and attribute affiliate activity. When these pages load, Skimlinks receives page URLs and link-impression information, even if you do not click a retailer link. We are not currently running an affiliate program on every link. This section describes how such links work when they are present.
7. Consent and your choices
Each optional flow below is off until you act, and you can reverse it.
- Saving products: nothing is stored until you save a product. Remove products or collections, or use Delete all WindowShoppings data, to remove them.
- Signing in or creating an account: off until you sign in with email, Google or Apple. Sign out to stop syncing and last-active reporting. Delete your account to erase the cloud data (see section 5).
- Anonymous analytics: off by default. Turn it on or off with the toggle in Settings → Data & privacy. Turning it off stops all anonymous usage requests.
- Compare prices: nothing is sent until you press Compare prices.
- Feedback: nothing is sent until you press Send. You decide whether to include an email address or the current page URL.
- Notifications: you can disable them, delay them to a digest, or set quiet hours in the extension, and turn off iPhone notifications in the app or in iOS Settings.
- Share links: created only by you, and revocable at any time.
- Collaborative collections: created only by you, with an invite you control. Replace the invite, remove a collaborator or stop sharing at any time, and leave any collection you joined.
- Ko-fi: opened only when you press the support button.
- Export: the extension's settings page lets you export your saved data as JSON or CSV.
If you do not want the extension to read pages for product detection, uninstall it or disable it in your browser. Depending on where you live, you may also have rights to access, correct, delete, restrict, object to or obtain a portable copy of your personal data, and to complain to your data-protection authority. Email us at samgonz021@gmail.com to exercise them.
8. Extension permissions and why they are needed
- storage: keeps saved products, collections, variants, notes, tags, price history and settings, including in your browser's extension-sync storage.
- alarms: starts price and availability checks at the top of each hour while the browser is available, and delivers notification digests.
- notifications: shows the price-target and back-in-stock alerts you configured.
- scripting: injects the packaged product detector into a retailer tab that was already open before installation, or where the normal content script is unavailable. No remotely hosted code is executed.
- identity: used only for optional Sign in with Google and Sign in with Apple, to open the provider's consent screen and receive a sign-in token. It is never used unless you press a provider button.
- activeTab: gives the extension temporary access to the tab you are using when you invoke it.
- Host access to https://*/*: WindowShoppings supports products from arbitrary retailers, so it needs to run its content script on HTTPS pages to detect products, and to revisit the product URLs you saved for scheduled checks. It does not store anything from a page unless you save the product. Automatic product detection and scheduled checks run only on HTTPS pages; on any other page the extension reads the page only when you click its toolbar button (activeTab).
9. Chrome Web Store Limited Use
WindowShoppings' use and transfer of information received from Chrome APIs complies with the Chrome Web Store User Data Policy, including the Limited Use requirements. In plain words:
- We use the data only to provide and improve WindowShoppings' single purpose: saving products, organizing them, and monitoring price and availability.
- We do not transfer the data to others, except as needed to provide that purpose, to comply with law, or as part of a merger, acquisition or sale of assets, with notice to you.
- We do not use or transfer the data for advertising, including personalized or retargeted ads, and do not sell it.
- No person reads the data, unless you give consent for specific data (for example by asking us for support), it is needed for security or abuse investigation, it is needed to comply with law, or it is aggregated and anonymized.
10. Children, international transfers, US state rights and changes
Children
WindowShoppings is not directed to children under 13, and we do not knowingly collect data from them.
International transfers
Supabase, your browser-sync provider, retailers, Google, Apple and Ko-fi may process data outside your country. Their privacy policies describe their transfer safeguards. We do not transfer saved libraries to a developer-operated service unless you sign in to an account. For users in the EEA, UK or similar jurisdictions, processing to save and monitor products is necessary to provide the features you request, and optional processing (analytics, feedback, comparison, sign-in) rests on your action or consent, which you can withdraw at any time.
US state privacy rights
We do not sell personal information or share it for cross-context behavioral advertising, and we do not use sensitive personal information to infer characteristics about you. Earning affiliate commissions is not a sale or share: we do not give affiliate partners your identity or library, and any click information they receive is used only to credit a purchase. Residents of US states with privacy laws may request access to, correction of or deletion of their data. Email samgonz021@gmail.com, or use the self-service tools in section 5.
Changes to this policy
If we make material changes we will update this page and revise the date above. Where required, we will disclose changes before the changed processing begins.