Privacy

What this site knows about you

Written from the actual database, table by table, rather than from a template. If a thing is not named on this page, it is not collected.

The short version

  • Reading the site does not require an account. GoatCounter counts page views without a cookie. Google Analytics 4 loads only if you Accept the cookie banner; Reject means GA never runs. Nothing is sold or shared for marketing.
  • Joining the list collects your email address, plus the technical details needed to prove you asked for it and to keep the list from being stuffed by a bot.
  • Some links here earn a commission. Following one takes you to another company, whose own privacy policy applies from the moment you arrive.
  • Leaving is one click, in every email, without replying to anyone.

If you join the mailing list

Each of these is a real column in the table that holds subscribers, and each is here for one stated reason.

  • Your email address, and a one-way fingerprint of it (a SHA-256 hash), so the site can check whether an address is already on the list without reading through the list.
  • Your status — waiting to confirm, confirmed, unsubscribed, or bounced. An unsubscribed row is kept, not deleted, and that is deliberate: a deleted row is one that can be innocently re-added by the next import. Keeping it is how "stop emailing me" stays true.
  • Two tokens. One confirms the address and is destroyed the moment it is used; one is permanent and is what makes the unsubscribe link in every email work in a single click.
  • Which page you signed up from, so it is possible to tell which article earned the subscription.
  • The IP address and browser identifier at sign-up, and again at confirmation. This is the consent record: the evidence that a real person asked, from somewhere, at a time. It is the same evidence that answers a spam complaint.
  • Timestamps — when you signed up, confirmed, unsubscribed, and were last emailed.

Confirmed opt-in. Being typed into the form does not put you on the list. Clicking the link in the confirmation email does. An address that never confirms is never emailed anything else.

Sign-ups that are turned away

A separate table records attempts the filters rejected — a honeypot field that only a bot fills in, a form submitted impossibly fast, a bad token, an address that cannot receive mail, a disposable domain, a role account, too many tries from one address, a duplicate. It stores the reason, the address if there was one, the IP and the browser identifier.

It exists for two things and is used for nothing else: tuning the filters, and proving this list was built by people asking rather than by scraping. It is not a mailing list and is never emailed.

A third small table counts recent attempts per IP address, so that one machine cannot hammer the form. It holds no email addresses and is cleared as it goes.

Who touches it, and the log of that

Parts of this site are operated with the help of software agents. Every read or send performed through that tooling is written to an append-only log: what was done, how many rows it touched, and who approved it where approval was required. Nothing in the application deletes from that log.

Exporting addresses and sending to the list both require a human at a terminal. No agent can mail this list on its own, and the automated tooling cannot export it at all.

How long any of it is kept

Rejected sign-up attempts (honeypot, too-fast submit, bad token, disposable address, rate limits, and the rest of the filter log) are kept for 90 days, then deleted. That window is long enough to tune the filters and answer a spam complaint; it is not a permanent dossier.

Unsubscribed rows are kept indefinitely as a suppression record. Deleting them would let the same address be re-imported later by accident. If you want the subscriber row gone entirely, ask — and know that removing the suppression record is the weaker protection against being emailed again.

Confirmed subscribers stay for as long as they remain on the list. Analytics page-view logs follow GoatCounter and Google Analytics' own retention settings, not this table.

Affiliate links

Guy Flexor earns a commission on some outbound links, and says so above every one of them rather than in a footer. Following such a link hands you to another company. That company — not this site — decides what it records about your visit, typically including a cookie that tells it the visit came from here. Their privacy policy governs from that moment.

This site receives no personal information back from those companies. It learns, at most, that a sale happened and that it was attributed here.

What you can ask for

Ask for a copy of what is held about you, ask for it corrected, or ask for it deleted, and it will be done. Ask to stop being emailed and the one-click link in any email does it immediately — you do not have to ask a person.

One honest exception: a deletion request removes the subscriber row, which also removes the record that you asked not to be emailed. If you want to be sure you are never re-added, unsubscribing is the stronger request, not the weaker one. Say which you want and it will be honoured either way.

Write to the contact page.

The data controller for this site is Guy Flexor (publication of Rob Sparks). Postal address:

Guy Flexor
9956 Desperado
Waco, TX 76708

Email help@guyflexor.com or use the contact page. The same postal address appears at the foot of every email sent to the mailing list.

Changes to this page

This policy was written on 1 September 2026 by reading the database schema column by column. If the data collected changes, this page changes in the same commit. It is not a template and is not maintained separately from the thing it describes.

Site analytics

This site uses GoatCounter to count page views. It does not set a cookie on your device. It records the page path, referrer, browser, and a coarse location derived from your IP. The dashboard is at guyflexor.goatcounter.com.

This site also uses Google Analytics 4 (Measurement ID G-NVT372RG0W). Google sets cookies and collects page views, scroll and click events, device and browser info, and a coarse location. Google’s processing is described in their privacy policy. GA4 scripts load only after you Accept the on-site cookie banner; Reject leaves GA unloaded. If you block cookies or use a tracker blocker, those hits may not be recorded either.