Cookie notice
This page explains cookies and similar storage on Word Drift, a personal blog written by Kelvin at worddrift.pro. I would rather tell you plainly what happens than hide behind a wall of defaults.
When you first visit, a bottom strip asks you to Accept all, Reject all, or Customise. Your choice is stored in a cookie named sg_notes_consent and mirrored in localStorage as cookie_consent_v1 so the site can read it quickly on the next page. Both expire after about six months unless you clear them sooner.
The stored value is JSON containing essential (always true), functional (true or false), analytics (true or false), a timestamp, and version number one. Essential covers remembering your consent itself. Functional covers embedded content preferences. Analytics is off by default and unused in this build.
Essential cookies are necessary for the consent system to work. Without them, the banner would reappear every visit and you would never get a stable choice. You cannot turn essential off while staying on the site — but you can clear cookies in your browser settings at any time.
Functional category: on some personal blogs, maps wait behind a Load map button until you accept functional cookies. This site is different. I chose Map policy B: Google Maps embeds are strictly functional here and load on every page whether you Accept or Reject. That keeps the neighbourhood visible and avoids empty boxes.
Why maps always load: the blog is anchored to MacPherson through ordinary place-writing. Hiding maps behind extra clicks would make the site feel disconnected from the city it describes. The embed shows a neighbourhood-scale view, never a precise residential pin. Google may set or read its own cookies when the iframe loads; I do not control that.
If you Reject all, maps still appear. Analytics stays off. The consent record still saves your choice so the banner does not return on every load. If you Customise and turn functional off, maps still appear — because on this site functional off does not gate maps. I disclose that clearly so the panel is honest rather than theatrical.
Analytics category exists in the panel for transparency and in case I add privacy-respecting stats later. Currently no analytics scripts load regardless of your choice. Accepting analytics therefore changes nothing in this build except the stored preference.
Manage cookies: the button below reopens the panel with your saved settings reflected in the toggles. Change them and press Save choices to overwrite the previous value. You can also clear site data in your browser.
How to clear cookies in common browsers: Chrome — Settings, Privacy and security, Delete browsing data, Cookies. Firefox — Settings, Privacy, Cookies and site data, Manage data. Safari — Settings, Privacy, Manage Website Data. Edge — Settings, Cookies and site permissions. Exact menus shift with updates; search your browser help for "clear cookies".
Google Fonts: pages request Spectral, Archivo, and Roboto Mono from Google servers. That is not a cookie on my domain but it is a third-party request. If you prefer blocking it, use a browser extension — the site will still read in system fonts.
Do Not Track: I do not respond to DNT signals because there is no industry agreement on meaning and no trackers to disable anyway.
Updates: if cookie behaviour changes, this page updates first. The privacy notice cross-links here for legal context; the banner links here for everyday language.
Questions: [email protected] with subject "Cookies". I answer as myself, not as a support team.
Banner design on this site uses a teal tab overlapping the strip top rule — different from other blogs you may have seen. The design difference is intentional; the behaviour should still be the same: clicks write storage, reload respects storage, Manage reopens honestly.
Testing your choice: after Accept or Reject, open DevTools Application tab — you should see sg_notes_consent in Cookies and cookie_consent_v1 in Local Storage. If both are absent after clicking, something is broken and I want to know.
Simulating expiry: developers can edit the timestamp inside the JSON to an old date to confirm the banner returns — normal visitors should not need to do this. The six-month window is approximate because browsers may evict cookies under storage pressure.
Keyboard use: banner buttons are reachable by Tab; focus rings use the site teal outline. The panel toggles are buttons with aria-pressed, not hidden checkboxes, because this site avoids form fields entirely — even in the consent UI.
No pre-ticked dark patterns: analytics defaults off; functional defaults off in Customise until you flip it; Accept all is an explicit shortcut, not a disguised default on first paint beyond showing the banner itself.
Relationship to advertising: this personal blog does not run Google Ads or programmatic banners in this build. Cookie categories exist to describe reality, not to enable a hidden ad stack.
Embedded content beyond maps: there are no YouTube players, no social widgets, no comment embeds. Maps are the only third-party iframe. That keeps the functional category small and understandable.
If you block all third-party cookies globally in your browser, Google Maps may still render tiles depending on browser rules — or it may fail silently. I do not detect that failure to show a custom message because the embed is standard and failures are rare on modern browsers.
School or office networks sometimes strip iframes. If maps appear blank on your network, the rest of the site should still read normally — the writing does not depend on the map.
Cookie name collision: sg_notes_consent is shared naming with other personal blogs in my family of sites but values do not cross domains. worddrift.pro is its own jar.
Plain summary: Essential remembers your consent choice. Functional toggle exists for honesty; maps ignore it here by policy. Analytics toggle exists but does nothing yet. Accept and Reject both persist. Manage always works from this page.
