Privacy Policy

A plain-language rundown of what this site does with your data. No legal padding — this is what actually happens.

Last updated: September 2026

The contact form

When you submit the form on /contact, your name, email address, and message are sent through Resend, a transactional email service, straight to my inbox. That’s it — nothing from the form is written to a database or kept anywhere beyond that one email landing in my inbox.

Bot filtering (Cloudflare Turnstile)

The contact form runs a Cloudflare Turnstile check when you submit it, to filter out automated spam before it reaches me. It runs invisibly in the background for almost everyone — you shouldn’t see a challenge unless Cloudflare’s system flags something unusual about the request. Cloudflare’s terms require sites using Turnstile to disclose it, so: it’s here, and it’s only used on the contact form.

Optional AI spam filter

This site has an optional feature, off by default and controlled by a server setting, that can send a submitted message’s content to Google’s Gemini API to help classify it as spam or not before it’s forwarded to me. If it’s ever switched on, the message text is what gets sent — nothing else about you. I’m noting it here so the possibility is disclosed even when it’s not active.

Firebase and the admin dashboard

This site uses Firebase (Firestore, Storage, and Auth) behind a private /admin dashboard that only I can log into. It’s how I manage the project content and case studies you see across the site. It is not used to track, profile, or collect data from you as a visitor — if you’re not logged into the admin area, Firebase isn’t doing anything with your visit.

Fonts

The typefaces on this site — Geist, Geist Mono, and Noto Sans — are self-hosted. They’re downloaded and bundled at build time using Next.js’s next/font, so your browser never makes a request to Google Fonts’ servers to load them. No font-based tracking, no third-party request, no IP address leaving your browser just to render text.

One more thing

I don’t sell data — there isn’t any to sell beyond the occasional contact-form email, and that stays in my inbox. If anything here is unclear or you have questions, email me at roan.opperman@gmail.com, the same address the contact form sends to.