Store policies / privacy
Privacy
& data.
FLOOP privacy & data practices: what this site stores, where it goes, how long it stays, and what it does not collect.
The short version
FLOOP has no accounts, payments, orders, or advertising trackers yet. It keeps a cart and a Gift Finder experiment assignment in your browser, a waitlist email in Cloudflare KV if you join the launch list, optional design photos, feedback, and contact messages in private R2 storage, and a shared-design link in the URL when you create one. The browser keys are listed below so this page matches the current code.
Local storage in your browser
These values persist until you clear site data for this site.
floop-cart-v1: product IDs, quantities, and customization values you entered, such as a name, date, message, or a reference to an uploaded photo. Photo bytes are not stored here.floop-finder-visitor-v1: a random visitor ID generated in your browser. It is used only to keep the A/B/C Gift Finder assignment stable. It is not your name, email, or IP address.floop-finder-assignment-v1: the experiment ID and version, the assigned arm (A, B, or C), and the assignment time.
Session storage in this tab
These values disappear when the tab closes.
floop-topic-attr-v1: the last hub or topic path you landed on, with a capture time, used for funnel attribution.floop-meas-dedupe-v1: recent event keys and timestamps, used to suppress duplicate funnel events for about 30 seconds.floop-loader-seen: whether the loading overlay was already shown in this tab.floop-announcement-closed: whether you dismissed the top announcement bar in this tab.floop-finder-exposure-v1andfloop-finder-start-v1: whether this tab already recorded a Gift Finder exposure or start.floop-finder-attribution-v1: topic and Finder context passed into a product page, kept for up to 30 minutes.floop-finder-qa-session-v1: marks a tab as QA when an internal?gf_variant=A,B, orCoverride is used. Analytics forwarding stays local for that tab.
To remove browser data, clear site data for this site in your browser settings. Closing the tab clears session storage; clearing site data also removes local storage.
Waitlist records in Cloudflare KV
When you submit the footer form, a Cloudflare Worker stores a record in KV containing the normalized email address, a timestamp, and a short source label such as “footer”. The KV key is a SHA-256 hash of the address; the record itself contains the address so the launch list can be exported. A second index key stores the hash so duplicate submissions can be detected.
The Worker also writes a rate-limit counter keyed by a sanitized connecting IP address; that key expires after about 15 minutes. FLOOP does not send automated marketing email from these records.
Feedback notes in private R2
If you submit the optional help-widget feedback form, a Cloudflare Worker stores your rating (1–5), topic, message, page path, a random feedback ID, and a timestamp as a JSON file under a feedback/ prefix in the private R2 bucket. The form does not ask for your name or email; please do not include personal details in the message. Feedback is not live chat or a monitored customer-support request.
To prevent abuse, the Worker also keeps a one-hour counter in KV keyed by a SHA-256 hash of the connecting IP address and an hourly time window. The IP address is not included in the saved feedback file. Feedback notes are deleted after 90 days, and you can ask for earlier deletion through the contact page or heyfloop@proton.me.
Contact messages in private R2
When you use the contact form, a Cloudflare Worker stores your name, email address, message, a random ID, and a timestamp as a JSON file under a contact/ prefix in the private R2 bucket. The form also keeps a one-hour rate-limit counter keyed by a SHA-256 hash of the connecting IP address; the IP address is not saved with the message. Contact messages are deleted after 90 days. If you need a faster reply or want a message removed sooner, email heyfloop@proton.me.
Customization photos in private R2
Photo uploads are optional. The browser accepts up to four JPEG, PNG, or WebP files, combines them into one design sheet, and uploads that sheet to a private Cloudflare R2 bucket under a pending/ prefix. Files are capped at 10 MB and checked by file signature. The bucket has no public URL configured in this repository, and uploaded sheets are intended for studio review rather than publication.
Photos are never included in shared design links. Photos that never reach an order are deleted after 90 days; photos attached to an order are kept as long as needed to make and support that order.
Shared design links stay in the URL
A shared-design link is generated in your browser. It encodes the product ID, the text or date values you entered, and an expiry timestamp of 30 days inside the URL. It is not encrypted and not stored on a server. Anyone with the link can read those values, so treat it like a note you are passing along.
Analytics and platform logs
The default build loads no Google Analytics or advertising scripts. It records funnel events only in this browser through the session keys above and a local floop:measurement event. Cloudflare serves the site and runs the Worker, and Workers observability is enabled, so Cloudflare may retain operational request and error metadata under its own terms and account retention settings. FLOOP does not maintain a separate analytics database.
A public build can load Google Analytics 4 only when it is built with PUBLIC_SITE=1, an explicit SITE_URL, and a PUBLIC_GA4_ID. In that build, non-QA sessions send page views and funnel events such as view_item, add_to_cart, begin_checkout, and Gift Finder events. Event parameters can include product IDs, product names, quantity, a price only when a real price exists, topic paths, and true/false customization flags. They never include names, dates, messages, photos, emails, or uploaded photo bytes. QA sessions keep events local. Google may set its own analytics cookies under Google's terms; this site has no advertising or remarketing tags. If those build variables are absent, the GA4 script is not loaded.
What is not collected
The site does not collect payment card details. Orders, payment, and shipping addresses are handled by Shopify checkout under Shopify's privacy policy; FLOOP receives the order details needed to fulfill it. Free-text feedback and contact messages may contain information you choose to submit, so please avoid unnecessary personal data.
Retention and deletion
Cart and Gift Finder local storage persist until you clear site data. Session storage clears when the tab closes. The waitlist rate-limit counter expires after about 15 minutes, and feedback and contact rate-limit counters expire after about an hour. Cloudflare request and error metadata follows Cloudflare's account retention settings.
Feedback notes, contact messages, and photos that never reach an order are deleted automatically after 90 days. Order-linked photos are kept for as long as needed to make and support the order. Waitlist records are kept until you ask to be removed or the launch list is retired. For access, correction, or deletion, use the contact page or email heyfloop@proton.me; deletion requests are actioned within 30 days.
Changes to this page
This page describes the current site. It will be updated when new checkout, order, or analytics features are enabled. See contact the studio for support.
Last updated 27 October 2026. It will be revised before payments and order history go live.
Read the full FAQ
