New here? Start here. Read the blog →

Privacy Policy

What this site collects, why, and how to ask me to change or delete it. Last updated August 17, 2026.

What this covers

This page explains what rkrass.com actually collects when you use it, why, and what your options are. I wrote it in plain language on purpose. If anything here is unclear, email me and I will explain it in even plainer language.

The contact form

When you fill out the contact form, I collect your name, your email address, your company if you give me one, what you are reaching out about, and your message. The form also logs your IP address, your browser's user agent string, and the time you submitted it.

All of that is stored in a private Postgres database on my own server, and I also get an email copy through Resend so I see it fast. I use this information for one thing: to read your message and get back to you. I do not sell it, rent it, or pass it to anyone for marketing.

The form also runs a rate limit and a spam filter server-side. That's a security measure on my end, not something that changes what I do with your actual message.

The blog email signup

The "get new posts first" box on the blog collects your email address. It also logs your IP address, your browser's user agent, and the time you submitted it, and stores all of that in the same private database the contact form uses. I get an email when someone signs up. I use it for one thing: to email you when there is a new post. I do not sell it, rent it, or pass it to anyone. There is no automated drip sequence behind it. Ask me to remove you and I will, and once a real mailing list is wired up I will update this page.

Spam protection (Cloudflare Turnstile)

The contact form uses Cloudflare Turnstile to filter out bots instead of asking you to solve an old-style captcha. Turnstile runs some checks on your browser and device to do that, and Cloudflare processes some visitor data as part of the check. I do not see that data myself. It's handled by Cloudflare, under Cloudflare's own privacy policy.

Hosting and logs

This site runs on my own server on Google Cloud, behind Cloudflare. Both process the standard request logs any host processes, things like your IP address, the pages you request, and timestamps, to serve the site and keep it running. That is the infrastructure layer, not a profile I build about you.

Analytics, and no ads

I do not run advertising trackers on this site and I do not sell or share anything about your visit with advertisers. I do use Google Analytics to see which pages get read and roughly where readers come from. That means Google sets a cookie and processes the usual measurement data, including your IP address, under its own privacy terms. I've turned off Google Signals and ad personalization on my end, and I don't sell or share what it collects the way those terms are defined under state privacy laws. I look at totals and trends, never at individuals, and I have no interest in identifying you.

I also run Pirsch alongside Google Analytics, as a side-by-side comparison. It's a cookieless analytics tool, so it doesn't set anything in your browser, and it counts the same kind of aggregate totals and trends. If your browser sends an opt-out preference signal (like Global Privacy Control), I honor it: nothing more gets collected than what's described here, and neither tool personalizes anything either way. If you'd rather not be counted at all, any tracker blocker or Google's own opt-out browser add-on will stop the Google Analytics side of it.

How long I keep it

I keep contact form submissions for 24 months from the date you send them. If we're in an ongoing conversation past that point, I keep the record for as long as that conversation runs.

Your rights

You can ask me what I have on file for you, ask me to correct it, or ask me to delete it. Email me at [email protected] and I will handle it myself, no ticket system, no run-around.

Changes to this page

I will update this page whenever what the site actually collects or does changes. The date at the top always reflects the last real edit, not a routine annual refresh.