Privacy

How this site records data and handles email contact.

Site analytics

On the production deployment hosted by Vercel, first-party analytics is always active. A persistent random visitor identifier and a random session identifier are used. A new session begins after 30 minutes of inactivity.

Recorded data

The application records the page path and language without query or fragment, a sanitised external referral source, random visitor, session, page and event identifiers, timestamps, approximate visible and active time, scroll depth, and controlled interactions such as navigation, project views, gallery use, language changes and contact clicks. In Production, it stores once per session the IP address validated from Vercel infrastructure and, when available, the country and region codes supplied by the platform. These data support security, traffic analysis and geographic audience understanding and are accessible only in the authenticated private area. When a campaign link includes them, it separately stores only the validated utm_source, utm_medium, utm_campaign, utm_id and utm_content fields, the normalised source or platform, a public company slug and a pseudonymous correlation token. These values are used to understand acquisition and do not confirm the identity of a person or company. The system does not store the full query, city, full user agents, people’s names, email addresses, entered text, cursor movements, session replay or fingerprinting. Raw events have a configured 90-day retention period; sessions, including IP, country and region, and visitor identifiers are retained for 13 months.

Contact

The contact button opens the visitor’s email application. Analytics records the click but does not collect the message text. The message and associated data are handled by the visitor’s chosen email application and provider, outside this site.

Local and preview environments

Analytics persistence is disabled in local runs and Vercel preview environments.