| Strictly necessaryAlways on: sign-in, security, checkout, your cart and downloads, and work you have not saved yet. |
|---|
| gc | cookie | Holds the three-letter code of the currency for the country we derive from your IP address (for example EUR), so prices can default to your local currency without detecting it again on every page. | 30 days | With every request to our site, as every cookie is, but only read in your browser |
| guestDlToken | cookie | Proves a guest download link belongs to you, so you can download what you bought without an account. Server-only (HttpOnly) and scoped to the download endpoint. | 1 hour | To our download service only |
| firebase:authUser:* | local storage | Keeps you signed in between visits: your account ID, email address, the name and profile photo you signed in with, and the tokens that renew your session. Set by Firebase Authentication, our sign-in provider. | Until you sign out | Its tokens go to Google (Firebase) to renew your session, and to our services to identify you |
| Firestore offline cache, firestore_*, spFirestoreCacheWipe | IndexedDB and local storage | Firestore, our database, keeps a copy of what the site has loaded for you (such as your profile, cart, notifications, messages and the products you looked at) in an IndexedDB database whose name starts firestore/, so pages can load from your device first. The firestore_* entries let your open tabs share that copy, and some carry your account ID in their name. spFirestoreCacheWipe marks the copy for clearing after you sign out. | Until you sign out, then cleared on a later visit once no other supa.place tab is open; older entries are dropped as the copy fills up | No: it is a copy of what our servers sent you, and changes you make go to us as you make them |
| firebase-app-check-database | IndexedDB | Holds the short-lived Firebase App Check token that Google reCAPTCHA earns your browser, which shows our services that a request comes from our site rather than from a bot (see Google reCAPTCHA under Service Providers and Data Sharing). | Short-lived; replaced automatically while you use the site | With each request to Google (Firebase) and to our services |
| firebase-heartbeat-database | IndexedDB | Firebase’s own record of which versions of its software ran on which days. It holds no identifier. | Up to 30 days of entries | To Google, with Firebase requests |
| _GRECAPTCHA | cookie set by Google on google.com | Google reCAPTCHA’s cookie, used to tell people from bots when App Check checks your browser (see Google reCAPTCHA under Service Providers and Data Sharing). The reCAPTCHA script may also keep its own entries in your browser storage for the same purpose. | Set by Google, which states 6 months | To Google |
| __stripe_mid, __stripe_sid | cookies set by Stripe | Stripe’s fraud-prevention cookies, set on supa.place by Stripe’s payment script when the cart, the checkout or the Diamond payment form loads, so Stripe can recognise the device and spot fraud. | Set by Stripe: up to 1 year (__stripe_mid) and 30 minutes (__stripe_sid) | To Stripe, and with every request to our site, as every cookie is |
| cookieConsent | local storage | Records your cookie choice and when you made it, so we do not ask again on every visit and analytics stays off unless you accepted it. | Until cleared | No |
| cart, recipientEmail | local storage | While you are signed out, remembers what is in your cart (each product, tier, name, price and image) and the email address you last entered at checkout, so neither is lost if you navigate away or reload. When you are signed in, your cart is kept with your account instead. | Until you sign in, sign out or complete a purchase, each of which empties it | The cart moves to your account when you sign in; the email address goes with your order |
| guestPiSecrets, lastCheckoutIntentId, checkoutPendingIntent, receiptCartCleared:* | session storage | Carry a payment through to its receipt in this tab: the reference and secret of each payment you make (the secret proves to us that this browser completed that checkout, so your receipt and any guest downloads load, including after Klarna or your bank sends you back), and which receipt may empty your cart. | Until you close the tab | The payment reference and secret go to us to load your receipt and downloads; the rest stay on your device |
| guestOwnedProducts, guestOrderMap, guestPiEmails | session storage | After you buy as a guest, or open the access link we email you, remember in this tab which products you bought, with the order reference and email address for each, so product pages show them as yours and can offer the receipt, a review and updates on a refund request. guestPiEmails fills in the support email on the receipt page if your receipt fails to load. | Until you close the tab (the first two also when you sign in or out) | Order references and email addresses go with your requests about those orders |
| discountCode | session storage | A seller’s discount code that arrived in a link you followed (?code=), so checkout can apply it without you typing it. | Up to 24 hours, until you close the tab, or until you remove the code or complete a purchase | With your checkout, so the code can be applied |
| awaitingEmailVerification, pendingUsername, pendingUserCurrency | local storage | While a new account waits for its email address to be verified: its account ID, the username you chose and a currency guessed from your location, time zone or browser language, so your profile can be created with them once you verify, even from the link opened in another tab. | Until your profile is created or you sign out | The username and currency go to us when your profile is created |
| emailVerificationLastSent | local storage | The account ID and time a verification email was last sent from this browser, so the resend button waits 5 minutes between emails. | Until cleared; replaced at each send | No |
| lastAuthUid | local storage | The account ID last signed in on this browser, so that when a different account signs in, the earlier account’s unsaved product drafts are removed rather than shown to it. | Until cleared; replaced at each sign-in | No |
| postLogoutRedirect | session storage | Set for a moment while you delete your account, so you land on the sign-up page afterwards. | Removed as soon as it is used | No |
| draftProduct:create, draftProduct:create:media, draftProduct:edit:* | local storage | For sellers: your unsaved product (its text, settings and prices, and which picked file goes where), so a reload or a closed tab does not lose your work. | Until you save, launch or discard the product, or sign out | Only when you save or launch the product |
| supa-place-draft-files | IndexedDB | For sellers: copies of the files you have picked for a new product that is not saved yet (up to 512 MB per draft), so a reload does not lose them. | Until you save, launch or discard the draft; files kept when you sign out stay, unused, until the next draft on this device is saved or discarded | Only when you save or launch the product, when they are uploaded |
| discountDraft | session storage | For sellers: a sale you are setting up (the product, the discount and its dates), so a reload does not lose it. | Until you create the sale or close the tab | Only when you create the sale |
| sellerReg_draft, sellerReg_mfaNagged | session storage | Seller registration: your answers so far (the step you are on, your country, whether you sell as an individual or a business, a company name and registration number, and which version of the seller statement you ticked), and whether the two-factor reminder has been shown in this tab. | Until you close the tab; your answers also go once you finish registering | Your answers are sent when you confirm your details |
| refundReceiptsBackfillRan:* | session storage | Notes, under your account ID, that a one-off check that your refund receipts are complete has already run in this tab, so it is not repeated on every page. | Until you close the tab | No |
| PreferencesAlways on: choices you make, and pages kept the way you left them. |
|---|
| themePref, accentColor, notificationSettings, currency | local storage | Display preferences you set: light, dark or system theme; your accent colour (signed in only, copied from your account); which notifications you see and which are emailed to you; and, while you are signed out, your chosen display currency (only a currency you pick is stored, never the one we detect). | Until cleared (accentColor until you sign out) | A display currency you picked goes with a checkout, which charges in it; the rest stay on your device |
| marketplaceReveal, nav-history-v1, cosmosSeed | session storage | Keep pages the way you left them in this tab: how far down each marketplace view you had got and where you had scrolled (keyed by its filters, sort and search, for up to 30 views), the page you came from so back buttons do not loop, and the random number the animated starfield is drawn from, so it looks the same on every page. | Until you close the tab | No |
| firebase-messaging-sw.js, firebase-messaging-database, firebase-installations-database | service worker and IndexedDB | Push notifications, for signed-in accounts with a verified email address. We register a small background script that can show notifications, and your browser asks whether to allow them. Only if you allow them does Firebase Cloud Messaging create a push token (kept with an installation ID in these databases), which we save to your account so new messages can reach you as notifications. | The push token until you sign out, when it is deleted from your account and revoked and the script is removed; the installation ID stays in your browser until you clear this site's data | The push token is saved to your account, and Google uses it to deliver your notifications |
| Analytics (optional)Off until you accept analytics on the cookie banner. |
|---|
| PostHog, __ph_opt_in_out_ followed by our project key | local storage | PostHog product analytics: counts pageviews and feature usage so we can see what is used and diagnose errors. Runs only after you accept analytics. Its identifier for you is kept in page memory, not in a cookie or browser storage, so each visit starts afresh; the one entry PostHog stores on your device is this one, which records that analytics is on (or, after you turn it off, off). While you are signed in, these events are linked to your account ID, username and seller tier, and every event carries the country we derive from your IP address. Session recording, autocapture and surveys are disabled. | The entry until cleared; the identifier ends when you close the page | The events go to PostHog; the entry itself stays on your device |
| inviteLink | browser storage | Set only if you arrive through one of our invite links and have accepted analytics. Remembers which link it was, so that if you open an account on this device within 30 days we can record which invitation brought you; it is sent to us only when an account is opened, and removed once it has been. Also removed if you turn analytics off. | Up to 30 days, then deleted on your next visit | Only when an account is opened |
| checkoutAttribution | session storage | Set only if you arrive through a seller’s payment link or buy button and have accepted analytics. Remembers which one it was (the product, link or button, and the seller’s tag for it), so a reload of the checkout still credits your purchase to it. Without analytics consent the open page holds it in memory instead, and nothing is stored. Also removed if you turn analytics off. | Up to 24 hours, or until you close the tab | With your order, which keeps it, and the seller sees it on the sale |
| checkoutSources | session storage | Set only if you have accepted analytics. Remembers how you reached each seller in this tab: through a link to their storefront or one of their products from another site (with any tag the seller put on that link), through a search engine, or by browsing supa.place. If you then buy from that seller, the sale records which of these it was. It never holds the address of the site you came from. Without analytics consent the open page holds it in memory instead, and nothing is stored. Also removed if you turn analytics off. | Up to 24 hours, or until you close the tab | With your order, which keeps it, and each seller sees how their own sale came about |