Cookie policy
Last updated: 2026-10-04
What cookies are
Cookies are small text files a website stores on your device. They allow the site to remember things across page loads (like whether you're logged in) and help us understand how the site is used.
Cookies we set
| Name | Purpose | Duration |
|---|---|---|
authjs.session-token / __Secure-authjs.session-token | Admin authentication only (appears only when an administrator is signed in at /admin) | Session |
authjs.csrf-token / __Host-authjs.csrf-token | CSRF protection for the admin sign-in flow | Session |
authjs.callback-url | Post-login redirect target | Session |
These are essential and need no consent. Page-view measurement via Vercel Analytics is cookie-less by design, and so is its count of visits from our ads and of taps on our phone number or email address, which records only the ad channel, the pages viewed and the kind of contact.
Advertising cookies (only with your consent)
We advertise with Google Ads and ChatGPT Ads (OpenAI) and use Microsoft Clarity to understand how the site is used. If you choose Accept in the cookie banner, our pages load Google's tag, OpenAI's measurement pixel and Clarity. The first two measure which ads lead to enquiries, and Google's tag also lets us show our ads to people who have visited this site (remarketing); Clarity records anonymised session recordings and heatmaps, with form input masked. They can set:
| Name | Purpose | Duration |
|---|---|---|
_gcl_au | Links your visit to our ads, so we can measure which ads lead to enquiries | 90 days |
_gcl_aw | Stores the ad click that brought you here, when you arrive from an ad | 90 days |
__oppref | OpenAI: stores the ChatGPT ad click that brought you here | 30 days |
__obref | OpenAI: a random browser reference used to measure ChatGPT ads | 365 days |
_clck | Microsoft Clarity: keeps the same Clarity user ID across visits | 1 year |
_clsk | Microsoft Clarity: joins the page views of one visit into a single recording | 1 day |
With your consent we also keep a note in your browser (session storage, cleared when you close the tab) of the channel that first brought you here, such as an ad, a search engine or another website, and the page you landed on. It is sent with an enquiry so we can see which advertising works.
Google may also set its own cookies on its domains (for example google.com and doubleclick.net); see Google's privacy policy and OpenAI's privacy policy. Microsoft Clarity may also set cookies on its own domains (clarity.ms, bing.com, for example CLID and MUID); see Microsoft's privacy statement. If you choose Decline, none of these tags is loaded and none of these cookies are set. They are never loaded on private project and proposal pages.
Third-party embeds
Some pages embed third-party content that may set its own cookies when loaded:
- Google Maps (on the contact page) — Google may set cookies when you interact with the embed. See Google's privacy policy.
- YouTube / Vimeo (only if an admin configures the hero video to use one of these providers) — loaded via
youtube-nocookie.comequivalents where possible.
Managing cookies
Change your choice at any time with Cookie settings in the site footer; withdrawing stops Clarity recording and removes our Google Ads, OpenAI and Clarity cookies and the lead-source note. You can also block or delete cookies in your browser settings. Blocking the admin cookies will break the /admin sign-in — the public site continues to work without them.
Changes
We'll update this page if the set of cookies changes.
Last updated: 2026-10-04.