Privacy Statement
This site is mine — I am Joe Tennis, and “I” throughout this page means me. It describes what happens to the information you send through the contact form here: a plain account of what the code actually does, written against the form as it is built today rather than against an intention.
What the form asks for
Six things, of which two are required:
- Your name — required.
- Your company — optional.
- Your email address — required.
- Your phone number — optional, and the form works perfectly well without it.
- Whether you would like a password for the Portfolio section — an optional tick box. Ticking it triggers nothing automatic: it simply tells me to send you the password when I reply.
- Your message — optional.
One more thing is recorded that you do not type: the date and time you pressed Send. It goes into the saved copy, where it forms part of the record’s title, so that I can tell one message from another.
That is everything the form asks for. There is nothing else on it, and nothing hidden alongside it collecting anything about you. The things you never see are described below — the automated-submission checks, and a short-lived note that lets the confirmation page use your name — and none of them collects anything beyond what is listed above, with one exception about your IP address that the next section sets out in full.
What is deliberately not collected
The form does not record your IP address or your browser’s user agent — not in the email, and not in the saved copy. That has been true since the form was built and it is still true. They would be the two most identifying things about your visit, so it is worth being exact about the difference between recording something and reading it: your browser’s user agent is never read at all, and your IP address is read for one narrow purpose that the rest of this section sets out.
Your IP address is the one exception, and this paragraph exists because an earlier version of this page said it was never read. That stopped being true on 26 September 2026, when the form gained a limit on how many messages one connection can send in an hour — a guard against a machine sending the same form hundreds of times over. Telling submissions apart is the only way such a limit can work, and your address is what tells them apart.
Here is exactly what happens to it. When you press Send, your address is immediately scrambled into a fixed string of letters and numbers using a secret key kept on this server, and it is that string the count is held against. The address itself is never written to the database, never saved alongside your message, and never emailed. The scrambled string cannot be turned back into your address by anyone who does not hold the key, it is not attached to your message or to anything else about you, and it is discarded about an hour later. Send one message and leave, and there is nothing left to find.
Two things outside the form do see them, and it would be misleading to let the paragraph above imply otherwise, so: this site’s web server keeps an ordinary access log, as every web server does, and the typefaces are served by Google. There is a section on the second one further down.
The form carries three things you never see, and all of them exist only to notice automated submissions: a hidden field that a person leaves empty, a signed timestamp recording when the page was loaded, and the hourly count described above. The first two are neither stored nor emailed; the third is the scrambled string and a number, and nothing else. The form uses no CAPTCHA and never asks you to prove you are a person.
Where a message goes
Three places, and the third lasts about five minutes:
- To my inbox, by email, at contact2026@joetennis.com. That email carries your name, your company if you gave one, your address, your phone number if you gave one, whether you asked for Portfolio access, and your message. Your address is put in the email’s reply-to line so that I can answer you directly.
- Into this site’s own database, as a private record, so that a message is not lost if the email fails to arrive.
- Into a short-lived note on this server, so that the page you land on afterwards can thank you by name instead of thanking a stranger. It holds your name, your email address and whether you asked for Portfolio access, and it deletes itself after about five minutes. Your browser is given a cookie of the same short life, and that cookie contains a random string and nothing else — no name, no address, nothing about you. It is what lets this site match you to your own note and nobody else’s. Nothing personal is ever put in the web address, so the confirmation page shared or bookmarked shows no name at all.
There is one exception, and it happens only when something has gone wrong. If either the email or the saved copy fails, this site writes a line to the server’s error log recording which half failed and the email address it came from, so that the fault can be traced. That line is the only other place anything you typed can appear.
Sending the form makes no request from your browser to anyone but this site, and nothing you type is passed to a third party. There is no spam-filtering service, no analytics, and no CAPTCHA provider involved — this site uses none of them.
Who can read a stored message
Stored messages are not published. They have no web address of their own, they do not appear in this site’s search results, and no page anywhere on this site shows them. Asking this site’s public data interface for them returns nothing.
I can read them, by signing in to this site’s administration screens. So can anything else working with that same administrator access — and this site is connected to AI assistant tools that do exactly that, so they can read stored messages too. That is worth stating plainly rather than leaving to be assumed.
There is one other account on this site, and it is not an administrator one. It cannot open the Messages screen, and it cannot read a stored message — administrator access is what that takes, and administrator access is exactly what the paragraph above describes.
How long a message is kept
Until I delete it. Nothing expires on its own, and this page deliberately does not claim a retention period, because no code on this site enforces one and a promise nothing keeps is worse than no promise.
If you would like your message deleted, email contact2026@joetennis.com and ask. I will delete it, and the copy in my inbox with it.
The typefaces, and the one thing this site asks of Google
This site’s typefaces are served by Google rather than from this server. So loading any page here — including this one — makes your browser fetch a font from Google, and that request shows Google your IP address and which browser you are using.
It has nothing to do with the contact form: it happens on every page, whether or not you ever type anything. Nothing you write is involved.
It is here because a page that tells you the form does not store your IP address ought to tell you that something else on the same page can see it.
Questions
Any question about this page goes to the same address: contact2026@joetennis.com. You are welcome to ask before sending anything through the form.
Last updated 26 September 2026. If the form changes, this page changes with it — that is the only way it stays true.