Show HN: Contact Form Delivery (sendfly.io)
Most sites I work on have at least one contact form and I got tired of building out the logic to send them and handle the spam into every project.
I built and launched Sendfly for myself 5 years ago and it's been a rock solid service that I've relied on ever since.
Recently I've done a full re-write, simplifying the product and making it super affordable. I wanted to share it here in case it comes in handy for someone else.
There are lots of competitors out there but I found them too expensive for my needs. For $15/year you get unlimited forms and 5,000 form submissions every year. Hoping that fits the bill for developers like me!
83 comments
[ 2.7 ms ] story [ 144 ms ] threadThrows me back. I'm sure people these days will need it too, with all those static sites out there.
PS: I emailed you regarding WordPress and https://wplytic.com, I hope it's ok.
Anyway, when I’m on your landing page I have 3 questions:
1. What happens when the user submits the form, how do I access the data / know about new submissions?
2. Am I able to customize the fields?
3. What happens if I go over 5000 submissions?
1. What happens when the user submits the form, how do I access the data / know about new submissions?
When you setup a form you tell us who you'd like the form emailed to. When the forms submitted, we'll email that address the contents.
2. Am I able to customize the fields?
Absolutely! You're in full control of the form itself; what fields are there, how it's styled, where it's hosted. All you need to do is set the forms action to your sendfly.io url so that when the form is submitted it gets posted to us.
3. What happens if I go over 5000 submissions?
I haven't quite figured out that path yet; right now you'll just keep getting the submissions. I'll work on adding different plans, but wanted to keep it simple at launch. If you're interested and know you'll need more than 5,000 submissions let me know and we can work something out!
Define the 5000 as a soft limit. Define something like 10,000 or "100 days after reaching the soft limit" as a hard limit.
When a user hits soft limit, you keep storing their submissions, but you don't let them see it unless they upgrade the subscription/buy more resources (Mailchimp's Blocks pricing strategy seems sensible to me). When a submission is received after hitting soft limit, you send your user an email telling them that they received a form submission, but they cant view it till they upgrade. (You keep notifying them). You can aggregate those notifications daily/weekly after the first few to reduce costs.
When the hard limit is reached, you stop storing those entries. And send the user 1 email telling him that you changed behaviour.
I’lol need to add some additional plans to support higher volume if and have an upgrade option.
Do you account for spam detection and bots that would exceed that quota?
> Includes every feature we offer plus unlimited forms and 5,000 form submissions a year
What are the other features?
We have some built in spam protection; a secondary confirmation after the forms submitted.
The form gets emailed to you but you can also view it on your account.
Tons of great questions; I’ll look at adding a FAQ to the landing page to give a bit more detail!
Or its like your checking the domain of the referar in backend?
They want to know if you're doing any domain validation for requests sent to your URL, otherwise someone could quite easily eat up their quota by sending POST requests to the URL in the form.
If there was a malicious user abusing the service and they manage to bypass our spam protection then I'll definitely make sure they're taken are of as spam doesn't count towards your quota.
Would there be a reason to do this other than to eat a competitor's quota or just cause someone trouble?
The malicious actor would not benefit in any other way, correct? They would not actually get the submitted data…
It’s taken me a couple days to put it into words, but the important thing for me was a product lesson.
The lesson was that it’s possible to lower friction to this point, build or buy an anti/bot/spam system and still have margin.
Because you can control the whole http request using say curl and use proxies.
Conversely I wouldn’t be surprised if some privacy extensions hide the referrer.
You could do some basic bot detection though. Even a css hidden non-hidden field might catch the bots.
There are a few of these about, having started playing around with making websites in the late 90s I have fond memory’s of “Matt’s Script Archive”. He had both a Perl CGI script for this and a separate paid hosted version. Just checked, and it’s still running 25 years later! https://www.formmail.com/
Looks like you are going for roughly the same price point as that old classic.
http://www.scriptarchive.com/
So much terrible code, and security holes, but still the name gives me a nostalgic feeling rather than the memories of all the times things failed horribly!
1) How do I consult the data that's submitted through the form?
2) What is the privacy policy: what's going to happen to my clients' data? Where are the servers hosted?
Reason: One major annoyance I had on the website of a letting agency was that they had a form where you could post issues with the home you were renting. But then you'd get no confirmation email of (1) the fact that you posted a message and (2) the content of your message.
For example, the first time an email address is seen by the service as a “send me a copy” address, the service could first send a confirmation email (much like a “did you register for a LinkedIn account?” confirmation email) before sending a copy of the message.
Framed as a feature (i.e: subscribe to receive a copy of any message sent from your address) it could be quite compelling! I’d love to know what people are claiming I sent via message forms (how valuable it would be, I don’t know, but it’s certainly something I’d sign up for).
5,000 submissions is not an amount where I would consider paying, but at the same time it's also 13 contacts a day which isn't nothing for sure.
Basically not enough to pay for but still not insignificant.
The total cost for you is $0.05 a month if you use AWS SES, so I think a limit of 20 or 50K a year will basically not change the cost for you but will make the pricing more "coherent".
Realistically I can probably raise the limits since most people won’t come close to using the 5,000 a year. I don’t use SES and my email provider is a lot more expensive expensive ($1.25-0.85/1000 depending on volume) but I’ve had zero deliverability issues with them so I’m happy to pay a bit more.
You can have free tier of 100 submissions a month which will let people have a taste of service before they are ready to buy. Suggestions about soft limit can applied here to drive more people to convert to paid plan.
Also can add a premium plan which remove the backlink.
Yes, it works only on WordPress, in my use case, my client had a non-WordPress site, and we make a Help site on help.domain.com with WordPress, and the contact form on help.domain.com/contact.
[1] https://wordpress.org/plugins/wpforms-lite/
[2] https://youtu.be/H5t3Zkx8ccc
The first is the UI - the design, logic, etc. Any reasonable form builder will give you this.
The bigger issue is the deliverability aspect. This to me is the killer. Having to setup all the stuff around email deliverability is a horror - SPF, DKIM, DMARC - then monitor. It's awful, and it's especially awful if you're doing it on behalf of multiple clients.
no neef for any emails in the plugin directly - unless you'd want to
My Wordpress site is for a non-profit, and I am volunteer, but they were willing to give some cash for it. In the end, I went with Contact7, a free Wordpress Plugin and Flamingo (another plugin) that lets you export the data that people enter into the forms, as an excel file.
My use case was that we wanted to have people register, and we knew we would only have 10 people register, per year! So immediately, paying a fee for this was not really worth it since the volume is not there, and my client said there were happy not paying, and just making the people print a PDF to email back. I said let's just do these as forms.
As for feedback, I echo what some people said about adding what happens to the information once it's submitted, and can it be exported into a friendly CSV. Even for someone like me that only had 10 entries, it was helpful. If you are hitting 100s and 1000s, you definitely want to track all of that.
You should also have a look at the pricing of WPForms (https://wpforms.com/pricing/), which is a paid Wordpress Plugin, obviously with a crazy amount of features, but it's still good to look at them to see how they differentiate.
In addition, is your $15 just for one site, or can I use your service on say, 2 sites if I run 2 (or more). I would add that to the front page.
I'll be working on making it more clear, but form submissions get forwarded to the email specified on the form. So if you're putting the form on your sales page, you could forward it to sales@your-domain.com. All submissions are also viewable on sandfly.io.
$15/year for unlimited forms and 5,000 submissions, so you can have as many forms on as many sites as you'd like!
Good luck with yours.
Also, I found you have no "about" or "contact" section with information about you, which is kind of standard so I was surprised.
There’s a contact form if needed and when you’re logged in there’s a support link that’s just a mailto me. I’m a relatively private person so an about page isn’t really my thing.
I genuinely want to know from you (and others) whats the motivation to build something like this which already exists, which doesn't have a unique feature either.
Any of my limited success in life has come from my willingness to build things that already exist. The fact that competitors exist is a good thing; it means there’s already a market for the product. You just need to capture a small slice of an existing market to make a bit of money.
> Any of my limited success in life has come from my willingness to build things that already exist... ...You just need to capture a small slice of an existing market to make a bit of money.
That is an incredible piece of advice. I often get disappointed or lose the motivation to keep building something that already exists. So reading this really helps knowing its not silly to feel that way but you have to go past it and be willing to create it despite knowing its not unique.
Thanks OP.
Just keep building.
Also, it might be helpful to have a video showing how to set it up as the source code screenshot seems overly targeted to developers.
Finally, your page still says 2017... It may make sense to use a script like this instead:
<p>Copyright © 2017 — <script type="text/javascript">var dt = new Date(); var d = dt.getFullYear(); document.write(d);</script> Nivel Technologies Ltd. All rights reserved.</p>
This way, you don't have to keep manually updating your web pages once a year.
Don’t do this. The copyright year is not there to show people the current year. What would the point of that be? Everybody knows what year it is.
The copyright year is to show you when the work was created. If you automatically set it to the current year, you are essentially lying to add more years onto the copyright term than you are supposed to get by law. Using the wrong year renders the copyright notice invalid in the USA. It’s still copyrighted, but the notice is worthless.
Also “All rights reserved” is legally meaningless everywhere. Every country that signed the treaty that gave it meaning has since signed a later treaty that superseded it.