Legal

Cookie policy

Last updated 9 October 2026

This website keeps cookies and tracking to a minimum. It uses no advertising and no third-party marketing pixels, and the fonts are served from the site itself. Optional analytics cookies are only ever set if you choose to accept them.

Strictly necessary storage (always on)

These are needed for the site to work and do not require consent. They set no advertising or tracking identifiers.

  • Form protection. When you submit a form, a small timestamp is saved in your browser so it is not submitted twice by accident. It contains no personal data and is not shared.
  • Your cookie choice. A small entry remembers whether you accepted or declined analytics, so you are not asked on every visit.
  • Sign in. If you sign in to the SOLVED Studio, or to the private admin area, Firebase Authentication stores a sign-in token so you stay logged in. This is only ever set if you choose to sign in.
  • Offline copy of the site. The site stores a copy of its own files in your browser, so pages still open on a poor connection. It holds no personal data, and clearing your site storage removes it.
  • Sign-in hint. If you sign in to the SOLVED Studio, a small entry records that you are signed in, so the Studio can show your own pages without waiting. It is not a sign-in token and it grants no access.
  • Drop-in progress. If you use the Studio without an account, your place is saved in your browser so it is still there when you come back. Signing in moves it to your account and clears it from the device.
  • Studio progress copy. When you are signed in, a copy of your Studio progress is kept in your browser so the Studio opens straight away and keeps working through a poor connection. It is refreshed from your account and cleared when you sign out or delete your data.
  • Unsent work. While you are signed in to the Studio, the last few unsaved changes are kept in your browser so a closed tab or a dropped connection does not lose them. They are removed as soon as they save.
  • Sign-in email. When you ask for a sign-in link, the address you typed is kept in your browser until you finish signing in, then removed.
  • Spoken narration. If you play the narration, the audio is stored in your browser cache so it plays again without a connection. It is served from this site, and nothing you do with it is sent anywhere.
  • Competency check progress. If you take the Software Engineer Competency Check, your answers, any details you enter and your result are kept in your browser so a refresh does not lose your place. They are never sent to this site, and Start again or Clear from this device removes them.
  • Lesson progress. If you use the Professional Onboarding lessons, which lessons you have started and finished, and how many quick checks you answered correctly, are kept in your browser so you can pick up where you left off, and your place in a lesson is kept until you close the tab, so a refresh does not lose it. They are never sent to this site, and Clear lesson progress on the lessons page removes them.

In the app

The app sets no cookies and carries no advertising SDK. It includes Google Analytics for Firebase, which stays switched off unless you turn usage data on. What it keeps on the device, the profile cache, the content bundle and a kept answer, is described fully in the privacy policy.

  • Profile cache. A copy of your own profile, so the app opens without waiting.
  • Content bundle. The framework, packs and Scenes the app ships with and updates in the background.
  • A kept answer. An answer you chose to keep from your assistant, stored only on your device.
  • Offline sync. The Firestore SDK keeps its own offline cache, so the app works with no signal.
  • App instance id. Only if you turn usage data on. A random id the analytics library keeps on the device so counts from one install are not double counted. Switching usage data off removes it.

Analytics cookies (only with your consent)

I use Google Analytics (GA4) to understand which pages and features are useful so I can keep improving the site. Google Analytics is not loaded at all until you accept: before that, nothing is sent to Google and nothing is stored on your device. Once you accept, IP addresses are anonymised and advertising features and data sharing for advertising stay switched off.

  • _ga and _ga_<id>. Set by Google Analytics only after you accept. They store a randomly generated identifier used to measure visits and interactions in aggregate. Typical lifetime is up to two years.
  • If you decline, or later withdraw your consent, Google Analytics stays off: these cookies are not written and nothing is sent.

What this site does not use

  • No advertising or marketing cookies.
  • No third-party social or behavioural tracking pixels.
  • No external font networks. Fonts are self hosted.

Managing your choice

When you first visit, a banner lets you accept or decline analytics. You can change your mind at any time using the Cookie preferences link in the footer, or by clearing site storage in your browser settings. Declining does not affect how the public pages work.

Changes

If the site ever starts using additional cookies or tracking, this policy will be updated first and consent will be requested where the law requires it.