Forms, without a plugin
Text, email, phone, long text, choice and checkbox fields.
A form builder
Fields in order, required where you say.
Emailed to you, kept only if you want
SMTP or Resend
Resend's web API works on hosts that block SMTP. A test button tells you it works before a client finds out it doesn't.
Spam without a CAPTCHA
A hidden field, a timing check and a per-sender limit.
Making a form
In Forms, a new form starts with a name, an email and a message field. Add short text, email, phone, long text, a list of choices or a tick box, put them in order and mark which are required. Then put it on any page with the Form block, beside its words or under them.
A form belongs to one language, so a site in two languages has one for each. A page copied into another language brings its form with it, as that language's.
When a message is sent
Write your own thank-you message and button text, or keep the usual ones in the form's language. Each message can be emailed to you, and the visitor can get an automatic reply that you write.
Kept, or only emailed
A form keeps nothing a visitor writes until you turn on Keep messages here: each message is only emailed to you, and nothing of it is stored on your server. If email can't be sent, the visitor is asked to try again rather than thanked for a message that went nowhere.
Turn it on and messages are kept in the admin as well, with the page they were sent from, whether or not email works. New ones are marked, and the Overview shows how many are unread. Reply by email from the message, or download them all as a spreadsheet (CSV).
Either way, the sender's IP address is never stored: the spam limit uses a salted hash of it.
Next: An admin that's nice to be in
Its own design, light or dark.