Cookie Policy
Effective: May 10, 2026 · Updated: May 22, 2026 · Version 1.1
This Cookie Policy explains what storage technologies Loft Tools uses on your device, what they’re for, and how to control them. It supplements our Privacy Policy.
1. The short version
Loft Tools sets no advertising cookies, no third-party trackers, and no cross-site fingerprinting. We run our own first-party analytics on a same-origin endpoint (/_/c) — no data leaves Cloudflare, our infrastructure provider. For each page view we record only: path, UTC timestamp, country (from request headers), referring site host, and a one-way SHA-256 hash of (rotating daily salt + IP + User-Agent + site host). The salt is regenerated every 24 hours and the previous salt is destroyed, so the hash cannot be linked across days. Raw IP, User-Agent, and any file content are never written to disk.
We do use device-local storage (localStorage, IndexedDB, and a Service Worker cache) to make tools work offline and to remember your preferences. None of this data leaves your browser or is shared with us or anyone else.
We will update this page at least 14 days before anything material changes — for example, before we change analytics providers or before we serve any advertising.
2. The terminology, briefly
When privacy laws (the EU ePrivacy Directive, the UK PECR, the CCPA, etc.) talk about “cookies,” they often mean any technology used to read or store information on your device. That includes:
| Technology | What it is |
|---|
| Cookies | Small text files set by a website and sent back to the server with each request. |
| localStorage | A larger key-value store kept by your browser per site. Stays until cleared. |
| sessionStorage | Like localStorage but cleared when you close the tab. |
| IndexedDB | A larger structured database kept by your browser per site. |
| Service Worker cache | Files saved by your browser so the site can work offline. |
| Pixels / web beacons | Tiny invisible images that report back when loaded. |
| Browser fingerprinting | Building a “fingerprint” from the combination of your browser settings and capabilities. |
We refer to all of these as “storage technologies” below. Where a particular law uses the word “cookies” we mean it in the broad sense.
3. What we use today
3.1 Strictly necessary device-local storage (no consent required)
We use the following storage technologies, all of which are strictly necessary to provide a function you’ve explicitly requested. Under the ePrivacy Directive (recital 25 / Art. 5(3)) and equivalent rules, strictly necessary storage does not require prior consent.
| What | Where | Purpose | Lifetime |
|---|
| App shell cache | Service Worker cache | Make the Service work offline and load fast | Until you clear browser site data, or we update the cached version |
| Tool preferences | localStorage / IndexedDB | Remember your last-used unit, theme (dark/light), most-recently-used tools, draft text in a notepad-style tool | Until you clear browser site data |
| Recent files index (where applicable) | IndexedDB | Show “recent” entries inside a tool that you reopened. Files themselves are not stored unless the tool offers an explicit “save” option. | Until you clear browser site data |
These do not identify you, are not shared with anyone, and are not used for advertising or analytics.
3.2 First-party security cookies (set automatically by our hosting provider)
Cloudflare, our hosting provider, may set the following cookies for security and abuse prevention. These are considered strictly necessary and do not require prior consent under EU/UK rules.
| Cookie | Set by | Purpose | Lifetime |
|---|
__cf_bm | Cloudflare | Bot management — distinguish humans from automated traffic | 30 minutes |
cf_clearance | Cloudflare | Records that you have passed a security challenge so you don’t have to repeat it | 30 days (only set when triggered) |
We don’t read or share these cookies. Cloudflare’s cookie policy: cloudflare.com/cookie-policy.
When you open the sponsorship checkout on /sponsor, Stripe loads its hosted Checkout form inside an iframe served from js.stripe.com and checkout.stripe.com. Stripe sets cookies on its own domains to operate that form — for example, to maintain your checkout session, to fingerprint for fraud detection, and to remember “Link” saved cards across other Stripe-powered sites. Those cookies are governed by Stripe’s Privacy Policy and Stripe’s Cookie Settings, not by us. We do not read or share Stripe’s cookies.
3.4 First-party analytics (/_/c)
We run our own analytics on a same-origin endpoint. No third-party scripts, no advertising cookies, no fingerprinting, no cross-site tracking.
What we collect per page view:
- URL path (e.g.
/tools/pdf-tools/compare-pdf/)
- UTC timestamp
- Country code (two-letter, from request headers)
- Referring site host (no path, no query)
- A one-way SHA-256 hash of (rotating-daily salt + your IP + your User-Agent + our domain)
What we DO NOT collect:
- Raw IP address (never written to disk)
- Raw User-Agent (never written to disk)
- Any cookie identifier
- Any file content you process with our tools
- Any cross-site browsing history
Salt rotation: the daily salt is regenerated every 24 hours and the previous salt is destroyed. This means the visitor hash cannot be linked across days — your visit on Monday cannot be associated with your visit on Tuesday by us or anyone else, even with database access.
Storage: rows live in our Cloudflare D1 database (managed by Cloudflare, region pair selected at infrastructure-provision time). Raw event rows are retained for 90 days; aggregate daily counts are kept indefinitely.
Lawful basis (GDPR): Article 6(1)(f) — legitimate interest in audience measurement, with CNIL Article 82 audience-measurement exemption criteria met (first-party, no cross-site tracking, anonymised, no third-party sharing). We do not consider this analytics setup to require a prior consent banner.
To opt out: enable the Global Privacy Control (GPC) signal in your browser (we honour Sec-GPC: 1 server-side — when the header is present we drop the beacon write entirely, before any hashing or D1 insert), or use a privacy extension that blocks lofttools.com/_/c. See §6.
Rate limit: we apply a per-IP soft cap (120 page views / minute) at the beacon endpoint. Excess beacons are silently dropped — no error is returned to the client — and never stored.
When you click through to another third-party donation platform (Buy Me a Coffee, Ko-fi, GitHub Sponsors, or similar), that platform may set its own cookies on its own domain, governed by its own cookie/privacy policy. We do not see or share those cookies.
4. What we do not use
For clarity, we do not currently use:
- Google Analytics, Adobe Analytics, Mixpanel, Heap, or any similar analytics product;
- Meta Pixel, TikTok Pixel, Pinterest Tag, LinkedIn Insight Tag, X (Twitter) Pixel, or any other advertising pixel;
- Google Ads, Microsoft Ads, Meta Ads, programmatic ad networks, or any header bidding;
- A/B testing or feature-flagging tools;
- Session replay or heatmap tools (Hotjar, FullStory, LogRocket, etc.);
- Tag managers (Google Tag Manager, Adobe Launch);
- Browser fingerprinting libraries;
- Cross-site tracking of any kind.
We will update this list and section 5 before any of this changes.
5. What changes when we add ads
We expect to add the following:
5.1 Advertising
We are honest about our roadmap: advertising is planned for free-tier surfaces (likely a small number of category and tool pages). When advertising goes live:
- this page will list the ad networks and partners we use;
- a consent banner will be shown to visitors in the EEA, UK, Switzerland, Brazil, and any other jurisdiction with a prior-consent requirement, asking for granular opt-in before any non-essential cookies are set;
- visitors in the U.S. will be able to use the Global Privacy Control (GPC) browser signal to opt out of “sale” or “sharing” of personal information, and we will provide a “Do Not Sell or Share My Personal Information” link in the site footer;
- the Privacy Policy will be updated with the categories of advertising partners and how to exercise your rights with each.
We do not plan to use any of the following: tracking children under 13, building cross-device identity graphs, retargeting based on sensitive categories (health, religion, sexual orientation, financial distress), or selling personal data for monetary consideration.
6. Your choices
You can control storage technologies through your browser. Each browser handles this slightly differently; the major ones are:
- Google Chrome — Settings → Privacy and security → Cookies and other site data
- Mozilla Firefox — Settings → Privacy & Security → Cookies and Site Data
- Apple Safari — Settings → Privacy
- Microsoft Edge — Settings → Cookies and site permissions
- Brave — Settings → Shields & Privacy
You can also:
- Clear Loft Tools’ device-local storage at any time (which will reset preferences and the offline cache);
- Block all third-party cookies (which we recommend in general — none of our functionality depends on third-party cookies);
- Use a browser-level Global Privacy Control signal (we honour
Sec-GPC: 1 server-side: when present, the analytics beacon write is dropped before any data is processed, regardless of jurisdiction);
- Use a private/incognito window (which discards storage when the window closes).
If you block strictly necessary cookies (e.g., the Cloudflare bot-management cookie), parts of the Service may not work correctly.
7. Changes to this Cookie Policy
Material changes will be highlighted at the top of this page for at least 30 days, and announced via a banner on the home page. We will not enable any new tracking, analytics, or advertising technology without first updating this page and giving at least 14 days’ advance notice.
A complete change history is available on request to [email protected].
Email: [email protected]
Mail: 577 East Chartres Street, Anaheim, CA 92805, U.S.A.