PART ONE
PRIVACY
One key, one browser
All functional data lives under a single schema-versioned key, oddly-hard:profile:v1. It holds your personal bests, attempt counts, recent results, Daily history and preferences. Reads and writes fail safely when storage is unavailable, so private-browsing sessions still work — they just don't remember anything.
Traffic counts, no identity
Gameplay events (starts, completions, abandonments, restarts and successful result shares) use a local-only adapter that makes no network request and creates no identifier. Page views are counted by Cloudflare Web Analytics, which reads no cookies, writes no localStorage and assigns no persistent visitor ID. There is still no cookie banner, because product analytics is not enabled in this build.
Drawings stay with you
Perfect Shape records a stroke to score it. Those points are used in your browser, turned into a number, and never leave the device.
Your controls
- Export everything as JSON from the Stats page.
- Import a validated backup into another browser.
- Reset the whole profile in one click.
- Clear site data in your browser and nothing of yours remains.
The extension
Quick Play requests no Chrome permissions, host access or background worker. It bundles all eight games and runs them on an extension-owned page without remote requests. Its personal bests, attempts, Daily history and preferences are stored locally under the extension origin; it never reads or synchronizes this website's storage. Website links and shared result URLs still point to oddlyhard.com.