// privacy

Privacy

This is a personal site. It has no advertising, no analytics, no cookies of its own, and no mailing list. The short version: unless you send me a message, this site learns nothing about you that the web server does not already see.

Contact form data

Both forms collect a name, an email address, a message, and your explicit consent to be replied to. Every other field is optional. Submissions go to a small Azure Function that validates them and sends me an email.

  • Purpose. To read and answer your message. Nothing else.
  • Processing. Email delivery through Azure Communication Services.
  • Retention. The message is not written to a database. It lives in my mailbox, under my normal mailbox retention, and nowhere else on this site's infrastructure.
  • Sharing. Your message is not sold, shared, or used to build a list.

Booking a time uses my Microsoft Bookings page, which is a separate Microsoft service with its own privacy terms.

Technical logging

The site is hosted on Azure Static Web Apps, which keeps standard request logs (IP address, timestamp, path, user agent) as part of running the service. The contact function reports errors and timing to Application Insights. Message bodies and full email addresses are deliberately kept out of those logs.

Unresolved: exact log retention windows for the hosting platform and Application Insights, to be stated here after the resources are provisioned and their retention settings are set.

Analytics

There is no analytics provider on this site. No client-side telemetry SDK is loaded, and no cookie is set.

Anti-abuse

The contact endpoints use a hidden honeypot field, a minimum completion time, request size limits, and server-side rate limiting. If an optional bot-verification provider is added later, this section will name it.

Your choices

Write to me and ask me to delete your message and I will. Because nothing is stored beyond the email itself, that is a mailbox deletion rather than a database operation.

Unresolved: a contact address for privacy requests, and whether any statutory notice (GDPR, CCPA) applies given where readers come from. Brian to decide; the form on the contact page reaches me in the meantime.

Changes

This page changes when the site does. There is no version history yet; the repository's commit log is the record.