Joshua.

Legal

Privacy.

What this site collects, what it doesn't, and where the data goes. Last revised May 2026.

What's collected

  • Contact form: name, email, and message you submit. Required to deliver your message.
  • Server logs: anonymized IP address used briefly for rate limiting (Upstash Redis). Not joined to any other data.
  • Theme preference: stored locally in your browser (localStorage). Never sent to a server.

What's not collected

  • No tracking cookies.
  • No advertising network identifiers.
  • No fingerprinting.

Where the data goes

  • Resend (transactional email) receives your contact submission to deliver it to a private inbox.
  • Upstash stores a short-lived rate-limit counter against your hashed IP.
  • Vercel hosts the site; their cookie-less Web Analytics and Speed Insights record aggregate page metrics with no personal identifiers.
  • Cloudflare Turnstile (on the contact form) runs an invisible bot-mitigation challenge. No data is shared back with anyone other than Cloudflare's verification endpoint.

Third-party embeds

  • Instagram embeds (in the photo lightbox) and SoundCloud embeds (in the Off-hours section) load resources directly from Meta and SoundCloud. When the embeds render, those services may set their own cookies in your browser under their own privacy policies.

Your rights

  • You can request deletion of any contact submission you've sent by replying to my response or using the contact form again. There is no separate account system; nothing is retained beyond the email thread.