Cookie Policy
Last updated: Oct 18, 2026
Cookies are small text files that websites save on your device. This site also uses your browser's local storage, which works in a similar way. This page lists what is used and why. For how your data is handled, see the Privacy Policy.
Your choice
When you first visit, a banner asks for your consent. Analytics and personalised-advertising cookies are only set if you agree. You can change your mind at any time with the Cookie settings link in the footer.
Strictly necessary
These keep the site working and remember your preferences. They don't track you and are always on.
| Name | Type | Purpose | Duration |
|---|---|---|---|
ap-consent-v1 | Local storage | Remembers your cookie choice | Until you clear it |
theme | Local storage | Remembers light or dark mode | Until you clear it |
__Host-ap_session | Cookie | Keeps you signed in (only if you sign in) | 90 days after last use |
ap_signed_in | Cookie | Tells the page you're signed in, so it doesn't check when you aren't | 90 days after last use |
ap_passkey_offer | Local storage | Remembers that you've seen the offer to add a passkey | Until you clear it |
ap_return | Session storage | The page to return to after you sign in | Until you close the tab |
ap_signin_email | Local storage | The email you asked to sign in with, so the link in the email can show it | 15 minutes, or until you sign in |
Only when you use them
These load only after you act, and only for that feature.
| Feature | Provider | What happens | Duration |
|---|---|---|---|
| Contact form, "Show email address" and sign-in | Cloudflare Turnstile | Checks you're not a bot. No tracking cookies | For the check |
| Buying a PDF | Razorpay Checkout | Loads after you press Buy. Razorpay may store data in your browser for the payment and fraud checks | Set by Razorpay |
| Video player | Google (YouTube, youtube-nocookie.com) | Loads after you press play. YouTube may then store data in your browser | Set by YouTube |
Analytics (with consent)
Set by Google Analytics to understand how visitors use the site.
| Name | Provider | Purpose | Duration |
|---|---|---|---|
_ga | Distinguishes unique visitors | 2 years | |
_ga_<id> | Keeps track of the current session | 2 years |
Advertising (with consent)
Set by Google AdSense on pages that show ads, currently blog posts. No ad loads until you've made a choice in the banner. If you don't allow these, the site asks Google for non-personalised ads only.
| Name | Provider | Purpose | Duration |
|---|---|---|---|
__gads, __gpi | Serves ads, limits how often you see them, measures them | Up to 13 months | |
__eoi | Security and fraud prevention | 6 months | |
IDE, DSID (doubleclick.net) | Personalised advertising across sites | Up to 13 months |
Google may change the exact cookies it uses. See how Google uses cookies for the current list.
Other ways to control cookies
- Most browsers let you block or delete cookies in their settings.
- Install the Google Analytics opt-out add-on.
- Manage personalised ads in Google's Ads Settings.
Blocking necessary storage may mean the cookie banner shows again on each visit.
Contact
Questions? Email .