Legal
Cookie Policy
Exactly what HeatCheck stores in your browser — the essential keys that sign you in and make voting work, the one analytics cookie you can refuse, and how to change your mind.
1. What this covers
“Cookies” here means cookies and the other ways a site can store something in your browser — chiefly local storage, which is what HeatCheck uses for most of it. This policy lists every one of them.
It sits alongside our Privacy Policy, which covers personal information generally.
2. Your choice about analytics
When you first arrived we asked you one question: whether we could measure how the site is used. Almost everything on this page follows from your answer to it.
Nothing optional is stored until you say yes. Decline and no analytics identifier is written — not a smaller one, not an anonymous one, none at all. The site behaves exactly the same either way: we do not withhold anything, we do not ask again on the next page, and we never treat closing or ignoring the banner as agreement.
You can change your mind at any time. “Cookie settings”, at the bottom of every page, reopens the question. Switching from yes to no stops the measurement and deletes the identifier it was using, so there is nothing left in your browser for us to reconnect you to later.
- We ask again after twelve months. An answer that old has stopped being an informed one, so it expires rather than being assumed to still hold.
- We honour Global Privacy Control. If your browser or an extension sends that signal, we treat it as a no and do not show you the banner at all. You can still turn analytics on yourself from “Cookie settings” if you would like to.
- Declining is one click, in the same place, at the same size as accepting. There is no “manage preferences” maze and there are no pre-ticked boxes.
What the question does not cover
3. Essential storage
This is the complete list. Each one is needed to sign you in, to make voting work, or to remember a choice you already made. None is used for advertising, none is shared with anyone, and none can be read by another site.
sb-… (cookies)
Session · set on sign-in
- Your sign-in session, set by our authentication provider. Only present once you have an account and are signed in. Removing them signs you out.
interestometer_voter_token
Local storage · until cleared
- A random identifier so one person's vote counts once, even with several tabs open. Created the first time you open a show page. Not linked to any account, and not readable by any other site.
heatcheck-color-mode
Local storage · until cleared
- Whether you chose the light or dark theme. Set only if you change it from the default.
heatcheck-consent
Local storage · 12 months
- Your answer to the analytics question above, and the date you gave it, so we neither ask you on every page nor keep an answer past the point it can be called informed. Written whichever way you answer — recording a “no” is the only way to honour it. Clearing it makes us ask again.
hc_google_link
Cookie · 15 minutes
- Set only when you sign in with Google to an account that was first created with a password. It remembers which account is waiting for that password while you enter it, and is deleted as soon as you finish.
hc_not_me
Cookie · 30 minutes
- Set only if you follow the “Lock this account” link in a HeatCheck welcome email. It holds that link's key while you decide, so the key never appears in the page address, and is deleted once the account is locked.
__stripe_mid, __stripe_sid
Cookies · 1 year / 30 minutes
- Set by Stripe on pages with a payment form, to detect fraud. Present only if you visit checkout or billing.
Local storage is not a cookie
4. How we measure the site
We want to know which pages are worth keeping and whether the site is fast on a real phone. That comes from three tools, and they fall into two groups that differ in the way that matters most to you: whether they store anything in your browser.
Always on, and cookieless
These two never store anything in your browser, which is why they run without asking — there is nothing to refuse. They are also what keeps our traffic figures honest, because they count everyone rather than only the people who agreed to the third.
Vercel Web Analytics
No cookies · no browser storage
- Counts page views and visitors per page. A visitor is identified by a hash of the incoming request that is discarded and regenerated every 24 hours, so you cannot be followed from one day to the next, or from this site to any other. It records the page, where you arrived from, your country, and your browser and device type — never your name, your IP address as we hold it, or anything tied to your account.
Vercel Speed Insights
No cookies · no browser storage
- Measures how quickly pages become usable, from real visits. It exists so we can find out that a page is fast on our machines and slow on a mid-range phone at a venue.
Both report aggregate figures only, and neither can identify you.
Only if you accept: PostHog
PostHog tells us how people move through the site — which page led to which, and where a journey stops. Doing that means recognising the same browser on a later visit, and recognising a browser means storing an identifier in it. That is the storage we ask you about, and if you decline, neither of the entries below is ever written.
ph_…_posthog (cookie)
Only if you accept · 12 months
- An identifier so that two visits a week apart can be recognised as the same browser. It is random until you sign in to HeatCheck, at which point it becomes your account identifier — see “Being signed in” below. It never contains your name or email address, it is set on our own domain, and no other site can read it.
ph_…_posthog (local storage)
Only if you accept · until cleared
- The same identifier plus the current visit's state, kept in local storage as well so it survives a cookie being dropped. Removed when you withdraw consent.
Two of the things PostHog can do go further than counting, so they are described separately and precisely.
Click and scroll maps
On every page it runs on, PostHog records where on the page people click and how far they scroll, and adds it to an aggregate map. These are pooled coordinates rather than a record of any one visit; the map cannot be turned back into what a single person did.
Screen replay
On every page of HeatCheck, PostHog also records a replay of your visit: what was on screen, where the pointer moved, and what was clicked. That includes the public pages, sign-in and setup, the host dashboard and settings, and live show pages, whether you are running a show or watching one. We use replays to see where somebody got stuck or confused. Three limits on them are set in our own code rather than left to a default, so we can be exact about them:
- Nothing you type into a form is recorded. Every form field is blanked out before the recording is made, including your password.
- Your email address is hidden. Wherever we show it back to you on screen, it is left out of the recording.
- It is not a camera or a microphone. A replay is rebuilt from the page’s own structure. It cannot see you, hear you, or see any other tab, window or application, and it does not capture embedded YouTube video or chat.
The rest of the page is recorded as it appears, and it is worth being plain about what that means on a busy screen. A replay of a host’s dashboard shows the show titles, segments, polls and notes they are working on, and the roll call and segment ideas their audience has sent in — including listeners’ display names and the text of their suggestions, the same information the show page shows publicly. A replay of a listener’s visit shows their display name and anything they post.
Being signed in
If you accept analytics and you are signed in to HeatCheck, we tell PostHog which account you are, so what it measures is filed under a person rather than an anonymous browser. This is the part of the answer that changed most recently, so it is worth spelling out:
- What we send. Your account identifier — the same internal id our own database uses — your role (host or listener), and, if you are a host, the public page name you chose, which is already part of your public address. Not your email address, not a listener’s display name, and nothing you have written.
- Who has a profile. Only people with HeatCheck accounts. If you have never signed in, PostHog holds page views with nobody attached to them, however long you browse.
- What happens when you sign in. The pages you looked at anonymously in that browser beforehand are joined onto your profile. That is what makes a journey readable end to end, and it is the part to weigh before accepting.
- What happens when you sign out. We tell PostHog to forget who you were and to start a new anonymous identifier, so the next person using that browser does not continue your thread.
What stays switched off
These are set to off in our own configuration rather than left at PostHog’s defaults, so turning one on is a change to this page as much as a change to a setting:
- No dead-click tracking. A separate feature from the maps above, and not one we collect.
- No form contents, anywhere. We record that a button was clicked and which button it was; PostHog is configured never to read the value of a field, an image description or an accessible label. Nothing you type into a form reaches it, on any page.
- No console logs in replays. A replay can carry the browser’s developer console alongside the screen; ours does not.
- No error reports. Crash messages and stack traces are not sent, because they routinely carry fragments of whatever was on screen when they happened.
- No profile for anyone without an account. A visitor who has not signed in is never given a person record — that only happens when you sign in, and only then. See “Being signed in” above.
What we deliberately do not use
- No Google Analytics, and no Google Tag Manager. We tried that route and chose against it — a 331 KB container downloaded before a single measurement is taken, and another company standing in the middle of it.
- No advertising or remarketing pixels — no Meta pixel, no Google Ads tag, no LinkedIn Insight tag.
- No cross-site tracking of any kind, and no sale or sharing of data with anyone who does it.
5. Embedded video and chat
There is one exception to all of the above, and it is worth being plain about. A host can put their live YouTube video and chat on their show page. When they have, the page loads an embedded player from youtube.com, and Google may set its own cookies when that player loads — for playback preferences and, if you are signed in to Google, potentially for personalisation on Google’s side.
Those cookies are Google’s, not ours; we cannot read them and we do not receive what they collect. They appear only on show pages where the host has switched video or chat on, and never on this site’s marketing pages, the guide or the dashboard.
6. Controlling storage yourself
Your browser has the final say over all of it:
- Block or delete cookies for a site from its settings — usually under Privacy, or from the padlock in the address bar.
- “Clear site data” removes cookies and local storage together. On HeatCheck that signs you out and discards your anonymous voting identifier.
- Private or incognito windows discard everything when you close them.
Blocking everything has a cost
7. Changes and contact
If we add or remove something that stores data in your browser, we update this page and the “Last updated” date on it. Anything non-essential would mean asking your permission first, as described above.
Questions go to support@heatcheck.io.
The other documents