Custom Contact Forms has just passed one million downloads after nearly six years in the WordPress Plugin Directory. Last year Taylor Lovett, Director of Web Engineering at 10up, released version 6.0, a completely rewritten version that made it one of the first plugins to incorporate the new WP REST API. It is now one of the most popular plugins to do so and has more than 70,000 active installs.
The plugin was built to provide the best user experience possible for building forms. It is unique in that it puts the form creation process inside the media manager, instead of a separate forms admin page. Custom Contact Forms also offers live previews while the user is building a form.
Getting the REST API integrated with the plugin was the culmination of nine months of development for version 6.0. Unlike many other early plugins that rely on the API, Custom Contact Forms does not require the WP REST API plugin. Instead, the plugin includes its own version of the WP REST API, which is cleverly activated if necessary.
“The plugin includes a small fraction of that code,” Lovett said. “Compressed it is 1.6MB and the whole thing is built to be very performant scale for enterprise.
“I don’t think it’s a good user experience to make 70,000 people install a plugin dependency,” Lovett said. “The main thing about CCF is it has an attractive fully JS powered interface that looks like the WP media modal. It really goes with Matt’s message at the State of the Word on JS.
“I would argue the user experience is better than all the popular alternatives (Gravity Forms, Ninja Forms, etc.) The plugin does not have as much functionality as GF or Ninja Forms but is quickly catching up – it’s also 100% free,” Lovett said.
Since Custom Contact Forms is capable of handling much more than simple contact forms, Lovett is considering a name change that will help people understand the broader possibilities for its use. He has seen it used for employment forms, product creation (the plugin has extensive hooks and can create posts on each submission), digital product creation, and event creation.
JavaScript-Powered Form Creation is the Future
Lovett believes that the most popular forms plugins will need to adapt in order to keep pace with the modern web.
“By using the REST API and heavy JS, CCF can do things like live form previews which Gravity Forms and Ninja Forms can’t do,” he said.
“The modern web requires things to be done without page reloads so I do think the traditional form plugins will need to modernize. The only thing standing in their way is time – I spent nine months rewriting CCF for the JSON REST API,” Lovett said.
“AJAX has become expected on the web. Anything less is not going to stand the test of time. Can you imagine using the media modal, if you had to reload the page every time you added an image? The same concept applies to forms,” he said.
Custom Contact Forms is not as full-featured as the most popular contact forms, and Lovett says he gets quite a bit of pressure from users to add more features.
“I want to tastefully add features slowly,” he said. “I think a lot of plugins try to do all the things and I don’t want CCF to be like that.”
Lovett plans to add Paypal and Stripe integration along with a variety of form templates in future releases. When asked if these would be separate add-ons, he said that they would mostly likely be built in.
“The only reason to separate things in my opinion is to make money off of them,” Lovett said. “The plugin will still be a small file size and performant – so why separate?”
Lovett has struggled to maintain a high rating on Custom Contact Forms, as it went through a tough transition in order to adapt the JSON REST API.
“I had to write DB upgrade scripts for thousands of people using the old plugin,” he said. “During that transition, I got a lot of 1-star reviews.” The database upgrade scripts provided a seamless transition for some users but not for others. This is sometimes the price users pay when a plugin updates to be on the cutting edge.
“The JSON REST API being merged into core has made support much easier,” Lovett said. “I don’t think it’s ‘fringe technology’ anymore.”
This plugin looks interesting. But it would be better if there are more screenshots and more introduction in the .org page. That helps us to understand how it works.