July 24, 2014

Zack Katz, a prolific plugin developer, joins us for episode 22 to discuss his history transitioning from freelance client work to a full time plugin developer. Over the years, Zack has released dozens of plugins but has really put a focus on extending Gravity Forms. His latest project, which is about to go live, is called GravityView and Zack was kind enough to share some in-depth details of the plugin.

This episode was sponsored by WP Ninjas, a leading WordPress plugin development team that is constantly innovating and building excellent tools for the rest of us. WP Ninjas just recently launched NinjaDemo, a complete demo solution for WordPress.

logo-nd-h-color

 

Show Notes:

 

Transcript
INTRO: Welcome to Apply Filters, the podcast all about WordPress development. Now here’s your hosts, Pippin Williamson and Brad Touesnard.

BRAD: Yes, I am Brad Touesnard and joining me, as usual, is my cohost Pippin Williamson.

PIPPIN: Hello, everybody.

BRAD: And this is —

PIPPIN: Welcome to Episode 22. As usual, we have our sponsors from WP Ninjas with Ninja Forms. If you haven’t checked them out, go take a look at NinjaForms.com, as well as their NinjaDemo.com. And also joining us is Mr. Zack Katz. Do you want to say hello, Zack?

ZACK: Hey, guys.

PIPPIN: Why don’t we —

BRAD: That’s an awesome name: Zack Katz. That’s a great name.

PIPPIN: It is pretty awesome.

ZACK: It sets me up for stardom, I think.

BRAD: Yeah.

PIPPIN: It does.

BRAD: I mean my name is so not brandable it’s not even funny.

ZACK: Well, it’s the silent D.

BRAD: Yeah, it gets you every time, that silent D. Damn it.

PIPPIN: Well, it took me months to figure out how to pronounce your name.

BRAD: I know. I don’t even think I pronounce it right half the time.

[Laughter]

PIPPIN: Nice. Zack, why don’t we get started by having you tell us a little bit about yourself? What do you do? How long have you been working in WordPress, things like that?

ZACK: Well, I’ve been working in WordPress since about 2006 or 2007, and I started with client work and kind of slowly transitioned into doing plugin development and then started with plugin development for myself and for clients, and now it’s my sole business. It’s plugin developments and sales.

PIPPIN: That’s awesome. Now are you still — you said you started with freelance. Was that primarily like theme development for clients, just the generic build a site for them and do everything like that?

ZACK: Yeah, exactly. And, you know, the way I got into plugins was, I think, the way a lot of people do is the client had a need, and there was no functionality out there for what they wanted to do, so I coded what needed to be coded. And I realized, oh, well, if I put this on the repo, other people can benefit from the work that I’ve done. And it’s really — it just caught on and I got really excited about being able to share the improvements that I’ve been able to make.

BRAD: Cool. So when was —

PIPPIN: That’s exactly how I got started.

ZACK: Oh, yeah?

BRAD: When was the first plugin that you put on .org?

ZACK: It was, I think — I had just looked at this the other day — like 2006. It was three lines of code.

BRAD: Wow!

PIPPIN: Nice!

BRAD: 2006 is like old school though, man. That’s a long time ago.

ZACK: Yeah. I was surprised myself.

BRAD: Yeah, most people didn’t even start with WordPress until — like most people say 2008, right? Like it’s the —

ZACK: I think I started 2.5 was my first major update that I remember. I think I started at like 2.3, so maybe I’m wrong about the date, but it was a while ago.

PIPPIN: I started in 2.8, I think.

ZACK: Yeah, 2.8 was a major one.

PIPPIN: Yeah, so you’re quite a ways ahead of me. That’s for sure.

ZACK: Yeah.

PIPPIN: That’s awesome. So you’ve been doing this for a while now. So now that you mentioned that you’ve transitioned into doing plugin development full time, are you primarily doing like custom plugin development for clients still, or have you transitioned into more like commercial plugin development?

ZACK: I’m only developing plugins and features and enhancements that I control at this point, so with repos that I manage, things like that because I got tired of doing one-offs and not being able to continue to grow the project or continue to benefit from the work that I had put into it. So I made a conscious decision five years ago to start transitioning into projects that will help my career, not just pay my bills.

BRAD: That’s cool.

PIPPIN: That’s fantastic.

ZACK: Yeah. And, you know, the thing is it actually worked. That’s the surprising part is that WordPress is such a great community and people are so hungry for plugins and, you know, things to make their site work better, and it’s running so much of the Internet that the community is so vibrant that it’s allowed so many people to succeed.

PIPPIN: That’s great. I’m looking at your site, and I see you have a couple of commercial plugins listed on your site, and I know you have another one coming up really soon that we want to talk about here in a little bit. What are the — so right now all of the plugin development work that you’re doing in terms of from the business side of things is working with existing plugins and doing commercial plugins. Do you do a lot of custom development for clients based on your plugins? For example, you have the Gravity Forms Directory plugin.

ZACK: Right.

PIPPIN: Do you find that a lot of the work that you’re doing is doing development on that that users have requested?

ZACK: You know, one of the things that I’ve done recently that’s been really huge for me is partnering with a development in Portugal. His name is Luis. And he’s been so great to work with, and it’s allowed me to have a support team where people, if they need enhancements to an existing plugin, I refer that request to Luis. He puts together a quote. The enhancement gets created, and I pull it back into the plugin, and then push it to everybody. So it’s a really nice system because the people who need it pay for it. The people who — and the whole community benefits from it.

PIPPIN: Certainly. Brad, do you do that as well?

BRAD: What’s that?

PIPPIN: Take like user requested features, either on a free or a commercial plugin, and then treat it almost like a client or a contract project where you build that feature for them, but then push that back to the primary plugin so that everybody else gets to use it.

BRAD: I did do that recently, actually. Well, not that recently. I guess it’s been almost a year now, but my Amazon plugin, someone needed some work done for it, and they were just like, how about I pay you to do it? And that’s what happened. And then I just released, you know, the version 1 or 0.59 or whatever it was, you know. So, yeah, that was great. It’s basically a sponsored development, right?

ZACK: Yeah.

PIPPIN: Definitely. I really like that. I don’t know if you’d call it a model. But acknowledging that just because you have a free plugin, and in this case it could be free or commercial, but you can still have sponsored development on it and then release those features or improvements out to the world. And as long as that’s communicated clearly with the person that’s paying for that development, and everybody is fine with it, it really benefits everybody.

BRAD: Yeah.

ZACK: It does, and they get the benefit from the ongoing support that that feature will have because it’s now part of the core plugin.

PIPPIN: Right.

ZACK: Instead of having to maintain the compatibility in the future, it’s now on you.

BRAD: Yeah.

PIPPIN: Yeah. I’ve had features where I built them for somebody custom, but they didn’t go into the primary plugin, and then it actually became problematic because, later on, when I built new features that did go to the main plugin, they realized, oh, we can’t use these anymore. And that definitely becomes a problem.

BRAD: Yeah.

ZACK: Right, so a lot of my plugins have been going on that model in terms of like my Gravity Forms Infusion Soft plugin was actually sponsored by somebody to develop it because they wanted an infusion Soft integration. Salesforce plugin has had a bunch of improvements because people have needed X, Y, or Z. And, you know, everybody enjoys getting those free updates.

BRAD: Right.

PIPPIN: That’s great.

BRAD: Yeah, that’s excellent. I mean it makes so much sense to me because, I mean, developers don’t have time to spend. If they’re freelancing or whatever, they don’t really have time to spend developing feature requests that people have, even though they might be good for everyone, right? They will probably get to them eventually, right? Like I know personally it can take me a year before I get to building something that I’ve had in my head for a while, right?

ZACK: Yeah.

PIPPIN: I actually have an active ticket on one of my EDD extensions right now that people have been requesting for a year, maybe even a year and a half, and I’ve written part of it, but it’s simply finding that time to actually sit down and really work that feature out and build it can be very difficult.

BRAD: Yeah.

PIPPIN: And that’s the same with both a free or a paid plugin.

BRAD: Yeah. I mean, if you’re a freelancer, your time is prioritized by what’s bringing money in, basically, right?

PIPPIN: Absolutely.

BRAD: And so if someone can sponsor that feature, it really bumps it up in the priority, right? You know, it bumps it up from a year down the road to like, you know, three, four weeks down the road, which is pretty cool.

PIPPIN: Yep.

ZACK: Well, and especially if the scope of the modification is outside of, I like to call it, productive procrastination. If I take half a day, and I make a new plugin, then that will likely get done way sooner than if it takes multiple days of concerted effort to push out a release.

BRAD: Right.

PIPPIN: Certainly.

BRAD: For sure. So Zack, you’ve got a lot of plugins going here. How do you manage them all? Do you have people that, you know, contractors or how do you — or is it just you? What’s going on here?

ZACK: You know at this point I’m about to sunset a lot of them and put them up for adoption. Some of them just haven’t been maintained in a while, so those ones I just haven’t been focusing on.

BRAD: Right.

ZACK: The Gravity Forms integrations are some of my most popular ones that I’m going to be definitely continuing to update those. And it’s really the — if something serious is happening, then I try to fix it. And if people contact me through my premium support form, then I focus on those requests first. You know, I’ve got so many plugins out there, and I have a lot of them on GitHub, and so I’ve been hoping to get more community support around that, but it’s not really developed yet. So I need to do a better job of communicating that that is out there for other developers to help with.

BRAD: Do you find that there’s kind of — do you find there’s like a weight on your shoulders or —

ZACK: Yeah. You know, it’s hard to visit the support forums now because there are so many tickets that I haven’t addressed. And, you know, that’s where premium plugins really are so much better is because you know you have — you know exactly what your responsibilities are. You have a limited number of customers.

BRAD: Right.

ZACK: And they are not users. And I know that people don’t like to call WordPress plugin users “users”, but customers does have a different meaning. You’ve purchased something. You’ve paid for it. You have expectations. And so it’s really the premium model, even if it’s premium support, I think is the biggest innovation in WordPress since its launch. It’s really enabling WordPress to mature as a platform.

PIPPIN: Yeah, it’s huge.

BRAD: Completely.

PIPPIN: And I think it’s very clear that that’s happening, that maturation, a lot. But just looking at the number of businesses that have come up around the idea of providing support, and providing support not just for their own products but thinking of dedicated support for your entire WordPress site in general.

ZACK: Right. Well, and then there was the project by Alex King. I think he was behind the WP Help Center.

BRAD: Yes.

ZACK: Where they would support any plugins come to them with any issues, and they folded stat. It didn’t work because plugins are complex. The code varies dramatically. And it’s a hard thing to support a plugin if you didn’t write it, and it takes time to get to know a code base. So, you know, there are different hosting platforms that only support certain plugins because they’ve audited them. They know about them. And it’s going to be interesting how that plays out.

BRAD: Someone else is trying that again, that whole idea of supporting plugins and themes. They’re doing everything. I can’t remember the name of it. I came across it a couple weeks ago.

PIPPIN: Yeah, I think I saw that as well. It is an interesting —

ZACK: Well, I hope it works. I hope it works, and I hope they contribute to the GitHub repos if they find issues, even though it’s — it’s important.

BRAD: I’d be super, super surprised if it worked for the reasons you just mentioned. I mean it’s extremely difficult to manage, to provide support for someone else’s code and product that is, you know, continuously evolving.

PIPPIN: Yeah, super difficult. I think in order for someone to do really well and to provide that kind of support, they would have to be an active member of those communities. For example, if somebody wanted to come in and provide third party support for Easy Digital Downloads, they would need to be active in the EDD development community as a user, etc. because they need to be constantly involved with things that are changing, involved in terms of getting to know new things that are coming out, whether they be extensions or features or changes to APIs, whatever they are. If you’re really going to try and do this, especially with large plugins, you have to be familiar with them on an intimate level.

ZACK: True.

BRAD: Yep.

PIPPIN: Especially because once people start paying for support, they’re going to start coming to you with the really hard issues, not the, hey, can you tweak my CSS for me.

ZACK: Right, and then it’s like, well, can you pay me for ten hours of support just to look into this for you?

PIPPIN: Right.

ZACK: No, they want it fixed in an hour.

BRAD: Right. And I mean there are lots of companies out there that are doing kind of like customizations and stuff. And those seem to be — like, or I don’t know — from a distance, they seem to be doing really well. I can’t even think of one off the top of my head.

PIPPIN: WorkPress would be a good one.

BRAD: Yeah, WorkPress. They do themes, right, like customizations?

PIPPIN: Mm-hmm.

BRAD: Yeah, and there are a few others, right?

PIPPIN: Yeah, and they seem to do very well for themselves. Just as like somebody who is running a plugin shop, we get a ton of requests for modifications. And originally I set it up like I would try and take a bunch of them before — we now set it up so that we have a list of consultants that we send — that we just tell people to contact if they have customizations that they want regardless of what it is.

BRAD: Right.

PIPPIN: We have a general form that people can fill out, and then that goes to all the different consultants. And it’s kind of cool because it’s actually turned into some pretty good work for some of those consultants because of the number of requests that go through it. So there is definitely a market for it.

BRAD: Right.

ZACK: So, Pippin, you’re — Brad, I don’t know if you’re on the Core team or not, but one of the things that I keep on running into recently is the need for some Core logging system where any plugin can use, you know, can hook into the logging action and just log something that is available to users under maybe the tools menu instead of having to build the logging systems time and time again.

PIPPIN: Yeah.

ZACK: Is that even being talked about?

PIPPIN: I don’t think so. I’ve never seen any of it, at least not in my own involvement and track.

BRAD: Hmm.

PIPPIN: I did —

BRAD: Pippin, you have something, right? You have a class or something.

PIPPIN: Yeah, I built a class called WP Logging.

ZACK: Yeah, I’m using that.

PIPPIN: Oh, nice. It’s okay. I mean, it could be a lot better. It was kind of a quick and dirty solution, but that works pretty well.

BRAD: Cool.

PIPPIN: So, Zack, out of all of the plugins that you have on WordPress.org or elsewhere if you have other plugins that you host, what would you say your favorite plugins are? I know you said you’re getting ready to discontinue quite a few of them. Are you trying to narrow your focus?

ZACK: Well, there are things like lottery results plugin. You know, one of the reasons I built so many plugins so early was honestly affiliate marketing.

PIPPIN: Okay.

ZACK: And that, you know, WordPress is such a big platform that I got into building some plugins that I found some synergies with. Like I built a lot of newsletter plugins and, you know, there are some like lottery results that don’t need to be around. I don’t need to be managing them. They don’t need to be on my list of plugins that I’m maintaining.

But in terms of my favorite plugins, I really like how simple — and I’m kind of surprised I’m saying this — my user groups plugin is. It allows you to —

PIPPIN: I was just looking at that plugin.

ZACK: Yeah. It allows you to group users and, you know, assign the user group a color. I took a lot of time and paid a lot of attention to how the interface works, and I really enjoyed making that one. That was kind of a sub-project of my IDX Plus real estate plugin, and I’ve forked it often and made it its own standalone.

PIPPIN: That’s a cool, little plugin, so basically you’re giving users — you’re assigning them a taxonomy term, right?

ZACK: Right.

PIPPIN: And making it so that you can group them and so you could, just as like a quick example, we could have users that are in a customers group and users that are the employees group.

ZACK: Right.

PIPPIN: Right?

ZACK: And other plugins do a lot more with that, like you can handle them differently. You can assign them different price structures in EDD.

PIPPIN: Sure.

ZACK: There’s a lot more you can do with other plugins, but in terms of just a cute, little plugin, I think that’s one of them.

PIPPIN: That’s cool.

ZACK: Yeah.

BRAD: Right, and it has nothing to do with capabilities or anything like that. It’s just purely for kind of sorting and then maybe like displaying.

ZACK: Yeah, just being able to organize them and know who you’re dealing with.

BRAD: Right.

PIPPIN: Yeah, it’s awesome. I like it.

BRAD: Cool. Cool.

PIPPIN: Well, so you have done a lot of work with Gravity Forms, and that’s very clear for anybody who goes and looks at your profile. I mean you have somewhere between five and ten add-ons for Gravity Forms. And I know that you are getting ready to release a new plugin that is an improvement, at least tell me if I get this wrong, but basically a significant step up from your Gravity Forms Directory plugin, and this is something that, if I remember right, you’re hoping to launch today. Do you want to tell us about this?

ZACK: Well, GravityView, it’s called, at GravityView.co, and it’s going live at 4:00 p.m., so under three hours from now. And the Gravity Forms Directory plugin started off really small, and it was never really intended to be as feature rich as it is right now. And it started off without fully understanding the uses that it would be put to and the needs of the people who are using it.

So I decided a couple years ago that I wanted to completely rewrite it, and I got started in October of last year. I brought on Luis in December, and we’ve been working full tilt on it since then and, you know, we’ve been paying a lot of attention to making this as easy as possible to display your Gravity Forms entries in table format, in a listing format, kind of like Yelp where you have a profile.

PIPPIN: Mm-hmm.

ZACK: And then in data tables format for ajax table filtering and sorting. So we’ve put a lot of work into it, and I’m kind of getting ADD at this point in terms of trying to make all the interface things just right. But it’s good to have a deadline for launch because otherwise I’d be continuing to improve it.

PIPPIN: Yeah, otherwise you’d just keep finding — oh, I need to fix this or I need to improve this or add this.

ZACK: Yeah.

BRAD: Yeah.

PIPPIN: So it’s really, to put it overly simple, to overly simplify it, it’s basically a way to take all of the data that’s submitted through your Gravity Forms, whatever that data is, and then display it on the front end of your site. So if you have people submitting their own profiles to your site, you can then display a directory of those profiles. Is that right?

ZACK: Yeah, and one of the great things about developing it was kind of coming up with a preset idea, the idea of having some preset templates where you click one button and it builds the Gravity Form for you. And it fills in where the fields should go in the layout automatically. So that was a really cool functionality that I think was integral to the whole plugin and making it really easy. Instead of having to drag and drop every field all the time, you can just click a button and get started with, you know, I think we have eight or ten different presets right now. So that was a really exciting thing that we added.

PIPPIN: So I played with it the other day when you sent me a beta copy of it, and I’ll have to agree with exactly what you just said that those presets were amazing. For one, because I immediately jumped in, and I didn’t really know what I was getting myself into just kind of beta testing it. And then those preset templates immediately said, oh, well, here’s how you would do this or here’s how you do this. Let us help walk you through this. That was awesome.

ZACK: Exactly. Well, and the — you know, there’s a lot of complexity in the plugin, and trying to make complex plugins simple is a big job and Luis has helped me with that and, you know, I always look to Apple’s design principles are trying to make things simpler.

BRAD: As little design as possible.

ZACK: Exactly.

PIPPIN: Yes. I will say the plugin is a really pretty on the admin side.

ZACK: Well, thank you.

PIPPIN: That’s for sure. What are your plans for the plugin? You’re launching later today. This is going to be a commercial plugin, right?

ZACK: Yep.

PIPPIN: And is this your primary focus right now?

ZACK: Yeah, it is. I’m going to be going — I’m going to be continuing to develop full tilt for it for a while. We’ve got a long list of really cool extensions and different views like a map view for being able to display all the entries in a map layout. Each of these features is going to require a lot of work for developing like our own Gravity Forms button that adds a map functionality that we feel like is easy for the users.

PIPPIN: Is that like the ability to have a map that then displays pins for each of the submissions?

ZACK: Exactly.

PIPPIN: Sweet.

ZACK: So there is currently a geo-tagging plugin for Gravity Forms, but we might have to roll our own.

BRAD: Can we go through the full kind of flow of your plugin to kind of give people an idea of how it would be used? To start, would they be starting with no Gravity Form whatsoever? Is that —

ZACK: That’s a possibility, yeah. There are two options. There’s a start fresh button where you click the start fresh button. You’re provided with a list of presets, and you can use any of those presets, and they are things like event listings or resume view or a business view.

BRAD: Okay. What if I choose resume, for example?

ZACK: You click resume, and then the configuration metabox appears where it shows you where all the fields are laid out, including the — it has the title. It has multiple entries view and a single entries view, so you can configure how the fields are arranged in either view.

BRAD: Right, so at this point you’re setting up the form for the front end for people to —

ZACK: Right, but you don’t know that you’re setting up the form. You’re just configuring what you want it to look like, and then you click save or publish.

BRAD: Yeah.

ZACK: And then in the back end the form is created for you. Then all you need to do is add entries to your new Gravity Forms form. But then there’s the other option where, if you already have a Gravity Forms form, and you want to display the entries, you select that form from a dropdown, and then you configure the fields as you want, but there’s no preset layout for that because we aren’t able to know what your form entails.

BRAD: Okay. And so in terms of — so how do you control the display of this? Is it like can developers tweak the CSS and create their own templates or how does that work?

ZACK: Yeah, we use — and I don’t know how to pronounce this, but Gamajo template loader where —

PIPPIN: It’s from Gary Jones, right?

ZACK: Yeah, exactly. And so we use that so that people can override how individual field types are displayed. For example, if you want to change how a file upload field is, you just overwrite the template in your own theme folder.

BRAD: Ah, okay.

ZACK: But then there are tons of hooks. There are presets that are also an extendable class, so you can add your own presets if you want. And you can hook in, in a lot of different places, to modify a bunch of different stuff. And yeah, all the presets — it’s designed to be extendable.

BRAD: Cool.

PIPPIN: It’s really pretty. I’m not going to lie. After having played with the plugin, played with the admin UI, played with the front end, looked at the code, I like it a lot. I’m really excited for it and I hope your launch goes really, really well.

ZACK: Well, thank you.

PIPPIN: Are you able to share with us any information about what the price of the plugin is going to be?

ZACK: Yeah. One second. Let me pull it up. I don’t want to get it wrong on the air. So I went back and forth on a lot of different pricing structures, but the single site $39, and multi-site/three sites $99. That includes some additional premium extensions. And a 100-site license is $239, and that includes premium views such as the map view when that’s developed.

PIPPIN: Very cool, so you’re going to have these extensions as well, and you mentioned — I heard you say premium extensions. Are you going to be selling the extensions one-off as well, or are they only for people that hold the higher tiers?

ZACK: Only for people that hold the higher tiers. That way it’s just simpler.

PIPPIN: Sure.

BRAD: And what are some examples of those?

ZACK: Well, we’ve got a lot of different things in our GitHub issues list. Some of them are ratings and reviews for the entries. So if you wanted to have a Yelp like system where businesses get reviewed, that would enable that. Featured entries where people could pay to have their entries always show up at the top of the results with granular controls. Advanced filtering and sorting, capabilities to show, have conditional functionality where I only want the view to show if it’s in this category, the entry has this term in it or the entry has this value.

BRAD: Cool.

ZACK: So those are just a few. We’ve got a ton of big ideas though.

BRAD: Yeah. And never enough time.

ZACK: Exactly.

BRAD: So I know there’s probably developers out there listening to this, maybe, maybe I think three, I think that’s how many. Yeah. They might be asking what, like why would I use this. I’ve got Gravity Forms. I can code up my templates how I usually do. I’m comfortable with that. What’s the sales pitch here? What are the big advantages to using this over kind of cowboy coding it yourself?

ZACK: Well, if you want to cowboy code it, look at my Gravity Forms Directory add-on and know what that leads to. You know, the Gravity Forms —

PIPPIN: Not credible.

ZACK: Gravity Forms has made huge strides with their new API class. It makes it a lot easier to fetch all the data that you need. So it’s a lot easier to cowboy code what you need, but it’s still your clients aren’t going to have the ability to drag and drop where they want the stuff to be laid out. You aren’t going to have presets. GravityView is designed to be as simple and powerful as possible to get your entries on the front end of your site and to also make it easier for your clients to maintain that. So I think that’s the main selling point.

BRAD: Cool. I like it.

PIPPIN: Yeah, that’s huge.

BRAD: Should we move on to business talk?

PIPPIN: Yeah, let’s talk a little business here. And this goes right into your launching of GravityView, so you have chosen, I guess — I mean this is going to be a commercial plugin. It’s very much a premium model, but it’s also based on a free plugin, so you have a little bit of the freemium model going on here as well. Basically you have that free version and then you have this significant upgrade.

Now I understand that it is a different plugin, but do you envision this upgrade path here, and what made you really decide? What made you choose the pricing model that you did?

ZACK: Well, there’s a lot of pressure to be free. And I really feel that, and I feel like I owe it to the community to make it free. But in terms of what’s best for the product and what’s best for the people who purchase and use the product, that’s just not possible for a lot of different reasons. But mainly it’s expectations.

There’s been a lot written on this. You know, Tom McFarland has been doing a lot of writing on freemium and premium and just what expectations are for developers and for the users of the plugins. It just made it clearer the relationship between us and them, you know, the customers and the developers, and it allows us to grow faster. Even if fewer people are using the plugin, it allows us to reinvest in the plugin at a bigger rate than just providing support for a lot of people who have issues on the free side. So I think that’s —

PIPPIN: Absolutely.

ZACK: That’s my main driver in the way I’ve priced it is what’s best for the product moving forward, not what’s best for me. Unfortunately, what’s best for the public at large sometimes free isn’t best for them, actually.

BRAD: Yeah.

PIPPIN: Well, I think what a lot of people fail to realize when you look at it as a free product, it’s going back to that, the amount of responsibility and the amount of time that you can dedicate to a product when it’s free and when there is only so much return for you. I mean there may be huge return in terms of the emotional rewards and the ego that you get knowing that 100,000 people use your free plugin and that it’s awesome. But that doesn’t pay your rent.

BRAD: Yeah. Ego doesn’t go so far when you’re living in a cardboard box.

PIPPIN: Ego does not pay your mortgage.

ZACK: Though it also, the ego gets destroyed when people get mad at you for not providing immediate support —

PIPPIN: Absolutely.

ZACK: — for a ticket that had been posted at 2:00 a.m. in the morning on a free.

BRAD: Yeah.

PIPPIN: But I think it’s very easy for people to get….

BRAD: I think we all know that if you develop a plugin and put it on .org, you owe them a response within five minutes no matter what time of day.

PIPPIN: I think anybody who has had a plugin that has any larger number of downloads has definitely experienced that.

BRAD: Yeah.

PIPPIN: And it’s interesting, but I think a lot of people get caught up on not fully understanding the — it can be — it can actually be better for the users of a product to have it be a commercial plugin as opposed to a free one, and it’s better because they’ve paid for it, because suddenly you as a developer or the team behind it not only have a responsibility to work to improve issues on it, to make it better, to fix bugs, etc. and to support any questions you have, but they also have a more vested interest in doing it.

I know that if I spend more time working on EDD or Affiliate WP or Restrict Content Pro this month, that will likely boost the number of sales that I get, or it will boost what people think of the product, which then makes them talk about it more to other people. And so it can be better for the users to pay for it because of the developer then having that vested interest in improving it, whereas if you have something that’s free, they don’t have — they want to stroke their own ego by making it better and better, but that’s it.

BRAD: Yeah. I really like the freemium model. That’s what we do with Migrate DB Pro. And I can tell you right now the benefits to the free plugin are enormous when you have a successful commercial plugin that’s an upgrade. And we’re going to prove that really soon by releasing a brand new version of the free plugin with a huge revamp, so it’s going to be a lot better than it is right now. I mean we’re not going to roll all the pro features in or anything crazy like that, but it’s going to be much more refined than it currently is, and it’s going to work in a lot more hosting configurations.

The reason that it’s going to be a big change is that we’ve — so what happened is when we started developing the pro version, the code bases completely diverged, and so now we have, at the moment, two code bases, but we’re kind of getting back to one code base. So the free version is going to be basically a kind of stripped down pro version, the same code base. We just have like a build script that removes some of the files and stuff.

PIPPIN: Nice.

BRAD: And that makes it way easier for us to maintain and it’s also better for our commercial customers because we can push out a big chunk of the commercial code base in the free plugin first before we do a release of the commercial plugin.

PIPPIN: To kind of test the waters?

BRAD: Yeah. Yeah, and I mean, you know, some of the bugs might get worked out and whatever. So that’s how we’re going to do our releases, so free version and then, maybe a couple weeks later, the pro version will go out. So yeah, man.

PIPPIN: Do you see that as a way of also using the user base that your free version has to drive more people to the pro version?

BRAD: Yeah, I mean between 40% and 50% of our sales are initiated from the free version of the plugin.

PIPPIN: Oh, wow! That’s huge!

BRAD: Yeah, it’s massive. Right?

PIPPIN: How are you tracking that?

BRAD: We do coupon codes.

PIPPIN: Ah! Nice.

BRAD: In the free version, we give it a coupon code. We’ve also got Google analytics tracking in all the links from the free version, so that’s mainly how we track it. But we don’t do anything — everything is above board. Don’t want to get in trouble.

PIPPIN: Zack, will you be doing some of the same kind of things with your Gravity Forms Directory add-on and pushing people over to GravityView?

ZACK: Yeah and, you know, it’s funny. Even though they’re not the same code base, and they’re not the same plugin, I am going to be motivated to update my Gravity Forms Directory plugin because it will still reflect on the GravityView plugin, so I’m going to be updating the plugin to have cross-promotional banner in the settings page, for example, but then I’ll also fix some bugs and respond to tickets. And so it’s definitely going to spill over. It’s just interesting that it’s not going to be for the same plugin.

PIPPIN: Right, because they’re not actually going to be like 100% compatible. Like if I use Gravity Forms Directory for a month and then decide to go purchase GravityView, are they, I mean, can you migrate between them?

ZACK: Right now, no. Thankfully the approved entries functionality will migrate, so that’s one of the big things that I know that people have spent a lot of time on and one of the core functionality pieces of GravityView and the Directory plugin is you can approve and reject entries before they are displayed, so you could have somebody submit a form and they check a box, and the entry gets displayed on the website. So those approvals or rejections do get migrated. But other than that, the short code won’t work now.

PIPPIN: But all the data is actually stored in Gravity Forms, so all the have to do is —

ZACK: Exactly.

PIPPIN: — rebuild their view.

ZACK: Yep.

PIPPIN: Yeah, so that’s not a difficult migration.

ZACK: No, thankfully it’s all based on Gravity Forms.

BRAD: Right. Cool.

ZACK: And so just a plug for your sponsor, I did set up the demo site using Ninja Demo.

PIPPIN: Oh, very cool.

ZACK: And it was a great process, and so it’s nice to finally have a full-featured demo functionality that I’ve been wanting to have that functionality for years, so it’s really cool to finally be able to —

PIPPIN: I know that I’ve never wanted to take the time to build a demo.

ZACK: Exactly.

PIPPIN: And then they released it, and I built one.

ZACK: Well and, yeah, how do you do the self-destruct? There was that CMS website where you could test all the different CMSs back in the day.

BRAD: Oh, yeah!

ZACK: I tested out….

PIPPIN: I forgot about that.

ZACK: Yeah.

BRAD: Yeah.

ZACK: And it’s like this demo will reset in three minutes, and I was like, “How do they–?” You know, I guess they run a query or like a cron script. Anyway, it’s really nice to have all that taken care of.

BRAD: Yeah.

PIPPIN: Yeah, that’s very cool.

BRAD: For sure. I wish I had a demo-able plugin. I don’t really yet.

ZACK: It would be the most boring demo ever, like move from this demo to this other demo.

BRAD: Yeah, exactly.

PIPPIN: I don’t know. I think you could demo WP Migrate DB Pro. Mostly just showing how it works.

BRAD: Yeah. A video is just as good though, right?

PIPPIN: It’s really not that different than a video at that point.

ZACK: Right.

BRAD: Exactly.

ZACK: …your posts get moved over.

PIPPIN: Yeah.

BRAD: Yeah, exactly. Should we talk about–? Well, we should probably mention WordPress Beta 2 is out, so get it.

PIPPIN: Yeah, 4.0.

BRAD: Get it if you haven’t already. Then do all your —

PIPPIN: It’s looking really good.

BRAD: Plugin developers should be testing on that, in my opinion.

PIPPIN: Absolutely.

BRAD: If you’re doing development.

PIPPIN: Honestly, I think, as developers, we should always be running trunk, at least on our main development machines.

BRAD: Trunk? Oh, I don’t know there. Risky.

PIPPIN: Okay, trunk or latest beta. Take your pick.

BRAD: Yeah.

PIPPIN: I personally like trunk, but that’s because I like to play with things.

BRAD: Isn’t trunk pretty rough at times though?

PIPPIN: No. You can run trunk on a live site pretty easily.

BRAD: Really? Okay.

PIPPIN: Really. I mean an example of something that is a little bit rough: over the last four weeks they’ve been doing a lot of work on the WordPress media library for the grid view. And that grid view was pretty rough for a little bit.

BRAD: Right.

PIPPIN: But it wasn’t, like, it wasn’t going to break anything.

BRAD: Right.

PIPPIN: I mean, in general, obviously it is trunk, so things can break. But, in general, trunk works perfectly fine.

BRAD: Right. All right. Well, maybe we’ll make a switch over.

PIPPIN: Yeah, I like running trunk on all my development things.

BRAD: Cool. What else should we mention here?

PIPPIN: This is something that came out pretty recently. We tried to get to it last episode, but ended up running out of time, but it’s something I would like to mention, and I think they mentioned it on WP Tavern recently. It’s this website called WPCore.com. Have either of you guys played with this?

BRAD: Right.

ZACK: I just heard about that on the podcast, so I haven’t played around with it. But, you know, I had a system for doing that back in the day with, you know, a zip file that I would pull in, and it’s nice to have. It sounds like a really great functionality.

BRAD: Yeah.

PIPPIN: Yeah. For anybody who’s listening and hasn’t heard of it yet, it basically allows you to build plugin collections. And so you go and build a collection of say 5, 10, 15, or even 100 plugins, and then it gives you a way to install that collection all at one time, which is really kind of cool. So maybe you have a suite of plugins that you use for your development sandbox, or you have another suite of plugins that you use for all of your client sites, or another suite that you use on all your personal sites. You could set up all these collections, and they just really easily install them all at one time.

ZACK: But I think the biggest thing for me about this is that it’s all public and social, and you can actually use other people’s collections.

PIPPIN: Yeah, I like that a lot.

BRAD: That’s pretty cool.

PIPPIN: Just as an example, there’s somebody has a debugging collection that they’ve published on the site, and so they’re adding in plugins that are used for debugging, such as Debug Bar, one called “what template file”, and things like that. And I like that idea of having these collections that can then not necessarily be curated, but then, like, voted upon so we could have a community moderated list of the best development tools, the best security tools, things like that.

ZACK: Well, that’s kind of like —

PIPPIN: I don’t know what will happen with this, but I love the idea of it.

ZACK: It’s kind of like Composer for plugins, like for plugin groups where you just point to a group and you say build it.

PIPPIN: Yeah.

BRAD: Cool. Yeah. So the guy behind this, his name is Stuart Starr, and he reached out to me a couple weeks ago.

PIPPIN: Thanks for building something awesome, Stuart.

BRAD: Yeah, thanks, Stuart. This is cool stuff. I think people who use Composer to manage their stuff would probably be like, “What do I need this for?” And I don’t know how I’d answer that question, to be honest. I don’t know if this has advantages over Composer or what. I don’t use either. I don’t use Composer, and I don’t really have a need for any of this stuff. Do you guys use Composer?

PIPPIN: I’ve used it a couple of times, and it is cool.

ZACK: Yeah, I use the GitHub sub-modules and it just makes my brain hurt.

PIPPIN: Yeah.

ZACK: So I’ve kind of moved over to sub-modules, but then that has its own problems.

BRAD: Oh, yes. The grass is always greener on the other side.

PIPPIN: I think this is something that will be huge for people that are doing — that have a really high turn point for sites. So like if you turn out a lot of sites, I mean whether that means you’re doing 100 sites a month or 2 sites a month, but it could be a very useful tool for those kind of people if they have those standard plugins that they install in every single client site. Honestly, I don’t build sites anymore. I have four or five sites that I run, but I’m not building new sites every day, so it’s not something that I’m going to really use, but I can see it being very valuable for contractors and things like that.

BRAD: Yeah.

ZACK: Definitely.

BRAD: Totally. Have you guys seen the show Halt and Catch Fire? Have you guys heard about this show?

PIPPIN: No.

ZACK: I’ve seen an episode but haven’t stayed up with it.

BRAD: Man, it’s so nerdy and awesome. It’s so good.

PIPPIN: Tell me about it. This is news to me.

BRAD: So it takes place in the early ’80s, so, you know, when I was in diapers probably. And it’s kind of the beginning of the PC or the IBM compatible. So when the IBM — I guess these people started up these computer companies that were basically clones of the IBM, right, of the IBM PC. And it’s about a company that’s making a run at it. And it’s like craziness, right? So it’s basically a startup, but it’s a hardware startup.

PIPPIN: Startup before startups.

BRAD: Yeah, yeah, and it takes place in Texas, I think.

ZACK: Yeah.

BRAD: I can’t remember which city.

PIPPIN: That’s cool.

BRAD: But, yeah, it’s just great acting and great, you know, totally geek stuff. Like they’re talking about, you know, they’ve got a programmer that’s like a punk, like and ’80s punk kid and she’s like writing the operating system and, yeah, it’s just really cool, so check it out.

ZACK: I have to say I stopped watching it after the scene where she was like going to parties so that she could clear her mind and then she ends up writing the code for the compiler or something with lipstick on a mirror.

BRAD: Yeah, that —

ZACK: And of course she happens to be, you know, super hot and, like, you know, always wearing almost nothing. I took issue with that, but maybe I should give the show another shot.

BRAD: Yeah, yeah, yeah. Yeah, she’s definitely kind of like the rogue character. And then you have — there’s actually some pretty strong female characters in the show. I thought that was kind of unique, especially in the IT world, right?

PIPPIN: What network is it played on?

BRAD: AMC.

PIPPIN: All right. I may have to see if I can get a hold of it.

BRAD: They’re the masters of the period pieces, right, like Mad Men.

ZACK: They do.

BRAD: AMC.

PIPPIN: Yeah.

BRAD: Yeah, so they just — I mean the house that these people live in, it’s just like screams ’80s. It’s just I love that stuff.

PIPPIN: That’s awesome.

BRAD: Yeah.

PIPPIN: Well, I think we’re getting pretty close to wrapping up here. Brad, you have another thing coming up pretty soon that I know that you’re working on organizing. Do you want to tell us a little more about that —

BRAD: Yeah, yeah.

PIPPIN: — for anybody who didn’t catch it the last three episodes?

BRAD: So we’re going to be snowboarding and talking business at Sugarbush Mountain in Vermont. And that little conference is called Big Snow Tiny Conf, and it’s going to be January 26th to the 29th. We’re going to get a chalet on the side of the hill, ski in, ski out, that kind of thing. It’s going to be awesome.

PIPPIN: Yeah, it sounds fantastic.

ZACK: That does.

BRAD: Some come one, come all. So sign up to the email list BigSnowTinyConf.com.

ZACK: And what’s your capacity?

PIPPIN: I’m hoping to make it out there so I can embarrass myself with my horrendous snowboarding skills.

BRAD: Capacity? I think we’re aiming for, you know, like 14, 15, 16 people, something like that. But, you know, we’ll take less. We’ll take maybe more. We haven’t really decided on a cap or anything.

PIPPIN: And you’re doing that with Brian Castle, right?

BRAD: That’s right, yeah.

PIPPIN: Yeah. Awesome. Well, shall we wrap up?

BRAD: Sure thing. Review us on iTunes, folks.

PIPPIN: Yeah. Much appreciate it if you do.

BRAD: Yeah. You can help people discover us, so that’d be great.

PIPPIN: Thanks, everybody, for tuning in and listening. And thank you, Zack, for coming on.

ZACK: Well, thank you, guys.

BRAD: Yeah.

PIPPIN: Best of luck with your launch later today. I hope it goes wonderful for you.

ZACK: Thanks.

BRAD: All right. Thanks, Zack.

PIPPIN: All right. Thanks for listening, everybody.

BRAD: Thanks, everybody.