16 ms·
Show HN: Contact Form Delivery
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!
- binwiederhier 4y agoOh I remember this. I used a service like this 20 years ago when I started programming and didn't know how to host dynamic content (only static HTML). Back then they were free, called form2mail or similar, and worked exactly the same way. Throws me back. I'm sure people these days will need it too, with all those static sites out there.
- KevinGlass 4y agoPersonally I dislike using contact forms. If the email address is shown I’ll just use that. Some people say you’ll get spammed that way but that hasn’t been my experience. These days unless a client specifically requests a form I will use a simple mailto: link and avoid the hassle.
- stanmancan 4y agoI find myself reaching for both depending on the situation. I usually prefer to list an email address instead of a generic "Send us a message" form but there are lots of times when I (or a client) wants to collect specific information; in those cases contact forms are great.
- pkaeding 4y agoAs a consumer, I also usually prefer an email address, because then I have a record of what I sent, when. This is helpful if I am sending similar messages to a few companies, seeking a quote (eg for some work on my home). I can look back and be sure that I haven't gotten a reply from a company because they never responded, rather than because I never contacted them.
- jenny91 4y agoWould be nice to see the email that's delivered for that example code.
- stanmancan 4y agoI'll get that added to the homepage, thanks! For the time being; it's a simple text based email with the field names and submitted values that would look something like this: 1. Name John Doe 2. E-mail john@doe.co 3. Message Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
- tbossanova 4y agoYou have a typo in your own contact form, “hestiate” should be “hesitate” :)
- stanmancan 4y agoAppreciate that; fixed!
- quickthrower2 4y agoThis is why I like Wordpress, stuff like this is a simple plugin install away. Caching, analytics, forms, membership sites etc. can all be set up as free plugins (you can pay for more advanced features though).
- XCSme 4y agoI do think that over time, my WordPress sites saved me a lot of time compared to the custom-built ones. On my custom sites I use a similar service to sendfly: https://web3forms.com/ https://web3forms.com/ PS: I emailed you regarding WordPress and https://wplytic.com https://wplytic.com, I hope it's ok.
- quickthrower2 4y agoInstalled it! Looks impressive, cant wait for some real numbers to pipe through.
- dyeje 4y agoHey I think I’m in your target market for this, I like to test ideas with landing pages and provide a contact form. All I really want is the ability to email myself the info from the form. In the past I’ve set up free ConvertKit or MailChimp accounts, but it’s kind of a pain and way overkill. 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?
- stanmancan 4y agoAwesome feedback; thanks. I'll work on updating the landing page to answer those questions, but for the time being. 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!
- alhasaniq 4y agoI suggest the following if the user hits 5000 submissions: 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.
- diceduckmonk 4y ago> $15... 5,000 form submissions a year. Do you account for spam detection and bots that would exceed that quota?
- stanmancan 4y agoYes it only counts submissions that make it past the spam protection
- ugh123 4y agoI'm not sure what specifically you're selling me here. Is it a form that looks like your 'Get in touch' form at the bottom? How do I customize it (if i'm not a coder)? How do you handle spam/bots? How does it send it to me? via email? fills a spreadsheet? > Includes every feature we offer plus unlimited forms and 5,000 form submissions a year What are the other features?
- stanmancan 4y agoYou’d need to some some basic HTML to use it. You can add whatever fields you want to the form and post it to our endpoint like in the example. 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!
- ugh123 4y agoMy [further] advice is to not bury key elements of your product in a FAQ, but find a way to communicate it through your marketing copy.
- karthikmurkonda 4y agoIsn't there a possibility that someone on internet can waste my quota because that url is visible to him? Or its like your checking the domain of the referar in backend?
- stanmancan 4y agoThere is some spam protection build in and we only count delivered submissions. If you have any issue’s definitely reach out and we’ll remove any spam that gets through.
- tendencydriven 4y agoI don't think you're quite answering the question they've asked. 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.
- stanmancan 4y agoThere's no domain validation as we don't limit what domain or page your form can be used on. 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.
- consumer451 4y agoI just want to make sure I'm not missing something: 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…
- stanmancan 4y agoNope, there would be zero benefit other than to try to cause a bit of trouble.
- system2 4y agoWhy would anyone pay for this when free forms like Contact7 are letting people do t he same for free?
- stanmancan 4y agoGood question! Contact7 looks like a Wordpress Plugin? Sendfly works anywhere you can write HTML and puts you in control. You get to build and style your form as you wish and Sendfly just delivers it for you.
- rodolphoarruda 4y agoSometimes Contact7 won't work because of the restrictions posed by the hosting company where you run your Wordpress installation. For that Contact7 has a companion plugin called Flamingo which stores data sent from forms locally to WP's database, which is then accessible via the admin panel.
- Moru 4y agoStatic sites comes to mind.
- stanmancan 4y agoAnd sometimes you just don’t want to add the functionality into a dynamic site. Contact forms are simple but you have to find an email provider, add the functionality to the site, and it’s an extra thing to maintain moving forward. I have been using Sendfly for my customers contact forms for the last 5 years because it’s so much easier to implement and way more reliable.
- samwillis 4y agoLovely implementation. 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/ https://www.formmail.com/ Looks like you are going for roughly the same price point as that old classic. http://www.scriptarchive.com/ http://www.scriptarchive.com/
- acidburnNSA 4y agoGood old formmail! Takes me back to my middle school web master days. I spent a lot of time in frontpage and invested much time in figuring out how to make my own custom animated gifs.
- stevekemp 4y agoMatt's Script Archive was a great source of inspiration when I was writing Perl CGI scripts, back in the day. 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!
- rodolphoarruda 4y agoThis must be the most pragmatic "to-the-point" landing page I have ever seen. Logo, CTA button, value prop, sample code that explains the whole thing in a simple way, pricing, contact-us _à la_ eat your own dog food. Amazing.
- djbusby 4y agoDid you buy tho?
- sfmike 4y agoWhy is this downvoted? Is the goal to rub your ego or get sales from your LP
- ume 4y agoI happened to need exactly this and was putting off coding it up myself. Signed up and was testing a live set-up within minutes. Very nice!
- ad404b8a372f2b9 4y agoI think it goes a bit too far that way. Some minimum info I'd want to have before buying would be: 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?
- harryvederci 4y agoA possible nice feature you could add for your customers is an "email copy to sender" option. 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.
- stanmancan 4y agoThis would be a great feature but I’d have to think through the implementation. Right now we have no way to know which field to use as a “reply to”. I van look into documenting a set of special field names that have additional functionality.
- dividuum 4y agoNot OP, but while that sounds like an easy feature to add, suddenly the form might me used to spam, flood or otherwise annoy other email addresses.
- phphphphp 4y agoThere’s lots of opportunities to induce a service to send an email to an arbitrary address — e.g: I sign up for a LinkedIn account with your email address — so there’s a few common patterns that could be used. 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).
- iLoveOncall 4y agoI find the pricing a bit odd. 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".
- stanmancan 4y agoKeep in mind it’s $15/year, so only that’s only $1.25/m. 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.
- marginalia_nu 4y ago> What's the best thing about Switzerland? I don't know, but the flag is a big plus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas cupiditate laboriosam fugiat.
- hemantv 4y agoI love this. Simple and to the point. 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.
- tyingq 4y agoThe only anti-bot thing I see is the confirmation after you submit a form, which seems to be just clicking a button. Having run some ecom sites with contact forms before, I'm skeptical that's enough. Do you have some plans to improve the anti-bot measures?
- stanmancan 4y agoI'll be keeping an eye on it for sure and adding additional protection features as necessary.
- pentagrama 4y agoFor a client I used a free WordPress plugin WP Forms [1], for free you can create unlimited forms, receive unlimited messages, build forms with a nice UI [2] and you own all the data/don't call third party services. Recommended. 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/ https://wordpress.org/plugins/wpforms-lite/ [2] https://youtu.be/H5t3Zkx8ccc https://youtu.be/H5t3Zkx8ccc
- dpcan 4y agoSome hosts will require that you also install an SMTP plugin and use a 3rd party service like Sendgrid or Mailgun to authenticate and send the messages. If you have a professional web developer to help, this is usually fine, but if you don't, then this step will often times stop people in their tracks.
- onphonenow 4y agoMany Wordpress plugins have lite and paid versions - and often do a bad job around spam etc
- weird-eye-issue 4y agoSpam is largely solved because they all integrate with Akismet. I have a WP site that gets 500k monthly pageviews and Akismet catches all our spam
- dmje 4y agoThe issue with forms is twofold. 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.
- axelthegerman 4y ago
- baez0r 4y ago
- unfocused 4y agoI was just searching for a contact form last spring and was researching this area. 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/ 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.
- stanmancan 4y agoGood feedback, thanks. I think an export feature is helpful. 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!
- surjithctly 4y agoI made https://web3forms.com/ https://web3forms.com/ which solves the same problem. No signup needed. It just works. Good luck with yours.
- Komodai 4y ago
- valenterry 4y agoWhat tools/services did you use to monetize the product? Also, I found you have no "about" or "contact" section with information about you, which is kind of standard so I was surprised.
- stanmancan 4y agoI just used Stripes hosted checkout/management portals to make life easier. 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.
- vidyesh 4y agoCongrats on the launch, at some point I too considered building something like this but after a quick research I realized there is a very popular free service and a freemium service which does exactly the same. 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.
- deleted 4y ago[deleted]
- stanmancan 4y agoHonestly? It’s usually just for fun and a learning experience. When I first built Sendfly in 2017 I had a need for it, didn’t see any options I liked, and built it in a weekend. This time around I’m learning Elixir/Phoenix and re-wrote Sendfly as a learning experience. I’m going to run it anyways so why not share it with the word and see who else finds it useful? 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.
- vidyesh 4y agoThanks for sharing your insights. > 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.
- stanmancan 4y agoYes exactly! I have another side project that had multiple competitors when I built it. I wanted to learn, had a need for it myself, and shared it for fun because why not. Its a decade only now, requires zero maintenance, and brings in about $30k ARR (2/3 of it is ad revenue, 1/3 is subscriptions) and costs $40/m to run. I definitely got lucky in terms of its limited success, but I couldn’t have gotten lucky if I wasn’t willing to try. Just keep building.
- iplist 4y agoA while back a similar project launched, one of their competitors mentioned there is virtually no one willing to pay for this. So I wonder if you thought about this, it might require some solid marketing to keep alive. Good luck to you!
- stanmancan 4y agoYeah! I’m not actually in it for the money or I wouldn’t have made it so cheap, haha. This is something I built for myself in 2017, have found it immensely useful, so decided to share it. I’m going to run it anyways so may as well see if anyone else in the world has a use for it.
- obihill 4y agoThis has a very straightforward and straight-to-the-point proposition: Forms for your website for $15/year. No pricing page, just a single, simple offer. I much prefer this [with priced addons when you have them] than the usual multi-offer pages where much time [I assume] is spent trying to make a decision on which one is the right offer. 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.
- JimDabell 4y ago> 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.
- IshKebab 4y agoI would also say there's barely any point adding the date at all anymore in most computing cases. In the very unlikely event that you need to prove the date in court you're probably going to be relying on archive.org and git logs anyway, and nobody is going to claim that it's over 75 years old or whatever.
- lucasfcosta 4y agoThat's fantastic. I think this is a prime example of what a startup should do: * Focus on solving an obvious problem, not adding features * Communicate the obvious problem you solve * Charge for solving that problem Much better than all the input-driven & abstract value propositions I see out there.
- mirod1 4y agoI like it. It's simple enough to add to a form from a template, and doesn't get in the way. 2 things I would like: - customize (translate, actually) the "I am not a robot" text, since I do work for non-English customers, - have the "redirection" be just a pop-up window. My use case for Sendfly would be for 1 page brochure sites, and I'd very much like those sites to really be 1 page. Maintaining 2 pages is a lot more work than a single one, especially if I update them very, very infrequently. I may end up using it as is, it would improve some of those sites anyway.
- hidelooktropic 4y agoI had this idea back in 2014 but because I'm a coder, not a business guy I just sort of moved on despite it being a little popular for a while. https://adamgrant.me/development/mailtoninja https://adamgrant.me/development/mailtoninja
- dt3ft 4y agoWill this accept spam and forward it to me, or will it filter spam, and if so, how?
- stanmancan 4y agoIt should filter it out but will be a work in progress if I notice some is getting through.
- laundermaf 4y agoOne of many, existed since at least 2013. The most popular one went bust since it was free and many more were born, bought and died since. It’s good to keep seeing alternatives though since the lifespan of such services isn’t very long. I myself ended up making my own version on AWS Lambda and SES and that worked well for 7 years without a change. This pattern is so common I think an example lives on AWS’ own help site.