November 7, 2016

Today’s episode is sponsored by SearchWP, a powerful plugin to enhance your WordPress search experience. One of its main features is its ability to build custom search engines. It also has the ability to search within PDF files, office documents, and other types of files. You can get a free three-day email course that explains how SearchWP can improve your search function at SearchWP.com.

searchwp-logo

 

 

 

 

 

 

Today we are talking about various updates. Here are some of the highlights:

  • Brad has acquired Better Search Replace Pro earlier this year, but he’s announcing it now because he wants to build some of its features into Migrate DB Pro. He answers some questions from Pippin about the acquisition process and what it will look like going forward.
  • Brad also talks about some other updates and changes to Migrate DB, as well as his process for walking people through the Mergebot beta testing process.
  • Pippin has pushed through a few updates and has brought on a new support technician to help with support. He’s also put out a free add-on called Limited Quantity Available that limits the number of times a subscription can be purchased. He talks about some other updates to EDD, including add-on release updates.
  • Pippin tells listeners about the process of discovering a free Stripe plug-in that caused some confusion, acquiring the plug-in, and deciding to discontinue the product.
  • Pippin put out a new version of the iOS app for EDD. It has more features than the old version, with much more information available. It’s also compatible with the Apple Watch.

Links:

Episode 44 with Jonathan Christopher

Big Snow Tiny Conf

WordCamp US 2016

If you’re enjoying the show we sure would appreciate a Review in iTunes. Thanks!

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

PIPPIN: Welcome back to Apply Filters, Episode 71. Today Brad and I are going to talk about a few plugin updates that we’ve done as well as a couple of conferences and various other updates. But first–

BRAD: This episode is sponsored by SearchWP, a powerful plugin for WordPress that dramatically improves the default search engines inside of WordPress. One of the main features, it has the ability to build custom search engines. For example, you could build a search form that’s specific to your e-commerce products or your health documentation or any other kind of content that’s on your website. It even has the ability to search within PDF files, office documents, and other kinds of files on your server. SearchWP right now has a free three-day email course that you can sign up for from SearchWP.com that will help explain how SearchWP can improve your site.

We had Jonathan Christopher on the show, the creator of SearchWP, back in Episode 44 if you’d like to listen to an interview with him. Be sure to thank him for sponsoring this episode and upcoming episodes by going to SearchWP.com and checking out the plugin.

PIPPIN: It’s well worth the effort and the price tag.

BRAD: Yeah. Awesome.

PIPPIN: All right. So Brad, I know you guys have pushed out a couple of updates recently. Want to tell us about them, or if you have anything else you want to go over first?

BRAD: Yeah, so the cat is out of the bag that we actually acquired a plugin. We acquired Better Search Replace Pro from Matt Shaw back in January. And I didn’t announce it until now because I wanted to build in some of the features of Better Search Replace Pro. I wanted to build them into Migrate DB Pro and kind of announce our plans for that. And so this release is the start of that.

This release is kind of the first big feature of Better Search Replace Pro that we’ve added to Migrate DB Pro. It is in place, search and replace, so you can run a search and replace on the current site that you’re currently on. That was not possible before with Migrate DB Pro, and now it is in version 1.7.

An example of why you would use that is so let’s say you’re developing. You have a local development environment, and you have a staging site that eventually is going to become the live site, so there’s currently no live site or you’re replacing a live site, or something like that. Well, when you go to turn that staging site into a live site, you can just use the find and replace feature to change all the URLs from the staging site URL to the live site URL. That’s pretty common. I know I’ve done that quite a few times.

PIPPIN: Oh, I’ve had to do that so many times.

BRAD: Yep. That’ll be–

PIPPIN: I think it’s a … feature.

BRAD: Yeah, that’ll be pretty handy.

PIPPIN: I’ve got a couple of questions for you about Better Search Replace and kind of that acquisition process and what it’s going to look like going forward. There are two versions of the Better Search Replace plugin. There’s the free one on WordPress.org, which is now owned by Delicious Brains, your company, and also Matt Shaw, I believe. And then there is Better Search Replace Pro.

Better Search Replace right now has over 100,000 active installs, and I would assume the pro version has a pretty decent sized customer base, based purely on the active installs of the free version. What are your plans for that plugin? Are you guys going to — are you going to deprecate it over time? Are you going to slowly discontinue it? Or are you going to maintain them side-by-side?

BRAD: We did acquire the free version as well, so we acquired the copyright and that kind of stuff and control of the free plugin. We’ve acquired kind of the whole thing from Matt. If Matt decided to move on tomorrow, for example, we would still have control over BSR and BSR Pro.

The plan is to consolidate the code bases because there’s a lot of overlap between Better Search Replace and WP Migrate DB, and so it doesn’t make sense for us to be duplicating our efforts by maintaining two separate code bases. The plan is to eventually be able to create a build of Better Search Replace Pro and Better Search Replace from the WP Migrate DB code base. By that I mean running a script that doesn’t include certain files in the zip and includes certain files that it doesn’t include in Migrate DB and that kind of thing. We actually — we’ve opened sourced our build script, so I can link that up in the show notes for people to check out if they’re interested.

PIPPIN: With that build script, you’re planning to actually — you’re going to maintain one code base, but actually distribute two products?

BRAD: That’s right. Yep.

PIPPIN: Ha!

BRAD: Yeah.

PIPPIN: Cool.

BRAD: The build script will actually change the branding too, so it’ll still be called Better Search Replace and Better Search Replace Pro, and it will be different than the other products. We’re not just changing the name and repackaging it.

PIPPIN: Do you think there’s a danger of the two products getting confused or customers being unclear on what is what? If the features of Better Search Replace are inside of WP Migrate DB Pro, it wouldn’t make sense for somebody to own both of them. Do you think there’s a possibility of confusion there?

BRAD: I don’t think so. The way I look at it is Better Search Replace Pro is kind of a less feature rich version of Migrate DB Pro. And so it’s kind of like Migrate DB Pro’s little brother in a way, and it’s priced accordingly. Because it’s not as feature rich, it’s going to have a lower price tag. And so if, for example, you are someone who finds Migrate DB Pro to be too expensive for your needs, but you still want some kind of tool to help you with your finding and replacing, with your migrations and deployments, and all that stuff, maybe Better Search Replace Pro is a better option because of the price tag.

PIPPIN: Will you provide customers a way to upgrade or downgrade between the two?

BRAD: Maybe in the future. Not right now we don’t. As an example, we just did this release this week. One of the comments on our blog was that, “Oh, I just bought Better Search Replace Pro. Now you’ve added this feature to this plugin. Oh, man.”

And so I just replied, like, “Just send an email to support. We’ll give you a refund for Better Search Replace Pro. No problem.” We can get around this. So if, for example, someone has Better Search Replace Pro and they want to upgrade to Migrate DB Pro, we can create a coupon, like a discount code for them so that they can get the same price.

PIPPIN: Certainly. You will allow customers to upgrade and move between the two.

BRAD: Yeah.

PIPPIN: At least for now there’s not a one click upgrade or anything like that.

BRAD: That’s right. That’s exactly right.

PIPPIN: Which I think is perfectly reasonable, especially considering they’re on different websites. One of them is on WooCommerce. One of them is on EDD. I think that’s a perfectly fine approach.

BRAD: Yeah. Yeah. Yeah, I could see eventually consolidating everything onto one site. But right now it’s just too much hassle.

PIPPIN: Yeah.

BRAD: For now we’ll leave it at that.

PIPPIN: Welcome to the challenges of acquiring an existing product.

BRAD: Yeah. Exactly, yeah.

PIPPIN: It’s rarely ever a super smooth process.

BRAD: Yeah. Yeah, so anyway, the bottom line is like anyone that has Better Search Replace Pro, they shouldn’t have to worry. We’re going to be maintaining this indefinitely, and Better Search Replace Pro is going to stick around. It’s going to have all the features it currently has.

PIPPIN: Do you plan to keep the free version around too?

BRAD: Yep. Yep, the free version will stick around. I mean that was one of the main reasons we purchased it because, I mean, look how well it’s doing on WordPress.org.

PIPPIN: Right. There’s a lot of value there. I mean 100,000 active sites, great reviews, I mean let’s see. It’s got 125 five-star reviews and only less then 10 one- and two-star reviews, so it’s pretty stellar.

BRAD: Yeah. I mean that’s a testament to Matt and the work that he did there, so yeah. I was happy. It was an interesting conversation. I wasn’t — I had very little hope of actually doing an acquisition. It was kind of more in the back of my mind.

It wasn’t like I called him and said, “Do you want to sell?” It was more like, “Hey, Matt. How’s it going? How are things?” And kind of like maybe halfway through the call I was like, “Have you ever thought of selling?” you know, and kind of approached it that way. Yeah, it was an interesting chat.

PIPPIN: Cool. Anything else in the new 1.7 release of WP Migrate DB Pro that you want to share?

BRAD: We also have a find and replace sub-command for WP CLI now. And that’s built into Migrate DB and Migrate DB Pro, so you can use that command to do a search and replace in place. And it has a few advantages, like the question people would have there is, like, why wouldn’t you just use WP CLI search and replace command?

Our search and replace offers multiple values, so you can comma separate multiple values, and so you can do a find for multiple things and replace it with multiple things. Then there’s also a little bit more — it’s a little safer because we duplicate all the tables and run it against the duplicated tables before replacing. Then there’s save profiles as well, so you can actually save your find and replace profile if you can remember….

PIPPIN: That’s the one I was wanting to comment on. I think that right there is an important piece because if you have, whether it’s a staging site or some kind of routine process that you want to do find and replaces a lot and it’s always the same values, having those saved profiles can be huge. It’s just a really nice little timesaver there.

BRAD: Yeah, so you’re not always typing out these long commands. Yeah. One of the nice things is that we’re also handling HTTPS to HTTP. If you’re developing locally on MAMP and you didn’t set up HTTPS, but the staging and live sites have HTTPS. Well, when you migrate to those sites, to and from those sites, you need to change the protocol on all the URLs from HTTPS to HTTP.

You were able to do this in the past by adding an additional find and replace, so manually adding it when you’re setting up your migration. But now we just handle it for you. We detect the protocol on each side and it’s just handled, so you don’t have to worry about it any more in 1.7.

Another little thing that we added is a copy to clipboard button for the connection information. It copies to the clipboard, but it also keeps it all on one line so that it’s to just paste into your terminal.

PIPPIN: Thank you for addressing one of my biggest complaints whenever I copy commands in the terminal. If the line break, it like goes, executes the first one, and then it loses the rest of the command.

BRAD: Yep, that’s nasty, so we wanted to fix that and make it easier. And so it’ll still work with our box as well, our connection info. Like if you paste it in, it’ll still work. So it works both on the command line and in our UI.

PIPPIN: Very cool.

BRAD: And we also did a little bit — we added — we did release a new version of the CLI add-on, so a major update. We added a new sub-command, so you can actually change the settings, Migrate DB settings from the command line now. You can update the license. You can add your license key from the command line. You can turn on push and pull permissions. In the settings tab in Migrate DB Pro, you’d be able to set those settings from the command line now.

People that were trying to automate the setup of their sites, this was a big missing piece for them. They had to do some hacky stuff set those settings. Now it should be nice and clean to do it that way.

PIPPIN: I’ll be honest with you. It makes me jealous sometimes of the people that set up all these new sites all the time because they get to use it. I would love to use this tool more often, but I don’t set up new sites all the time.

BRAD: Right. Well, I’m kind of in the same boat. I don’t really use it either. I rarely use it.

PIPPIN: I guess I just need to get better at updating all of my staging sites automatically so that I get to use it.

BRAD: Yeah.

PIPPIN: Every time I use it, it’s a great experience.

BRAD: That’s a funny thing, right? You and I, I think our products are scratch your own itch products. Yet, at this point we barely even use our own products. I guess you use EDD quite a bit.

PIPPIN: We use EDD extensively.

BRAD: Yeah.

PIPPIN: Some of our other plugins we don’t use as much. We’re trying to really focus on the ones that we use.

BRAD: Right. Yeah. Okay, and the only other thing is the profiles. We also added a profiles sub-command, so you can actually view the profiles that exist on the command line so that you don’t have to go to the UI to see what profiles you have set up. Yeah.

What else have I been up to? I’ve been doing walkthroughs of mergebot, so I’ve done seven or eight walkthroughs.

PIPPIN: Walkthroughs like beta testers?

BRAD: Yep, so I’ve picked people out of the beta list and set them up with a mergebot account and then stepped them through. Well, I had them drive, so I got them to set up a production and development environment and set up mergebot on those environments, and make some changes. I was telling them what to do, but they were doing it, and it went pretty well. We didn’t run into too many issues, so the beta, opening up the beta to more people is looking pretty good. I still have a few things. I think I’ll probably still do some walkthroughs, some more walkthroughs before we open it up kind of publicly. Yeah.

If you’re waiting to try mergebot or something, you’re on the beta list, and you’ve already asked to do a walkthrough, send me another email because then that puts you at the top of the list. If I see an email come through, I’ll be sure to reach out to you. I think there’s over 100 people that have asked for a walkthrough, so I’m just kind of picking them off the top of the list right now.

Yeah, and the only other thing is Big Snow Tiny Conf is the snowboarding/business conference that I’m organizing in Vermont and in Mont Blanc, France. So if you’re interested in either of those, check out BigSnowTinyConf.com. There’s one seat left for Vermont and I think one or two left for France. Yeah, if you’re interested.

PIPPIN: Jump on them.

BRAD: Yeah. Anyways, what have you been up to, Pippin?

PIPPIN: I’ve got a few things. We’ve been releasing a few updates in the RCP land. We’ve got two little free plugins that we pushed out and then a couple of EDD updates. First is, on Monday we brought on a new support tech for Restrict Content Pro on a trial position for a 30-day trial. We’re pretty excited for that as the plugin has grown quite a bit over the last six months. Our plan to focus on it has been paying off. With that comes an increase in support tickets. And so we needed to bring someone else on to help with support so that we can spend more time focusing on the development and so, so far it’s working really well. We’ll see how it works for the next 30 days, and hopefully we’ll have a permanent position.

BRAD: Is that a paid trial?

PIPPIN: Yes, paid trial.

BRAD: Yeah, of course.

PIPPIN: Any time we do a trial, it’s typically paid hourly. Pretty similar to your trials. Also in the RCP land, we released two free add-on plugins in the last week or two. The first one, every now and then we get requests from people that want to limit the number of times a subscription can be purchased. Usually it’s in a scenario where they’re offering a class or some kind of session, and they’re using Restrict Content Pro to allow people to register for it. Sometimes it’s a one-time purchase. Sometimes it’s a subscription, but they want to limit the number of times that can be purchased.

It’s not a feature that is typically standard in selling subscriptions, so we went ahead and released it as a free add-on. It’s called Limited Quantity Available. It’s a free one that’s on WordPress.org. Anybody can use it, and it lets you limit the total number of times a subscription level can be purchased.

Then the other add-on that we released is also a free on that’s on WordPress.org. What it does is it actually connects or bridges the gap a little bit between Restrict Content Pro and Easy Digital Downloads. The two plugins are really completely separate from each other. There is a little bit of overlap, but more or less they both have their own purchase process. They both have their payment tracking, their own products or subscription levels. But other than that, there’s not a whole lot of interaction between them.

But we get people a lot that want there to be more interaction. So one of the most common ones are people that are running an e-commerce shop. Think of, say, like a WordPress theme shop. Then they sell all of their items individually. But they also want to be able to offer a subscription service that allows people to come in and purchase a club membership, basically, and get free downloads to all of the files.

What we did is we built this little add-on called EDD Member Downloads. What it does, it allows you to designate a subscription level as granting access to a certain number of download products inside of EDD. So we could have a gold membership level that grants access to ten downloads per subscription period. What that would mean is that then if I have that subscription, I can download ten unique files. So if there are 20 products in the EDD store, I could download 10 of them free of charge. Then as soon as my subscription renewed, I could go download ten more of them.

You can limit it so that there’s a limit, a specific number of times that you can download the files, or you can make it unlimited. If you want to do a true club membership, you would just say, as a subscription holder you get to download anything you want. And so then any file that is attached to those products in Easy Digital Downloads becomes a free download for those subscribers. This has been one that I think we’ve had requested over and over and over again, and we’re pretty happy to have finally built it.

It’s got a little ways to go before it’s nicely rounded out in its feature set, so at the moment it’s still a little bit introductory. There’s a few specific features that are not yet supported. But, overall, it seems to be a welcomed addition. It’s had a pretty good response so far.

BRAD: How many people would you say in your customer base would be interested in something like this?

PIPPIN: I would say we get a request for it at minimum a few times a month, if not every single week.

BRAD: Okay.

PIPPIN: And we have for the last four years.

BRAD: Okay. Okay.

PIPPIN: It’s been one that we’ve known that we needed to build for a long time.

BRAD: Yeah, and those are people that actually take the time to request it. There’s usually like a factor of, you know, whatever, two or three times as many people that don’t actually send the email–

PIPPIN: Right.

BRAD: –that actually would be in the market for it.

PIPPIN: Another example of a site that you would use this on would be, say, like a stock photo site. Imagine that you have a stock photo site where you can buy any photo individually, but you can also subscribe to a membership where you get 100 photos per subscription period. This would allow you to do that as well.

Then in the EDD land, there’s two things that we’ve done in the last two weeks of note. I guess we have some updates coming out to the core EDD plugin that are coming very soon. We’ve made a few significant improvements to some reporting and performance aspects. And then we’ve also got a couple of — two of our primary add-ons are about to get major release updates. The first one being software licensing is probably in the next month in a half is going to get a major update that adds a bunch of new improvements. And then our commissions plugin is also going to have a major update in the next month to two months.

But of the ones that are already done, there’s two things. First is we started to notice an issue recently where we would get a support ticket where a customer would say, “Hey, I’m having a problem with the Stripe integration. I don’t see these settings,” or, “It’s not behaving the way your documentation says it will behave.”

What we’ve realized is that these were customers that were actually using a free Stripe plugin that had been released on WordPress.org and were not using the one that we sell. But they didn’t realize that. Probably at some point in time they installed the free plugin. Then, say six months later, they see that we’ve pushed out an update to our recurring payments plugin, as an example, and then they go, and they try to use it. They don’t see any of the options that our documentation shows. It’s because they were using the free one developed by a third party a year and a half ago as opposed to our official one that has all the extra features in it.

BRAD: What was the name of the add-on on the .org repo?

PIPPIN: Oh, it was like Stripe Payment Gateway for EDD or something.

BRAD: Okay.

PIPPIN: I think it was EDD Stripe Checkout was the name of it.

BRAD: Ooh, that’s against the newest, the latest naming.

PIPPIN: Yes, it is. But they got in before those, the new WordPress.org rules were put in place, so it was fine. But anyway, so we started to notice it, and we’ve known about the plugin for a long time. I have no problem with there being free alternatives. I think that’s great. It’s not apparently hurting our business, and competition is great. So I have no issues with it, but we realized it was starting to cause problems for customers. There was confusion between the feature sets, where it was supported, where they should get help for the documentation they should reference, et cetera, and it was causing bad experiences.

We decided to reach out to the developer of the plugin and ask if we could acquire it. You mentioned how your conversation with Matt went, with Better Search Replace, how it wasn’t maybe just a straight up, “Hey, can we buy it from you?” That’s actually what ours was.

I went to him. I gave him a very brief email that just said, “Hey, we’ve noticed that this is kind of an issue and we’d like to improve it. Can I acquire it from you?”

We came to an agreement, and we acquired the plugin. This is not a popular decision. Honestly, no one is going to like this decision, but it’s what we decided and we felt needed to happen. We immediately discontinued the plugin after acquiring it. We thought about various options on what we could do. We wanted to just–

BRAD: Did you actually delete it from the .org repo?

PIPPIN: Yes, we did.

BRAD: Okay.

PIPPIN: Well, it’s not deleted. It’s still technically there, but it’s not accessible any more. Now there’s a couple of things that we did. First, we looked at it and said, okay, what are our options? We could continue to maintain it, and we could then upsell to the main one that we sell. We could continue to just leave it exactly as it is and then just forward support requests as necessary. Or we could discontinue it and offer an update path to the one that we sell.

What we decided to do was to discontinue it and give a notification to all of the users of the plugin to let them know that the plugin is being discontinued and to provide them information on how to upgrade to the main one that we maintain, which is not only kept up-to-date, but is also more feature rich. I think it’s important to note that this one that was on .org that was free hadn’t been updated in a long time. For example, its Stripe API libraries were out of date. Some of its feature sets were out of date. There was a couple of main things it didn’t support, and these are all just natural side effects of it being a free plugin that the developer built at one time but was not actively interested in maintaining it week-to-week, month-to-month.

What we did is we put together a quick update to both our official plugin and the third party one that we had acquired so that if somebody was using the free one and they decide to upgrade, settings get migrated automatically. The plugin just works exactly as is. We would then automatically deactivate the other one so that their shop is still 100% functional, exactly as it was.

Then the other thing that we did is we pushed out the update to the free plugin that included an update notification to say, “Hey. Just to let you know, this plugin has been discontinued. Here is the new alternative that we would recommend that you upgrade to, to ensure that your store continues to function as expected.”

BRAD: If they actually ran that update though, it would get rid of the notice for them, right?

PIPPIN: Okay, so first they would install the update for the free plugin on .org, and they would see the notice that says they should update. They should upgrade to the paid version.

BRAD: Oh, so the notice won’t actually go away?

PIPPIN: It’s a dismissible notice.

BRAD: Oh, it’s a dismissible notice.

PIPPIN: Yeah.

BRAD: I don’t know if I would have been that kind.

PIPPIN: We debated it. We figured, look. If people are already going to be unhappy with us for discontinuing a free plugin, let’s not piss them off by making an un-dismissible notice.

BRAD: Yeah. Fair enough. I mean, yeah, yeah, fair enough.

PIPPIN: Then if a user decided to go ahead and upgrade to the paid version and installed it, what it would then do is automatically migrate the settings and then it would automatically deactivate the other version.

BRAD: See, what’s probably going to happen is that at some point this thing is going to break, like Strike is going to deprecate the API in that plugin or something, and so they’ll have no choice but to….

PIPPIN: At some point eventually it will cease to function.

BRAD: Yeah.

PIPPIN: Whether that takes six months or three years is unknown.

BRAD: Yeah, okay. How much hate mail have you gotten so far?

PIPPIN: We’ve actually only had two people come to us with questions or uncertainties about it. One person came in and just asked what in the world does this mean, which I thought was kind of funny because we thought it was pretty clear to say this plugin has been discontinued. Please consider upgrading to the officially supported one. But that’s fine. Then one person has asked about how to upgrade or something like that. Other than that, it’s been pretty smooth so far.

Unfortunately, we don’t really have a way to track exactly how many people do decide to upgrade. We can see if there’s an influx of sales to the Stripe integration that we offer. But beyond that, it will be mostly speculation.

BRAD: Right. Has there been? Has there been a spike in sales?

PIPPIN: It’s too early to say.

BRAD: Oh, okay. Huh.

PIPPIN: I do have full access to monitor the downloads for the free one to see how many people have updated, and I can tell you that there’s quite a few people that have updated to it. A lot of people have seen the notice. Whether they have chosen to act on it is a different story.

BRAD: Right. Well, it should be interested to see what happens. I mean, yeah, I’m just trying to think of when people would be outraged. Right? People don’t generally get upset until they’re forced to do something and there’s really no forcing function here yet. Right?

PIPPIN: That was something that we really wanted to avoid.

BRAD: Yeah. Right. So, like, they can dismiss the notice and carry on, right?

PIPPIN: We could have gone as far as to just push out an update that removes the functionality of the plugin.

BRAD: Right.

PIPPIN: Then people would be rightfully outraged.

BRAD: Yeah. No, that’s not cool, man.

PIPPIN: Right.

BRAD: No.

PIPPIN: We wanted to do it as gracefully as possible while still — I mean there’s really two interests that we’re trying to keep in mind here. Number one is we really do have the best interest of people running the EDD stores in mind. If there is something that is causing them to run into questions or uncertainties, if we can resolve that, I think that is a better experience, even if that means they have to pay $50 for that.

Then, two, as a business it is in our interest to encourage people to buy it as opposed to using the free version. Sometimes people think that sounds heartless where you only care about money, but that’s the reality because we have bills to pay. We have salaries to pay, et cetera. And so if we can identify something that is not only causing confusion with a customer base, but is also potentially hurting the bottom line and you can resolve both in one action, I think that’s a win/win.

BRAD: Yeah. Look, dude. You have EDD is open source itself, core, so I think you’re doing plenty for open source by having that whole core being open source. Yeah, I don’t think anyone should expect your add-ons — I don’t think it’s reasonable to expect all your add-ons to be free also, free and open source.

PIPPIN: We’ll see how it goes after a month or so, and I’ll report back.

BRAD: Yeah, for sure.

PIPPIN: Okay. Then the other thing is, after about a year of development, maybe six months, somewhere in that range, we just pushed out a brand new iOS app for EDD. We’ve had an iOS app for like viewing your store statistics, your customers, your products, et cetera for two-plus years now, I think. And we’ve just released the brand new version of it that is completely rebuilt from the ground up. We’re pretty excited. We’re pretty happy for it, so it’s a completely new version of the app. It looks totally different, and it has a whole lot more features.

The main thing, the old version of the app basically gave access to sales data, earnings, products, and customers. But with various add-ons, there’s a lot of other data that you could have in your store. For example, you can have subscriptions from our recurrent payments plugin. You could have commission records from our commissions plugin. You could have reviews from our product reviews add-on, and none of that data was available in the old version of the app.

Well, actually, not 100% true. Commissions were available, but subscriptions and reviews were not. And the data that was available for those was pretty minimal.

All of that data is available in our REST API, so we really wanted to make any data that’s in our REST API should be available in the app. It was kind of the opinion that we had, and so we did it. So now whether you have subscriptions, commissions, reviews, customers, earnings, sales, tax, et cetera, all of that is available in the app and it’s easily accessible.

We added new graphs, so you can now see a pretty sales graph or your earnings graph over time. The app is quite a bit faster now because we added a pretty significant caching layer to it. It makes sure that you’re not constantly re-querying the REST API to get new data.

And there’s a lot better interaction, like for example if you go to a sale record, you can quickly click over to view that customer. You can view all of their sales there. You can click into another sale. You can then see the products on that sale, which you can then click over to view the product, the product details of that. From that product details then you can see the customers of that, et cetera. There’s a lot of interlinking of data too.

Then it also introduces a fun little thing for anybody who is an Apple Watch user. There is a new watch app version of it as well that comes with the app. If you want to view quick stats on your wrist, you can do that.

BRAD: Neat. First of all, it looks great. I really, really like the UI. I wish I was using EDD. Oh, I guess I am.

PIPPIN: You are now. Hey, you can use it.

BRAD: Yeah, not for our main sales site. But, yeah, I guess we could use a little bit of it. Anyway, yeah, it looks great. What did you guys use to build this thing? Did you use an HTML CSS JavaScript framework, or did you actually code in Apple’s weird languages?

PIPPIN: It was all built by Sunny, who is one of our long-term contributors. I’ll confess that I did not write a single line of code for this app. I barely even reviewed a line of code for it because it’s just gibberish to me. I think it’s all Objective-C.

BRAD: Oh, it’s all Objective-C? Oh, man.

PIPPIN: I think. I could be wrong on that. Sunny will probably correct me. But it’s all — there’s no HTML JavaScript framework for this.

BRAD: Did you consider using Facebook’s React framework? Isn’t it React?

PIPPIN: No, I don’t think so. Not for any reason or other. I think it just didn’t come up. It was kind of a fun project because Sunny came to me and said, “Hey, I want to do it,” and we just kind of said, “Go with it. Just run. Just do whatever you want to do. Keep us updated as you build it, but I want to see how it comes along.”

He knows the mobile app development better than anybody else on our team, and so we just said, “You know what? Make the decisions. If you have a question, let us know, and we’ll be happy to vote for it. But otherwise, make the decisions.” And I think it worked out well.

BRAD: It’s called React Native. That’s what I was thinking of. Yeah.

PIPPIN: Ah, yes. I have heard of that.

BRAD: Yeah. Facebook’s, and I think it’s cross-platform. I think you build it once and I think it works for Android and iOS, but obviously there’s problems and limitations there as well.

PIPPIN: Kind of like where we acquired the free Stripe plugin and then discontinued it, we also did something here that may or may not give us flack, and I’m curious to see what people say. We decided not to release it as an update to the existing app. We released it as a new app, which means that you have to purchase it again.

BRAD: Ah-ha!

PIPPIN: And we also doubled the price. So it used to be $2.99. Now it’s $6.99.

BRAD: Ahh.

PIPPIN: We did actually offer. We did put in what’s called a bundle, which means that if you have bought the previous version of the app, you can buy a new one at a discounted price.

BRAD: Right. What is that discounted price, $5.99?

PIPPIN: It should be $4.99, because it’d be discounted what you paid previously. First of all, we’re talking tiny numbers.

BRAD: Yeah. It’s ridiculous.

PIPPIN: I mean my initial reaction is if you complain, go yell at someone else. I don’t have time for you.

BRAD: I feel like it should be free or, like, you know, $20 or something more substantive.

PIPPIN: Why some low number?

BRAD: Yeah. Why is it like $7?

PIPPIN: Well, I think there’s a couple reasons. First of all, because when we first released the app two to three years ago, we didn’t know what we were doing. We just threw a price tag on it. Every app, if it was a paid app, it was $1. A $20 app was unheard of in the app store. Even asking for $2.99 was going above the norm, which is silly, but it was.

The other thing is, because it is a read only app, it is not — you can’t write data from it. I don’t quite feel comfortable saying that we should charge $30 or $20 or some higher number unless it is a write app as well. That may or may not be. Maybe that’s silly, but that was kind of my reaction.

We also didn’t want to introduce a new version that was so drastic in its price increase that it shocks people. We looked at this app as never being a money maker. It is not a money maker and it never will be. We have spent a hundred times more developing this than we’ve ever been paid back from it, and that’s okay. That’s an investment that we expect to take and that we’ve just consciously decided to do because we look at it as this is something that facilitates getting people into the ecosystem.

It makes their experience using EDD to run a business better, and it is a tool in the toolbox. And so if we can help encourage them to get into the ecosystem with a very low cost app that allows them to monitor their business, they are far more likely to come and spend $200, $300, $400, $500, $700 with us on the main plugins. Whereas I think they would be less likely to do that if an app was $20. That’s the way that we’ve looked at it.

Has it truly paid off? It’s really hard to say because, due to app store sales being in one system, our EDD sales being in WordPress, it’s kind of hard for us to say, well, you came to us because you had the iOS app, or you decided to use EDD because there was an iOS app. It’s all speculation.

We know the sales numbers. We know exactly what the iOS app has brought in in revenue, but it’s very difficult to say, “Has it generated more revenue through indirect sales?” I have no idea.

BRAD: Yeah. It’s like any other feature, right?

PIPPIN: Right.

BRAD: You can’t really pinpoint the feature, attributing sales to a feature. That’s extremely difficult.

PIPPIN: Yeah.

BRAD: Yeah.

PIPPIN: Overall, I think our decisions to make it very low cost have worked out and have paid off, but it’s hard to say.

BRAD: Oh, and I hear you’re speaking at WordCamp U.S.

PIPPIN: I am. I got my acceptance letter a week or two ago, and they announced it on the blog a couple of days ago, so it is now public knowledge. Yes, I will be speaking at WordCamp U.S., and I’m pretty excited for it.

BRAD: Very cool. Do you know what you’re talking about yet?

PIPPIN: Yes. It’s kind of a non-standard session that I hope will go over well.

BRAD: Do you want to keep it a surprise, or do you want to–?

PIPPIN: No, it’s announced. Well, okay. I hope they don’t yell at me. I don’t think it’s technically announced on the schedule, so hopefully nobody — no one listens to this podcast. It’ll be okay.

BRAD: All right. Fair enough.

PIPPIN: I’m doing a Q&A session, basically.

BRAD: Okay.

PIPPIN: Where I’ll be presenting a series of questions that I’ve been asked over the last few years, and I’ll be giving full detailed answers on them. Then there’ll be an open Q&A session for anybody to ask anything they want.

BRAD: Oh, neat. So someone will be moderating, I guess, or asking you the questions?

PIPPIN: That’s not 100% decided yet.

BRAD: Okay. Cool. I will also be at WordCamp U.S. with half of my team.

PIPPIN: Nice. I think we’re taking most of our team there.

BRAD: Nice. Yeah, so if you are listening, if you’re one of our five listeners, come to WordCamp U.S. and, you know–

PIPPIN: Say hi.

BRAD: Say hi. Yeah.

PIPPIN: We might have a few T-shirts there.

BRAD: Really? Cool!

PIPPIN: Well, I got a big stack of them sitting next to my desk and they need to go somewhere.

BRAD: Okay. Yeah.

PIPPIN: If there’s room in the luggage, I’ll bring them along.

BRAD: There we go.

PIPPIN: Also, now this may be too late. This episode may get published after the fact, but I will also be at WordCamp Denver. And so if you are there and this episode is airing before then, come say hi. If not, well, now you know.

BRAD: You missed him.

PIPPIN: Yeah. WordCamp Denver being this upcoming weekend of the 5th and 6th of November.

BRAD: Nice.

PIPPIN: All right. Anything else, Brad? Are we ready to wrap up here?

BRAD: Let’s wrap it up. Yeah. Thanks, everybody, for listening. Check out our sponsor, SearchWP, at SearchWP.com. Thanks again to Jonathan Christopher for sponsoring this episode. Until next time.

PIPPIN: Talk to you in two weeks.

BRAD: Thanks, everybody.