My blog and developer portfolio is a static website, which I host on GitHub. As contact information, I link my Facebook and LinkedIn profiles, but I don’t want to publish my email address, because I don’t need spam. Instead I’d place there a contact form which would help those who arrive at my website to reach me without logging in or navigating anywhere else.
Because of the site is static, processing of the form and sending data to my email address has to be done without server-side script. So I have to find a third-party service for this task. And since I’ve been saving money, I’d like to keep the costs of this at zero too.
I spent a day to search for potential solutions. I looked for services which can process a custom HTML form and can send me an email with the form data. I list them alphabetized.
Note: below when I write AJAX, it means a function which provides an endpoint that can be called via AJAX and responds with a text message, unlike the usual form sending methods that return with a page or a redirect.
Basin also gives unlimited submission in the free tier, and it has a lot of features: spam filter, redirect, file upload, AJAX, export, analytics, and Zapier integration to some popular apps (e.g. Slack, Trello, Asana, Google Sheets). Zapier is also free if you use only 2-step (trigger+action) workflows. Basin looks professional and prepared, their GDPR notice is clear. They got positive reviews on ProductHunt, and their developers are actively responding there too.
BriskForms emphasizes that it’s a free service, there’s no word about any limit and it’s open-source too. Provides redirect and/but doesn’t store form data.
elFormo gives 1500 emails/month, honeypot and redirect, though they flash their logo to the users. Form data is stored and can be exported. Their website has style and is appealing, but it’s hard to find a review and their last tweet is from 2015.
formspree.io looks familiar to me, I saw some website templates that recommended this service for the contact form. It gives 1000 emails/month, custom subject, CC, redirect, captcha, but target email address is public in the form code.
A Google Form can also be used as a contact form backend. I found different limits for this, but most of them says 50-100 emails/day. Form data is also inserted into a spreadsheet so there’s no problem if email sending fails due to the limits.
This spreadsheet + email sending mechanism can also be achieved via a Google Apps Script. The quota is 100 emails/day and it can be used via AJAX too. The script can be surely extended with honeypot and captcha.
SimpleForm’s site is very minimal. Does not mention limits, but it says it has file upload and API for downloading submission data. Though version number starts with 2018, copyright says 2012 and their blog is updated in 2014.
Let’s see them in a nice table:
|Basin||-||filter||yes||yes||file, captcha, Zapier|
|enformed.io||100/month||honeypot||yes||-||subject, CC, BCC, AJAX|
|formspree.io||1000/month||honeypot||yes||-||subject, CC, captcha|
|G. Apps Script||100/day||-||-||yes||subject, AJAX, …|
|G. Forms||~ 50/day||-||-||yes||-|
|mailthis.to||1000||honeypot||yes||-||subject, file, AJAX, captcha|
|Pageclip||1000/month||-||-||yes||subject, AJAX, API|
I narrow down the above list in the following way: