I am moving my personal web site from netlify to a VPS. It runs via Caddy as just a plain, static web site generated from Hugo. Netlify offered a free contact form, but now I need to provide my own solution, somehow.
I’d like to self-host that too, if possible, on the VPS but then I need to handle spam blocking, form validation, possibly capcha, and sending the outbound email myself - and I don’t have experience doing any of that. An AI chatbot suggested a python script using flask but I would still need to do a bunch to make that work, I think.
There are a number of form handling cloud services online (such as staticforms dot xyz) but then the form submissions are going through their servers. My visitors probably wouldn’t care, but I would still prefer to self-host something, if it’s not too hard to setup.
What do you all recommend? Anyone find a clever solution to this already?
I already have a “comments” feature wired into the site - I could just stick with that but some people seem to still prefer to contact me directly, instead of using that.
EDIT: This is all done - thanks for all the great ideas, you all rock!


I’m a flask developer but even so I would use PHP for this. There are a million php-based contact form scripts on the web and configuring caddy to use PHP will be easier than python/flask.
As for the sending email part - don’t run a smtp server locally, too much hassle. Smtp2go has a free tier which will be fine.
Oooooh, that smtp2go looks really nice. I am going to put this on my to-do list and check it out soon. Thanks!