Privacy policy
Plain language, no legalese. This is a personal portfolio — what it tracks is limited, and you can have it erased.
What this site collects
This site runs its own visit analytics to understand who reads it. It uses three signals to recognise a returning visitor:
- A first-party visitor id — a random id stored in your browser's localStorage and a cookie (
kd_vid, lasts 400 days). This is the strongest and most reliable signal. - A browser fingerprint — built with the open-source FingerprintJS library from technical properties of your browser and device (canvas rendering, audio stack, installed fonts, WebGL, screen size, and similar). Used only to recognise you if your storage was cleared.
- A hash of your IP address and browser — a legacy fallback, hashed, never stored in raw form.
Purpose: visit analytics only. No advertising, no personalisation profiles, no selling or sharing of data, and no cross-site tracking — signals only ever exist on this domain. If fingerprinting is blocked by your browser, the site still works and simply relies on the remaining signals.
What is stored
- Hashed / random identifiers (the visitor id and fingerprint hash — not readable back to you).
- Rough location at city level (from IP lookups) and internet provider name.
- Device and browser information (browser, operating system, screen size, timezone).
- Pages visited, actions taken (clicks, scroll depth, time on page) — tied to the random id above.
Raw IP addresses are not stored. No names, email addresses, or contact details are collected by the analytics system (contact-form messages you send are handled separately, and only by me).
Retention
Analytics data is kept while it remains useful for understanding the site's audience. There is no automated expiry today; because the data is anonymous at rest, it cannot be deleted on your behalf without the identifiers your browser holds.
Your rights — erasure
Erasure requests are honored. Because stored records are keyed to random identifiers, the reliable way to delete your data is to copy the kd_vid value from this site's cookies and email it to khairul.azhar@keroldev.com with the subject "Analytics erasure" — the visitor record and everything tied to it will be deleted. Alternatively, clearing this site's cookies and localStorage prevents future visits from being linked to the old id (a new, unlinkable id would be issued).
Questions about any of this? Email me at khairul.azhar@keroldev.com.