Ninja Forms 3.0 Released, Features New Drag-and-Drop Form Builder

Ninja Forms 3.0 was released today after a year in development. WP Ninjas have completely rewritten the plugin using Backbone, Underscore, and Marionette, an undertaking that required the bulk of development time for this milestone. This architectural overhaul brings major improvements to the user experience.

The most visible improvements can be seen in the form building screen, where the process of editing or setting up a new form has been completely re-imagined with a drag-and-drop interface.


“We decided to go with a fully-headless JS UI for Ninja Forms about three years ago, when we first threw around the idea of a re-write,” said WP Ninjas co-founder James Laws. “We wanted to create something more modular, easier to extend, and simpler to troubleshoot.”

Laws said that the new Ninja Forms codebase is an application that consumes and returns JSON data. As such, the team is no longer tied to PHP for form building or display and templates are now pure HTML, freeing developers and designers from having to sort through the processing code in order to modify how forms look.

“A few months after we began our re-write, Matt gave his famous ‘Learn Javascript Deeply’ homework at WordCamp US,” Laws said. “We were ecstatic. He seemed to validate everything we had assumed about the future of WordPress and consuming and creating WordPress data.

“Ninja Forms 3 is our foray into that world, a world in which we can display our builder anywhere on a user’s site, power our plugin with the REST API, and give our users experiences that the default WordPress admin just doesn’t offer. We’re really excited to be one of the first plugins with a user-base of our size to take the JS-first plunge.”

Laws said WP Ninjas decided to use Backbone because it comes with WordPress core. They use Marionette to simplify the process of making nested views and applications on top of Backbone.

“The switch to JS was definitely the hardest part of the development process,” Laws said. “All of our developers are PHP developers by trade, so our CTO, Kevin, undertook the task of teaching himself how to create what we wanted in JS. It has taken about a year, but we now have a few developers on the team who are fairly fluent in JavaScript.”

In addition to the new drag-and-drop form builder UI, Ninja Forms 3.0 introduces pricing fields (product, quantity, shipping, and total) to help users sell products and services. The release also streamlines form settings and adds the ability to sandbox forms for editing on the fly without impacting visitors.

Version 3.0 ships with a one-click rollback button for users to revert to Ninja Forms 2.9.x after updating, in case of any problems with add-ons or custom code. The plugin includes the codebase for both versions in order to mitigate issues with backwards compatibility.

The latest version also ships with support for 29 different languages, whereas previous 2.x versions had support for only 8 languages at 50% or more string coverage. As Ninja Forms comes pre-installed on GoDaddy hosting, the company donated the translations in order to offer their hosting customers better language coverage. Laws said WP Ninjas is testing partnerships with other hosting companies as well but cannot disclose them at this time.

Ninja Forms is active on more than 600,000 WordPress installs and Laws said the company has been hovering at the $60-80K monthly revenue mark for its extensions.

“This year we didn’t increase revenue that much and that is mostly because we did zero marketing and didn’t release that much new for an entire year,” he said. “We were just too focused on 3.0. Obviously, when you neglect one or both of those, sales will slow.” The company’s founders are anticipating an increase in sales as they prioritize marketing “for the first time ever.”

“We’re convinced that 3.0 is the absolute best plugin experience, at the very least from a form building perspective,” Laws said. “We think if we get ourselves out there, users will take notice.”


12 responses to “Ninja Forms 3.0 Released, Features New Drag-and-Drop Form Builder”

  1. Let’s not forget the security issues that have repeatedly plagued certain form plugins in the last few years (or even the last few months). Be very careful in what plugins you add to your WordPress installation. Especially form plugins. It may look cool and shiny, but there are always serious security concerns to weigh in your decision on what to use.

    • I’m sorry we didn’t send you a shot glass:

      In all seriousness though, security is a big deal. Especially in a form plugin where your main function is to collect random user data. That being said, I’m proud of our track record where security is concerned.

      We’ve invested to have other teams help audit, but sometimes things still show up. When discovered or reported we patch same day. Usually within hours. The very few times where we didn’t patch same day was when we were organizing with the .org team to push releases to affected sites and/or because the same issues was in dozens of other plugins and we were coordinating a release.

      Once more, about a year or so ago, we discovered a security issue that was shared by most every form plugin available. We quietly reached out to all of them to make the issue aware so they could all patch their plugins as well.

      We’re not perfect, but we are alert, responsive, and dedicated. We don’t always get it right, but we always MAKE it right.

      • I think this is the best policy – bugs do happen and as projects get bigger and bigger it’s becomes harder and harder to pentest every nook and cranny. What makes a great plugin is communication from the developers and quick response time.

        • Past sins should not be forgotten or ignored just because of good communication. The question is “was the lesson learned?” do they follow proper software development practices now, or still trying to do short cuts and be funny in their code.

          Obviously no one should be sentenced to death because of a lapse of judgment, but “we are great communicators” is not a replacement to a detailed post on how they changed their software development practice. Till then personally I just can’t trust their code, which is a pity because I used to think that NF is a great product.

    • This may be correct in some cases. We tried to maintain paint of the same class names, but as this was a complete rewrite some of the structure has changed and there for some who had custom styling beyond just styling form elements might need to make adjustments.

      This is the type of reason why we added a one click roll back though. We can’t anticipate everything that could go wrong so we made a way to easy revert until you had time to take care of any issues.

  2. I realized that I responded to some of the possibly somewhat negative and not said a huge thank you to Sarah, for covering our launch, and to Eric, Abhinav, and Robby for the congratulations and kind words.

    We are so overwhelmed by the community outpouring of this release. Everyone’s kindness has meant the world to us. Since this is the largest WordPress community forum I can think of, I want to say thank you to everyone here, on Twitter, Facebook, who sent us emails, DMs, and everywhere else for the kindness you’ve shown.

    I know it seems like the #wpdrama tends to rise to the top at times, but it’s weeks like this where I’m reminded about all the awesome people in our community who are cheerleaders, mentors, and all around kind hearted. People who want the greater community to succeed and would rather build each other up instead of tear them down.

    We at the WP Ninjas love the WordPress community and are grateful to be a part of it.

  3. I know you guys have been working like crazy on 3.0 so congrats on getting it out!

    Version 3.0 ships with a one-click rollback button for users to revert to Ninja Forms 2.9.x after updating

    Really nice. I won’t worry so much about updating.

    BTW, Jeff, thanks for the handy Edit button on these comments. :)


Subscribe Via Email

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

%d bloggers like this: