Custom Contact Forms Plugin Passes 1 Million Downloads on


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.”


27 responses to “Custom Contact Forms Plugin Passes 1 Million Downloads on”

  1. Are there any plugins out there or tutorials on how to get
    “Custom Contact Forms” to play nice with Bootstrap? Everything I could find was only “Contact Form 7” related but I’d love to use this instead (looks a lot more polished than CF7.

    • Like many others, I have been using Contact Form 7 for years. Just installed Custom Contact Forms and received an alert modal, “There is an issue with synchronizing data.” Immediately uninstalled the CCF plugin. It was worth a shot! But Takayuki Miyoshi is super awesome and I’m gonna stick with CF7.

  2. Just by way of comparison I checked out the CF7 stats and it has been downloaded 33,610,531 times.

    CF7 also has a rating of 4.6 compared to a rating for CCF of 3.3.

    Purely from these stats, which I usually use when selecting a plugin, CF7 would appear to be the better plugin.

  3. “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”

    Funny, last I checked the Gravity Forms form editor was JS based and didn’t reload the page as you add and edit fields to the form you are building. The form editor also provides a live preview of your form as you are building it.

    When you embed a form on the front end you can also do so using AJAX so multi-page forms don’t require a page reload as the user moves from page to page in the form. But the forms also work without AJAX and with page reloads for users with JS disabled.

    Just because something is built using the WordPress API doesn’t mean it’s better than something that was not.

    Word of advice: Focus on your own product and what you are doing instead of making false claims about your competition and throwing around buzzwords to hype up your product.

    • What I was referring to by saying CCF does things without page reloads is the ability to create, edit, and save forms within the post editor without having even one page reload. As far as I know with Gravity Forms, you have to navigate to another page (one reload), create the form (another reload), add/edit fields (AJAX), save your form (another reload), and navigate back to the post editor (another reload).

      As for the live previews, CCF has live TinyMCE previews which update as your forms change without page reload. I don’t believe Gravity Forms does that.

      I certainly wasn’t trying to make false claims. Perhaps I could have been more specific.

  4. Plugins should not hijack the blog admin. It is fine to include an Upgrade prompt on the plugin admin page, but not throughout the blog. It is acceptable to embed a widget on the dashboard but this should be the same size as others and be dismissable. It s fine to put an error message at the top of the admin for special cases, but it should be linked to a way to fix the error and it should be infrequent. Any form of nagging is absolutely prohibited.

  5. Is it still worthwhile having a contact form or comments? I had comments turned off years ago but readers asked for them. So I turned them on. Now the trend has started to turn them off again. Admittedly, there are very few people leaving comments due to verification/ moderation and the ease of commenting with social media instead.

    Pretty much the same story for contact forms. The only people who use them are those who want to sell me unwanted guest posts or other services. At this stage I don’t see a lot of value in enabling comments or contact forms. What do you find with them for your own experience?

    • Regardings your site I prefer to see contact form instead of ads and all kind of social icons and embeds ;)
      If you don’t need that anybody contact you or give you feedback on comments, you don’t have to use these tools ;)

      It has nothing to do with trends. For example contact form is my “call to action” so it is the most important part of my site.

      Allow people to comment your post is a tool for engaging with them. If you don’t care and don’t need it, turn comments off, less work for you.
      If you asked this, you probably don’t need both of these tools ;)


Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

%d bloggers like this: