How I Use Cookies

This personal blog uses two cookies and no tracking scripts. I do not run Google Analytics, Tag Manager, advertising networks, social pixels, or cross-site profiling. When you choose Accept all, Reject all, or Save choices in the banner, that decision is stored so I do not ask again on every page — a rejection is also remembered, because otherwise the question would return endlessly.

The banner is a bottom strip, not a blocking modal. It does not cover the footer links for Privacy, Cookies, or Cookie choices. There is no countdown timer and no dark pattern shrinking the Reject all button — all three actions share the same visual weight. If you open Customise, you will see three rows: a static strictly-necessary line that is always on, a Reading preferences checkbox defaulting off, and an Embedded maps checkbox defaulting off, plus Save choices.

Strictly necessary cookie. sb_consent is not optional because it stores your answer to the cookie question itself. Without it, every page load would feel like the first visit. The value encodes whether you allowed preferences (p) and embedded maps (e) plus the date recorded. It uses path=/, SameSite=Lax, max-age 15552000 seconds, and Secure only on HTTPS. It is never HttpOnly because JavaScript must read it to apply your choices.

Preferences cookie. sb_reading stores only your text-size step. It is written when you allow reading preferences and press one of the three A buttons in the header. If you reject preferences or turn them off later, sb_reading is deleted immediately while sb_consent remains to remember that rejection.

Google Maps. Every content page includes a map of the Clementi neighbourhood centred broadly on Avenue 2, zoom 14–15, never pinned to my exact flat. Four layouts appear: a large pinned-style map on the mailbox page, a low strip on the Chin Swee note and five leaves, a wide band on porch shelf and me, and a compact card on privacy, cookies, and 404. If embedded maps are allowed — default until you opt out — Google may process technical data and set its own cookies under Google's policy. If you turn embedded maps off, placeholders appear with neighbourhood name, postal address, and a button reading Show the map for this visit; pressing it loads the iframe once without writing a cookie. Privacy details also live on privacy.php.

Clementi map — controllable via banner.

Changing your choice. Use Cookie choices in the footer to reopen the banner with current values pre-filled. Accept all enables preferences and maps immediately without reload. Reject all disables both optional categories, removes sb_reading, and hides the banner. Customise lets you toggle Reading preferences and Embedded maps independently before Save choices. Applying a choice updates map gating and reading comfort on the same page instantly.

Clearing cookies. You can delete sb_consent and sb_reading in browser settings; the banner returns because the record of your choice is gone. Clearing only sb_reading resets text size but leaves map preferences wherever sb_consent still points. With JavaScript disabled, no banner appears and my script writes nothing — maps still render as ordinary iframes because the gate does not run; cookies.php documents that behaviour honestly.

Reading comfort control. Three text-size buttons in the header adjust reading size immediately. If preferences are off, the line "Remembered only if you allow preference cookies" appears near the control. Sizes map to body classes reading-size-1, reading-size-2, and reading-size-3 defined in CSS.

Testing tips. Open a clean profile, visit any page, and watch DevTools Application tab when clicking Accept all — sb_consent should appear at once with path=/ and an expiry months ahead. Navigate across porch, shelf, and a leaf; the banner should stay hidden. Reopen via Cookie choices to confirm values persist.

This is a personal blog. Everything on it is written by me and reflects my own experiences, opinions, memories and impressions at the time of writing. Notes are personal reflections and are not professional, medical, legal, financial, fitness or news reporting advice. Where a note touches on a serious event nearby, I only describe what I heard or saw from my end of the street — never as reporting, never with details I do not have.