Puzzled
  • Features
  • About
  • FAQ
Get notified
Cookies & storage

Cookies & storage

Effective 23 May 2026 · Covers getpuzzled.app only. The Puzzled mobile app has its own storage disclosures, published here at launch.

First-pass draft. Written in good faith, not reviewed by a lawyer. If anything here doesn't match what you see in your browser, please email contact@obsidiumlabs.uk.

The short version

The marketing site does not use traditional advertising cookies and does not sell or share your data. We use a small number of "strictly necessary" storage items so the site functions (theme preference, your analytics choice, the timer demo), plus — depending on your analytics choice — a couple of identifiers from our analytics provider, PostHog.

Strictly necessary

Set in all modes. Required to deliver the site you're looking at.

Key Where Purpose Lifetime
puzzled-theme-pref localStorage Remembers your choice of system, light, or dark theme so the page doesn't flash the wrong colour on each load. Until cleared by you.
puzzled-analytics-consent localStorage (or sessionStorage as fallback) Records your analytics choice: basic, optional, or objected. Without this we'd ask you on every visit. If your browser blocks localStorage, we fall back to sessionStorage so the choice at least sticks within the tab. localStorage: until cleared by you. sessionStorage fallback: until the tab closes.
puzzled-timer-elapsed sessionStorage The elapsed time of the live timer demo on the home page, so the demo keeps counting if you reload within the same tab. Until the tab closes.
puzzled-timer-running sessionStorage Whether the timer demo is paused or running. Same scope as above. Until the tab closes.

Analytics — basic mode (default)

In basic mode PostHog runs in memory-only persistence: the main distinct id used to attribute events is freshly generated on every page load and discarded when the page closes. No cookies. No localStorage entry. The one PostHog storage item in basic mode is a short-lived window identifier in sessionStorage, used to group events from a single browser tab together.

Key Where Purpose Lifetime
ph_<token>_window_id sessionStorage Groups events from a single browser tab. Doesn't identify you across tabs or sessions. <token> is the PostHog project's public API key. Until the tab closes.

Analytics — optional mode (only if you opt in)

If you choose Accept optional analytics, PostHog adds a persistent identifier on top of the basic-mode sessionStorage row above — so a returning visitor counts as the same person across visits, rather than a fresh anonymous one each time.

Key Where Purpose Lifetime
ph_<token>_posthog localStorage + cookie The persistent distinct id PostHog uses to recognise a returning visitor. Also stores session id and a small amount of state needed for accurate event sequencing. 1 year (cookie). localStorage persists until cleared.

Switching to basic or objected at /analytics instructs PostHog to clear its identifier on the next page load and stop setting these.

Analytics — objected mode (only after you object)

When you choose Object at /analytics, PostHog records its own opt-out marker so the SDK can suppress capture even before our snippet's consent check runs on future page loads. This marker holds no identifier and no event data — just a boolean opt status.

Key Where Purpose Lifetime
ph_<token>_posthog (opt-out flag only) localStorage + cookie Records that this device has opted out of analytics. No identifier, no event data — just the boolean opt status. The full distinct id row from optional mode is cleared first. Cleared automatically when you switch back to basic or optional (on the next page load), or when you clear the site's storage.

Third parties

The site loads a small icon font (Ionicons) from unpkg.com. unpkg is a CDN; it sees the request and may log it as part of normal CDN operations, but the site does not deliberately send any identifying information to them and they set no cookies on our behalf.

How to clear

Clearing the site's storage from your browser settings is the most thorough way: it removes every key listed above. You can also visit /analytics to switch analytics mode (which clears the relevant PostHog keys), or use your browser's developer tools to delete individual items.

Changes to this page

We update this page whenever any item above is added, removed, or changes purpose. The "Effective" date at the top changes with it.

Contact

Questions about storage: contact@obsidiumlabs.uk.

Puzzled

A cataloguing, tracking, and community app for jigsaw puzzle enthusiasts. Made with quiet enthusiasm.

Product

  • Features

Company

  • About
  • Contact

Legal

  • Privacy
  • Terms
  • Cookies
  • Analytics settings
© 2026 Puzzled · Built by Obsidium Labs from London.

A note on analytics.

We use a small amount of privacy-respecting analytics to understand how the site is used — aggregate numbers only, no advertising, no profiles. You can opt in to slightly more (which remembers you between visits) or object entirely. Read the privacy notice.

Analytics settings