Building the First Premium WordPress Forms Builder with Alex Cancado

Sponsored by:

Gravity Forms is one of, if not the, oldest premium form builders for WordPress. Alex Cancado, one of the founders, and I talk about the research that went into creating such an integral part of any website. We also talk about refactoring, automated testing, what it was like creating add-ons for Gravity forms, and a whole lot more.

If you like this episode, you can catch a bonus episode with Alex where we talk about business, copyrights, and more over on Patreon.

Show Notes

Joe Casabona: This episode of How I Built It, is brought to you by two great sponsors. The first, is our season-long sponsor. Liquid Web has been best known as a managed hosting company with tons of options. It’s also designed a managed WordPress offering that is perfect for mission-critical sites. If you’re looking for improved performance, maximized uptimes, and incredible support, Liquid web is the partner you’ve been looking for. Every liquid web managed WordPress customer has ithemes synced integrated into their managed portal allowing them to update several sites with a single touch. Liquid web hosts all of my critical websites and I couldn’t be happier with them. If you Sign up today, using the discount code ‘howibuiltit33’, you get 33% off for the next six months. Visit buildpodcast.net/liquid to get started. That’s buildpodcast.net/liquid.

It’s also brought to you by Sitelock. I’m sure you know how passionate I am about the ability to utilize WordPress to start and grow a business. However, did you know that the average website experiences 22 attacks per day? That is, if I do some quick math, 8,000 attacks per year, per website. Website security is clearly a serious business and that’s why I choose Sitelock. For those of you who don’t know , Sitelock is not only the global leader in website security but they have maintained a dedicated focus on serving the WordPress community. Their automated cloud based solutions, find and fix threats, prevent future attacks, accelerate website performance, improve trust, and protect reputation. Plus, they have an amazing team of US based security experts that are available to assist 24/7. This combination of technology and expertise allows you and me to focus on our businesses while they ensure our sites, and the visitors are protected from cyber threats. Call 855-759-1108 or visit buildpodcast.net/sitelock today, to get free clothes. And there’s a special bonus…the first 50 people to call will also get a free extra large Sitelock T-shirt.

Hey, everybody. My guest this week is Alex Cancado of Gravity Forms. So in this episode we talked about one of the oldest if not the oldest premium forms builder for WordPress and we talked about the research that went into creating such an integral part of any website. We talked about refactoring, automated testing, what it was like creating add-on for Gravity Forms, and a whole lot more.

And if you enjoy this episode, Alex and I did another kind of bonus episode for Patreon subscribers. So if you like this interview, head over to patreon.com/howIbuiltit and check out the extended interview for subscribers $5 enough. But why don’t you listen to this one first because you’re here now, and it’s a really great and free episode. So without further ado, on with the show.

Hey, everybody. Welcome to another episode of How I Built It, the podcast that asks “How did you build that?” Today, my guest is Alex Cancado of Gravity Forms. Alex, thanks for joining me today.

Alex Cancado: Thank you, Joe!

Joe Casabona: So today we are going to talk about Gravity Forms. A former guest, Jeff Mattson reached out to me and mentioned that you guys might be interested in coming on the show. I’m a big fan of Gravity Forms, I use it for basically all of my web projects so I’m really excited to talk to you today. Why don’t you start off a little bit with who you are and what is Gravity Forms?

Alex Cancado: Okay, so Joe introduced me, I’m Alex Cancado. I am the lead developer of Gravity Forms. I’m a partner with you know most people know Carl Hancock, so I’m his partner. And we have another partner, Kevin Flahaut. The three of us started Gravity Forms probably eight years ago or something like that, and Gravity Forms is a form plugin for WordPress. And so that’s basically you know, we got together, three of us, we used to work together, developing websites and we got together, we formed a company Rocket Genius. And we started, you know, brainstorming ideas, you know, what we always wanted to develop a product and we just didn’t know what. And a Form plugin you know, came in, to play, and that’s basically how it started.

Joe Casabona: Nice. So you worked with Carl and Kevin before you formed Rocket Genius, is that right? So Rocket Genius is only for your products?

Alex Cancado: Correct.

Joe Casabona: Okay, cool. And I think I know this story already, but can you tell us how you came up with the name Rocket Genius?

Alex Cancado: Hahaha, well that’s a funny story. So we worked at this company and Carl was a manager there and he had those projects that he got annoyed with somebody and he was storming out like, “This is not…you meant to say, this is not rocket science”, and he said, “It’s not Rocket Genius”. And then Kevin was like, “Oh, that’s a catchy name, ‘Rocket Genius”. And then he bought the domain, and then he just kept the domain for years, and when we started you know thinking about forming a company and I just, “How about Rocket Genius?” That’s how it started.

Joe Casabona: That’s fantastic. So the takeaway there is that if you hear a good idea for a domain name, buy it. You’ll eventually use it somehow, right? I’m like a domain hoarder.

Alex Cancado: Exactly.

Joe Casabona: So I think a lot of people can probably relate to that one.

Alex Cancado: Yes, yes.

Joe Casabona: So then I also see the rocket in the background there. So Carl has been very open about his affinity for space travel on Twitter. Do you share that affinity?

Alex Cancado: So I don’t, but Kevin does. So it’s mainly the two of them, you know, Kevin is also you know, I’m sitting actually here in Kevin’s office and I have, there is an astronaut looking at me, there is you know a few rocket ships behind me here, there is like a chair like an airplane chair, there is all kinds of stuff going on here, but it’s mostly the two of them, yeah.

Joe Casabona: That’s funny. Awesome! So, and then you guys work out of an office. So you’re not like a remote company completely?

Alex Cancado: Right, not completely. We have probably half and half. We have six people working here at the office in Virginia Beach, and probably you know eight people, so they’re outside.

Joe Casabona: Cool, very cool. So you formed this company, you decided to make a forms plugin at a time where there was… what maybe like one or two small ones?

Alex Cancado: There was yeah, there was contact form 7 out there. The bigger one was C forms for WordPress.

Joe Casabona: Okay.

Alex Cancado: Those are the two WordPress you know solutions, they are more popular at the time. But the ones really that we were looking at or the hosted ones and those are the ones that we wanted to kind of bring the same experience to WordPress. And there were…at the time it was Wufoo who was a big one, and the formstack is another one that we look to. We felt like we were, you know, when we formed Rocket Genius, we were, we knew that we wanted to develop a product but we basically paying the bills by developing websites for clients. And we saw that a form solution was something that was lacking because we wanted something that was good, then we weren’t happy about using no contact form 7 or C forms. And then… so we had a hard time, you know, we had at some projects, we used Wufoo. There was another one that was self hosted and I forgot the name that Kevin really likes to use. You basically would get the PHP files installing your server, but the problem with all those solutions is that they didn’t look like WordPress. So it was hard for us to move them to our clients because he was a whole new education thing, you know, trying to teach people how to use, you know, the product that they’re not used to. So that was the main motivation for us to, you know, to do this.

Joe Casabona: Gotcha. Yeah, because I mean training somebody on WordPress just WordPress could be an overwhelming task for everything. A lot of my listeners are in the WordPress community but so it comes second nature to them. But a new user in front of WordPress is difficult so giving them a completely new interface to build their forms as well could be doubly overwhelming.

Alex Cancado: Yes.

Joe Casabona: So it sounds like you guys did a bit of research. You looked at Wufoo, Formstack and what was out there on the market. But it sounds like this, it sounds like you knew you wanted to do products, and then by doing client work you saw a need for a good form building.

Alex Cancado: Exactly. So that was…And from that you know, doing something, so it would, that’s something that it made a lot easier for us because we were building a form plugin, and we’re building it for us. We knew what we wanted and so that’s making that decision made it a lot, made a lot of sense. We didn’t really have to, you know, go out and look at all the requirements. We knew the requirements because we needed it so that helped us a lot.

Joe Casabona: That’s awesome. So on that same token, you knew the requirements you had for some clients. Did you bounce ideas off of anybody besides the three of you? Do you have, like a mastermind group, or anything like that?

Alex Cancado: Yeah. Well so as far as features we basically looked at these other solutions you know? We looked as it forms look at contact form 7, looked at Wufoo, Formstack, and we tried to get the things that were good about each of them and bring them into WordPress in a way that you know, that was a big thing for us. We needed to look like WordPress, we needed to be, you know, second nature. If you know how to use WordPress, you should know how to use Gravity Forms. That was our main goal there.

Now, Carl became friends with a lot of the theme developers, you know, Jason Schuler from Press 75 at a time, Corey Miller from iThemes and he got a lot of business advice from them. And they helped us, you know, a lot of marketing in the beginning because they were well known, and we were nobody at that time, nobody knew about us. And so we got a lot of help from them. Another person that helped me a lot was, or helped us a lot was Yost, you know. He saw, he liked it right off the bat, and he gave us a lot of good pointers, especially me because I was not a WordPress developer and not even a PHP developer. I was a Microsoft guy developing you know, ‘.net’ applications. So this was my first…well it’s funny because I didn’t even know how to develop PHP until you know, we started. And we bought a little book. I bought a little book and I read it in a couple of days, and then OK now I’m…and so obviously I made a lot of newbie mistakes, and then Yost helped me you know, a lot you know, guiding me there in the beginning. So it was very helpful and nice of him.

Joe Casabona: That’s fantastic. And you just named two previous guests and Corey Miller, and you know they are both very smart guys and very generous with their time. So it’s nice to see that even you know, back then they were doing the same thing.

So yeah, that’s fantastic. And so, I guess, I would love to spend more time than normal on this question because this was your first PHP project essentially

Alex Cancado: Right.

Joe Casabona: So how did you build it? I’d love to know, like what it was like starting out and then kind of what your development stack looks like today? Because Gravity Forms is huge, I’m sure it’s evolved like developing eight years ago versus developing today is like, yeah, day and night.

Alex Cancado: Yeah, so me..so basically at that time you know, Kevin was basically paying the bills. He was developing sites you know for clients and he was getting all the revenue to pay for you know to pay for all bills. And while you know, Carl also. While me, I was just tasked to develop this thing. So it was just me developing it and obviously getting as far as direction from Carl and Kevin as well, and he was helping design. But as far as developing, it was just me. I was a Microsoft you know developer guy, so I found it very refreshing PHP and specially on top of WordPress because things became a lot easier, development wise, you know, developing ‘.net’. There’s…it’s a lot more structured, a lot more bureaucratic if you’d say that I, a lot of projects I tended to over design them. So they took a lot to develop and a lot of times they got you know they got it in Cam before they went to production because it took so long to develop them. So I was a little bit frustrated at that time with that. And so when I started developing Gravity Forms, I did not want to fall into the trap of, “Hey, this is gonna take forever”, especially when you know, we have Kevin paying all the bills, like, “Man, I gotta speed this thing up and get this thing ready”, because you know, we need to survive here. So starting up my thing was I want to get this thing done quickly and I wanna do it simply, you know in a simple way. I don’t want to over design it, and it was very refreshing programming in PHP and WordPress because you got so many, so much things for you know, so many things for free, everything that I felt, everything was easy, and WordPress had done a lot of the work for me. So it was, I’ve had a lot of fun doing it.

Now, the thing is I developed it quickly and it was simple and it grew very quickly after we released it. and then that started becoming a problem because you started growing growing growing and I really didn’t really design it the way that it would you know for it to grow you know that quickly. And then we started developing on top of it and then it started becoming difficult to manage, and big, and a little you know cover some sort…So the past couple of years we’ve done a lot of refactoring, and you know introduce some more of the things that now I wish that I had done in the beginning you know, some more object oriented approaches to things. And we’ve done some of it of course. Now it’s like 10 times harder because you need to maintain backwards compatibility so when every time we try to do some refactoring on top of you know, something that has you know, hundreds of thousands of sites using it you don’t want to break you know you know it’s, you have to think twice before changing anything.

Joe Casabona: Right, absolutely. I mean we saw the effects of that with 4.8 right in the text widget.

Alex Cancado: Exactly.

Joe Casabona: So I’ll link that in the show notes for anybody who doesn’t know what we’re referring to. But if you, WordPress does a pretty good job of maintaining long term backwards compatibility, right?

Alex Cancado: Yes, yes. And which I would try to follow that same mentality, you know? It’s a big thing for me, I want to maintain that responsibility. And you know we pay the price because everything becomes a lot slower, development wise. You know, it’s very easy to implement a feature but to implement a feature without breaking everything else to demand before, that’s a different story.

Joe Casabona: Yeah, absolutely. So a couple of follow-ups on that. WordPress I think at the time of this recording supports back to 5.3…?

Alex Cancado: I’m not going to know , Joe.

Joe Casabona: It’s something annoyingly old right? And so, do you find that kind of affects the way you want to develop, right? Because you can’t necessarily use all the features of PHP 7 if you want to maintain backward?

Alex Cancado: Yeah, exactly. So we follow WordPress as far as that would take their lead and whatever PHP version they support to try to support as well. But yeah, I mean it’s hard for us, we’re going to use the new features but you know we can’t. But at the same time I can, I relay, I can appreciate the fact that they’re trying to be backwards compatible because you know I have sides to and I absolutely hate when things break, yeah. And so I can understand that. And we just we just move forward you know, with that in mind.

Joe Casabona: Gotcha. So do you think that maintaining backwards compatibility saves you support time, right?Because I mean if you roll something out that breaks a bunch of sites, I suspect you’ll get a lot of support questions.

Alex Cancado: Absolutely. So a lot of the things we do, we keep, we…yeah, support is a brutal task, right? Everybody knows that, everybody that season software development knows that and we have a small support team for the size of our users you know? We have…I don’t know over a million sites and the…you know hundreds of thousands of clients and we have 1,2,3,4,5, I think it’s a five, you know people team supporting all these clients. And every time we develop a future we keep that in mind. We don’t want to introduce anymore support burden to the team. So yeah, so backwards compatibility is one of them. And because of course if we develop something that prohibits sites, we’re going to pay the price, we’re gonna get codes.

Joe Casabona: Yeah, absolutely.

Alex Cancado: Yeah.

Joe Casabona: So do you have any like testing, do you have like a testing suite or anything like that? Or…

Alex Cancado: Yes, yes. We’ve started the year, probably a year ago or maybe even longer. We have started unit tests, we have a suite, but the unit tests mostly cover our API. So when things on people are using our API’s, there is a unit test suit or suite that runs every time we build it, which would build Gravity Forms. We have started more recently with acceptance tests and those are browser tests and I personally, you know, I’m loving those things. And they are already catching a bunch of mistakes that we would have made. We have two developers, they’re basically tasks in a test to grow back in. We’re going, we are starting with the front end form and we have, I’m not going to say you know even close to 100%. but we get, we have a pretty good start on coverage for the front-end form and we’re gonna start with add-on and the back end, admin with the acceptance tests. And those things run every time we commit a branch. And so we know when things are failing, and it’s going to be very important for us going forward, especially as we grow, you know, so they make sure that we don’t break things.

Joe Casabona: Right, right.

Alex Cancado: It’s an enormous amount of work. It’s a lot of work but it really starts paying off after you…you have to start getting the coverage of and we already see you know a few bugs being caught by their tests.

Joe Casabona: That’s fantastic. So you said that they run on commitment, right? Not merge. So you know even before this thing gets merged into the master branch of the trunk or whatever I assume because you usually get all right that’s a fair assumption?

Alex Cancado: That’s fair, yeah.

Joe Casabona: Oay. So you know even before it gets merged that there’s a problem with the code?

Alex Cancado: Yes, so we have a master, we have a major branch. And those are the ones that we keep mostly, we’re keeping an eye on those weed. If a test fails and you want to obviously have a massive protest fail, that’s a big problem. But if it is even if then, for now we’re developing 2.3 and if a test fails in 2.3 then it’s also, “Hey, we need to fix this because that’s going out here soon”. Now the tasks are also running all the feature branches, you know, the developer branches. And when a test fails there, then it’s mostly not a huge deal cost you want to develop and the developer is mostly you know, it’s just up to the developer to go up, fix that, fix those. But yeah, they run on every comment.

Joe Casabona: Gotcha, that’s awesome.

Alex Cancado: Yeah.

Joe Casabona: I’ve been hearing a lot more about the automated testing stuff on the show so it’s nice to see that it’s now working its way into the WordPress community now.

Alex Cancado: Yes.

Joe Casabona: It’s relatively young compared to other software development you know I’m sure like ‘.net’ probably had stuff like that.

Alex Cancado: They had stuff back then exactly, yeah, yeah. It’s starting here now and it’s very nice . It is a lot of work to get it up to speed but once you get it in the end and you have something going it’s very nice to have.

Joe Casabona: Yeah, right? The time that you spend setting it up pales in comparison to the amount of time it saves you.

Alex Cancado: Yes.

Joe Casabona: That’s fantastic. So I mean eight years old? You’ve seen lots of versions of WordPress and changes and things like that. What kind of transformations has Gravity Forms gone through over you know, since it first launched?

Alex Cancado: So Gravity Forms, we’ve added a lot of add-on. And Gravity Forms itself, I wouldn’t say has gone obviously has when we started it. It’s funny because it’s something that we talk about is setting up a website that has you know the WordPres., I don’t even know which version that was and Gravity Forms 1.0, so see what that looked like you know back then. it would be funny to see but Gravity Forms grew you know quickly, a lot of new features because version 1.0 didn’t have a lot. It was a simple version and we just grew the…you know, features that really are, you know, essential for form builders. So I wouldn’t say it has gone through any transformation in a sense that we haven’t rebuilt or we change the way things work better. It still looks the same things to looks you know pretty much the same. Obviously we’ve added a lot of features and we’ve added a lot of add-on. Code wise, there has been it, cold wise it has been hard for us to make any huge transformation because of the backwards compatibility issue. So that is, we’ve wanted to do more with it and we have done some you know, but it’s a slow process because you know we’re very careful about changing things. We are 2.3, we are going through I think being most, the biggest transformation because we’re going to change the, you know, the database tables. We want to rename them, there is a major change on the way we query entries, you know major performance enhancements. And that is the scariest thing that we’ve done so far to tell the truth. But you know, we’ve added tasked with testing a lot so we’ve got, we’re gonna go through a very low, you know, long beta period. But that’s gonna be a big transformation in the back-end, you know. It’s not really user facing but for us here is going to be a major transformation. So you know other than new plugins, and new features, and some refactoring, I wouldn’t say we have gone from a…it’s if you take everything together it’s a major transformation but it’s like a progress.

Joe Casabona: Right, yeah. It’s an incremental step.

Alex Cancado: Yeah, incremental steps. Exactly, yeah.

Joe Casabona: Cool. So what is your favorite add-on out of curiosity?

Alex Cancado: My favorite add-on? Oh my goodness you put me on the spot now. I’m gonna say, I mean people gonna kill me for this one, but you know, Paypal is one that, that is, it just gave us so much, you know? I remember when we started everybody was talking about, “Hey, you got to have this Paypal add-on…you got to have this Paypal add-on and we developed it. And our users just came and they just adopted that add-on and it was, you know, a major point of growth for us and so you know, that has a little special place you know, here.

Joe Casabona: Absolutely. And I tell you what? When I first launched WP in one month, I only had stripe integration because I figured anybody can use a credit card like who cares, like people don’t like PayPal that much. The very day 1, the very first request I got was, “Hey, do you accept PayPal?” yeah. so I mean I turned it on. It’s about 50/50 on my site when people buy courses. So people might kill you but PayPal is still super duper important.

Alex Cancado: Exactly, yes, yes. It’s you know, as a developer it’s hard to deal with them sometimes but you know people like to use them.

Joe Casabona: Yeah. So I’ll tease.

So anybody who’s enjoying this conversation, you can catch Part 2 over on Patreon at patreon.com/howibuiltit. Anybody who subscribes $5 a month or more can hear the rest of this and I wanna get, we will get more into the, may be developing for PayPal in that part of the episode.

So we are coming up on time for the main episode though. So you talked a little bit about your plans for the future, right? Your change in the database. Anything else comes to mind for a punch for the future of Gravity Forms?

Alex Cancado: One thing that I wanna do is bring our community more, you know together. We have a pretty nice community, you know, a lot of people developing, you know, add-on for us and we have a good relationship with a lot of them. But I don’t feel like we’ve done you know enough to promote them, to help you know, “Oh hey, this is…” ’cause there’s so much, so many features out there that’s that basically we’re not promoting and you’ll be very nice for you know people buying Gravity Forms know that “Hey, I can do this, I can do that” and so that’s something that I want to here soon is have a place where we can showcase third party add-on. Have a place where you know has a list of all of them, and users can, you know, customers can see them usually, and search and things like.

Joe Casabona: That’s fantastic. And I mean you guys are very developer friendly, right? I’ve made a little add-on to my ascential set up front end submissions so people could submit pictures to a website. And so I just made a little plug to move pictures from the default uploaded folder, and then add them to the media library right? so it took me about an hour to code up. it was you know, you had the right hooks and everything like that. It was great, and a very useful little plug in for me. So yeah. So that, I would love to see that. That’s fantastic. Yes, cool.

And my favorite question to ask, “Do you have any trade secrets for us?”

Alex Cancado: Ahahaha. Let’s see. I don’t have any secrets but there are few things that i’ve learned throughout. You know, three years of trying to make something happen that might be useful for someone for somebody. The big one for me is basically about commitments, you know? I’ve tried before Rocket Genius, I’ve tried to get enough always. I’ve always wanted to have you know, my company and build something. And I’ve always tried to do it before you know doing it part time, you know? You just work at nights, you work whenever you can and that’s fine because you have to pay the bills. You have to have a job. But as it makes, at some point you have to make a full commitment to the project and you have to basically go heads on and otherwise it just doesn’t take off. He just stays in that state to where it’s almost there but not quite. So I feel like, you know, for people that are trying to do this, try to create a company. It’s Okay to start with something part time but you have to know that at some point there’s going to have to be a major you know, leap of faith you’re gonna have to take. And make some commitment because that’s the only way that you’re going to get it to work. That was one thing.

The other thing that I’ve learned that worked for me and for us a lot in that, we’ve touched this before doing the interview is, to when you try to find a product to work with is too maybe try to find one that you need. Because that makes everything else so much easier as far as you know the direction for the project, and the features. So if you find something that you need yourself and develop that product that will help you a lot in actually making that product useful for other people because you know one needs to be there.

And third, my last one is, I put a lot of emphasis on getting things done. Because as a developer, it’s very hard to finish anything you know just getting things out there and saying “Hey, I’m done”. It’s a big deal and it’s you know, I don’t take that you know, lightly. So I think it’s very important for you to start something simple and get it done quickly and get it out there and then build on it instead of trying to build everything single feature into it. Obviously you have to and that’s why it’s important for you to build something for you because you’re gonna know what’s really important and what is maybe I can live without this for a little bit here, and I can build this later. So that goes hand in hand with that. But you know developing something simple that can get the job done you know 80% and get it out there, and get it done having people use it and get feedback because basically it never ends, you know? Gravity Forms has been up there for eight years, we’re still working on it and we’re not even close to done. So it’s like it’s never gonna end so you know, so get something out there that’s useful but not too you know, too complicated. Otherwise it’s going to take you years to develop.

Joe Casabona: Yeah, I love that. So make the commitment, right? I feel like I can level with all of these right now because I just recently at the time of this recording went out on my own with WP in one month on the podcast and I thought I was kind of man, it’s like I thought I would have all this time right? Because I had a full time job, and I I was doing this on the side, and I’m like great, and when I have a lot more time and my time just filled up. I was like, I realized I was neglecting like half of my business by having a full time job. So that is great advice.

Try to find something that you need is great too. I worked in higher Ed and I swear, like the companies that we worked with developed for Higher Ed just because they knew there was money in it, like there’s no way that they were actual users of the system they were developing.

Alex Cancado: Yeah.

Joe Casabona: And get things done. I mean, I have a folder full of half coated projects that could speak to that one. So that’s great.

Alright Alex, thanks so much for joining me!

If you enjoy this episode, you can get more of it over at Patreon.com/howIbuiltit. There is a second part where we dive deep into things like trademarks and a few other really interesting topics that we parse out a little bit more and manage for people who pledge $5 per month or more. And there’s a lot of really great stuff on the Patreon. So go ahead and check it out. I’m a big fan of it. Again that’s patreon.com/howibuiltit.

And thanks again so much to our guest, Alex. Thank you so much for listening. Thanks to our sponsors Liquid web and Sitelock.

And until next time, get out there, and build something.

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *