For many software developers, rolling your own version of a product is a tempting thing to do. You might want to add your own feature to the product or you might think that having more control over your data is important.
I recently questioned the value of FormKeep, a product that I was using. FormKeep allows you to create forms for any website and persist the information from the form without the need for your own database.
This isn’t a problem for a CMS like Wordpress as it already uses a database for persisting data. In the last few years though static websites have become popular. The simple action of generating the website for each change makes them ideal for people that have websites that require little maintenance. There is one drawback though. With the website being static, it can’t process information and store it anywhere. Static websites are a collection of files served by a web server with no backend database. So how do you add a form to your website?
For a while there’s been a number of products that allow you to embed a contact form in any page on your website, but the problem with this is that the embedded form is typically different in terms of style to the rest of your website and it can look out of place.
FormKeep does away with this drawback by providing just the endpoint that a form will submit too. The obvious benefit is that your form will still share the same look and feel as the rest of your website. Given the popularity of static websites, FormKeep definitely fills a need.
The trouble with FormKeep though is that while I do have a number of contact forms on different websites, there was always a niggle at the back of my mind that I was paying significantly more for a product that I could build on my own.
I’ve tried this in the past with a number of products and it doesn’t always work out. I created my own bookmarking site that included many of the feature that Pinboard offers, but there was still a number of features that I didn’t build. For the money though, it’s hard to argue with Pinboard’s pricing. $11 per year for hosting your bookmarks with a further $25 per year to keep copies of the original URL for each bookmark in your account. I could blow through twice that in a year for similar hosting on Heroku. Eventually I learned my lesson and gave up. I re-opened my Pinboard account the following day.
Building my own FormKeep was simpler than building my own Pinboard though. All I needed was an endpoint that accepted form parameters and saved them to a database. I set aside a few hours one day and quickly had my own version of FormKeep up and running. It’s running on Heroku at a cost of $7 per month. Compare that to FormKeep’s $29 per month and already there’s a significant saving. I might not have the clean UI that FormKeep has but the UI I have works for me.
In this case rolling my own solution worked to my advantage. I still have the same functionality that I had in the past with FormKeep and I’ve made a significant reduction in my expenses for the year now with my own solution now requiring just $7 per month.
Rolling your own solution doesn’t always work. Products might have years of features behind them that you just can’t replicate with a few hours of work. Sure you could have the most important feature up and running but what else needs to be added before you can safely say that your own solution will fit all your needs?
In the case of FormKeep it’s still a fairly small product and can be duplicated. And that’s where I think products need to be wary.
I was a long time user of FormKeep and in that time it’s feature set didn’t change much. Don’t get me wrong though, FormKeep definitely is valuable to people that don’t have the knowledge to run their own endpoint for capturing forms. For a user like myself though, FormKeep doesn’t offer anything that can’t be duplicated in a few hours of coding and that’s something you should consider if your building your own product.
If your product has a small feature-set that can be easily duplicated in a few hours then is it providing value?