I've tried 3 options so far:
- fully-fledged forms embedded onto the website (eg Google Forms) - quickest to set up but absolutely hideous and bad for SEO
- 3rd-party form backends - I'm constantly worried about hitting the free plan limit; and some services have some deliverability/uptime issues
- writing up my own server (I use Go) and hooking it up to a 3rd-party email service; cheapest but more worried about deliverability/uptime
Right now I'm gravitating towards the 2nd option, but am curious how other developers approach this problem.
First-party support, generous free tier (and cheap enough if you go over 100 submissions in a month), simple implementation, just POST to it like any other form.
A link to a Google Form is always my default.
In the past, I’ve built a very, very simple submission form. No validation, no error handling, etc. just a post to a simple server that dumps it in a DB. This was only necessary to meat some compliance requirements.
By filtering for a few keywords, you can get of 99% of the form spam.
Deliverability has never been an issue for me since (of course) I run my own mail server. But I doubt it's a serious issue when you take the little time it takes to set up DKIM etc.
I wouldn't make it more complicated than it has to be :-)
There's also a bunch of SAAS stuff in this space, like UserVoice or Hotjar or Aha.
I think it's important to distinguish the frontend from the back here. The form shouldn't be intrusive, but that need not be related to the deliverability issue. Whatever service you choose, there's usually a way to hook up the form to the backend reliably (via API and real-time confirmations).
If you really want to DIY this, you can probably put the responses into a cloud serverless KV store for very cheap or free, instead of having an always-on server. But that doesn't seem any better than just using Google Forms or Airtable to collect those responses.
If you actually mean a survey or a lot of questions with multiple-choice answers and nicely tabulated results, then yeah you probably want to just go with a 3rd party backend, or you will end up in a rabbit hole and ultimately reinvent one.
On deliverability, you don't only have to send them on, you can store them in a database and build an interface onto that. If you already have a backend system (eg Django and its Admin), that's easy. Great if there are multiple people handling emails.
The downside isn't running it, it's spam.
But for another client, I skipped forms altogether. Raw email address on the contact page alongside a WhatsApp link and a phone number. Will some people drop through the cracks? Maybe.
Downside is that I'm not able to gather statistics or additional info from form (such as os version, phone model, etc).
This should solve both aesthetic and speed (SEO) problems.
I built a Google forms prettifier: https://g.leftium.com/pretty
You simply have to "mimic" the Google form own your own site: https://github.com/Leftium/cloud9dancehall.com/blob/c17c5a66...
No attack surface beyond spamming the log to cause filling up of disk space. But you can limit this by setting a max POST content size in nginx and a rate limit then doing a logrotate on the host OS.
No moving parts to fail or maintain. Just pure comment form.
I use Canny.io for some sites. You have to jump through a few hoops to enable their free plan, but it's decent. Honestly, the Google Form is simpler to setup and a better user experience.
Beautiful conversational forms.
Unlimited forms and responses for the free tier. Embeddable.
I also like to think myself as hacker and write blogs and launch apps.
And it made me realize the current offerings are ugly and not neat.
I'll love to get your feedback too.
How so?