A couple of weeks ago I gave a presentation to a room full of Boston WordPress developers, designers, writers, and enthusiasts. I told the short story of how WP Migrate DB came about, why I decided to build the pro version, how I tackled the initial marketing, and how the first couple of months have turned out.
Alright, let’s get started. Jeze, I’m yelling. So, thanks for having me first of all. So, who am I?
I’m from Halifax, Canada. My name is Brad Touesnard. I have a wife and son. 15-month old son.
Ah…this is less cute. That’s me playing frisbee.
I was up in Devens this weekend actually, that’s why I’m hobbling around here. It’s a demanding sport. I’m also creative web developer, so dabble in design but mostly a backend developer. I do some frontend development as well and this is the first website that I ever built professionally. It’s pretty sweet. That was actually a professional contract in 1998. I designed and developed that site…suckers. I started a web hosting company in 2003, with, my business partner at the time was my roommate. We were in college together. And it’s still going strong today.
Last year, I started WP App Store, a marketplace for WordPress products. So we sell…we brought all the themes and plugins together from the big vendors, put them in one place, and stuck them in the dashboard, and no one bought ’em. ‘Cause it was a big barrier to entry, right? You have to install this other plugin to get all the other stuff. So it was a lotta work for the customer. So, we’re looking at ways to change it into a more traditional marketplace because we have all these
awesome products in one place still. So look for that really soon. Probably in a couple weeks time actually.
Leaflets is a collaboration between myself, Jason Schuller of Press75, and the guys at Organic Themes. It’s just a simple-simple CMS for simple-simple websites. We’re just doing one-page websites to start. I know crazy right?
Delicious Brains is a company that I started in January this year to sell a new WordPress plugin. A premium plugin. A pro version my free WP Migrate DB plugin. But, let’s start at the beginning…
I started with WordPress in 2004. I was just looking to blog. One of my coworkers started blogging and I was like, sure I’ll do that. I took a look at Movable Type. Didn’t like it. And WordPress looked like a much better fit for me. So, you know I started tinkering with themes over the years, tweaking this and that and then I wrote my first plugin in 2007. Called LinkedIn hResume. It just sucked in your resume from LinkedIn and allowed you to style it on your own site. Which was pretty cool, so then you can just manage your resume in one place. Never really took off…I thought it was cool.
In 2008 I started working at Fjord Interactive, a creative agency. And we started building client web sites in WordPress. I had never done that before.
This was the first site we built. It was for the Canadian Breast Cancer Foundation. It launched in April 2008 and I did a presentation at WordCamp Vancouver in late 2008 about building this site. There was no custom post types at the time, I was using custom fields, throwing IDs in there, it was chaos and it was awesome.
So as I was building client web sites with WordPress, I noticed that something was really painful. I’d be developing locally and I’d want to move the site to production or staging and it was just painful. You had to, you know, you exported the database using phpMyAdmin usually. But you had to get access to it, from some shitty host probably, and it took a while, a lot of work sometimes get the credentials from the client.
But anyways, you got your your database dump in SQL and then you did a find and replace, you know, for the URL’s and file paths that you need to replace. And then you realize that it nuked all your widgets. ‘Cause widgets are serialzed, so any find and replace that are done on your widgets, corrupts the serialization. So then you have to rebuild the widgets, each manually, copying and pasting from one to the other, and I had enough so I built this. It’s very simple. It just exports your database, but in the meantime, or while it’s doing that, it does the find and replace, handles serialized data, and takes care of all that stuff for you. So when you get your data dump, it’s all set ready to go, all ready to import.
And so I released that in March 2009 and maintained it over the years, kind of casually. And just,you know, when new versions of WordPress came out, I’d make sure it was working, ’cause I was using this of time, right.
And then in August 2012, I had a lot of feature requests from developers through the .org forms. And so I decided, you know, I might as well do something for these people since they’re using my plugin and they love it. And so I added these few options here. You can either turn find and replace GUIDs on or off. You can choose to not export the spam comments. Like, avoid those. Not export post revisions. You can compress with gzip as well. And I actually optimized it, made it 4x faster. That’s probably the most important thing.
And right around that time, I started, I kind of starter to realize that this is probably really useful for other professionals that are doing a similar thing. I was getting around a hundred downloads per day. So…and I thought maybe they’d be willing to pay for additional features and some support and regular updates, more frequent than once a year. So I added that to the plugin in that sidebar, just laying out the features that I was thinking of and Yes/No if you’re willing to pay for it.
And if you hit yes, then it would slide down and ask you how much. And it would ask for your email address and some comments.
And I got a few responses. Some, 289 said “Yes”, 61 said “No”. Average price people were willing to pay was $28 dollars. Somebody said $2. Someone said $200. So it’s pretty encouraging.
I collected 192 email addresses. But, the remarkable part was the comments because the only comments I got about this software was that there was a bug, it’s not working. I think I got one positive comment in the .org forums during those years from 2009 to 2012.
And keep in mind that this was before the reviews, the WordPress.org reviews were turned on.
So these are the kinds of comments that I got.
<blockquote><em>”That thing would be boss dude, boss.”</em></blockquote>
That one’s not…it’s very encouraging…I don’t know what he wanted but…
But this guy was a little more informative…
“I was really happy to find this plugin. It will save me so much time. When the pro version comes out I will buy it 🙂 Thank you.”
I like this one, it has a nice touch…
“Thank you SO MUCH for this INCREDIBLE plugin – You have saved us from HOURS of stress and HOURS of struggle. YOU ROCK!”
“I would be very, VERY interested. I’m in the midst of a site transfer that has been hell incarnate and something that could be truly turnkey would be heaven!”
That guy’s dramatic. But, I mean these are the kinds of comments that pushed me forward. This, this is the stuff, obviously these people were experiencing a lot pain in their development. Enough so, that they wrote these passionate comments. So, if I could build something that relieved more pain, great.
And then Otto switched on the .org comments the next month, which is great ’cause now everyone else, all the other plugin authors can get this feedback from their users. Which is fantastic.
And so far, WP Migrate DB has received 21 reviews and they’re all 5-star.
So, with all this encouragement, I just went forward and in December we started building WP Migrate DB Pro, pro version. And there was lots of challenges. One of the features is pushing, so you’re pushing your data from local to remote, so you have to deal with firewall issues, you need to deal with limitations on the server, like the PHP max_upload_size, you need to detect that, and make sure the packets you send up are less. And there’s just a ton of things. There’s limitations with MySQL as well. So sending from PHP to MySQL, there’s a max_allowed_packet_size. That’s one of the limitations. So we had to accomodate for all these things. And we did a lot of testing. And it took about 800 hours, developer hours, to build this and test it.
Private beta, we did it in March. I just sent a 1:45 video to you some developers that I knew and they were more than happy to give it try.
And just before, we were pretty close to launching, but just before that, I launched a little marketing campaign for WordCamp Miami. Just threw up a landing page, just introducing the plugin we were about to launch, and showed a video, and collected some email addresses. I only collected 23 email addresses, but it was worth it I think. We got a few customers and paid, you know, it wasn’t very hard to set this up, so it was worth it.
So, on April 16 we launched, and I very carefully crafted and email that I sent out to our subscribers. We had 400 subscribers. Which is not a lot, so you really have to value those. I went through every one that had a missing first name and I tried to discern what their first name was. So, I could say “Hi Joe” or whatever that is. I think it’s “Joao”.
So, 76% of the people I emailed opened the email, 72% clicked through, 70 people out of 400 bought with the coupon code. If they didn’t buy with the coupon code, I didn’t track them.
I queued up a post on WP Daily and that pushed some more traffic to the site. I reached out to Chris Coyier in advance, and just sent him the beta video and he was stoked when he saw it. Because this is one of the the biggest pain points, the biggest questions that he gets. Or most often requested. Or most often asked question on Shop Talk Show. Who listens to Shop Talk Show? A few poeple, awesome. And he posted it on CSS Tricks home page as well, which is awesome.
Tom McFarland reached out to me and if he could do a giveaway on his site, which was awesome. And he ran that for a week I think.
And the, I just got a lot of great tweets from prominent WordPress developers, like Pippin Williamson, and Jonathan Christopher. Just loved the product.
And that amounted to 3,000 visits in two and a half days, and 4K in sales, in the first two and half days. And this is what the sales look like for the first two and a half months, which is a bit surprising to me only because it didn’t go like that (downward motion). I thought it was gonna be launch and flat line but it seems like it’s taking a while for people to warm up to the idea and to actually get around to purchasing or maybe they run up against a bad migration problem and then that’s when the decide to buy.
The green is the sales, the blue is quantity. I dunno, it’s not the greatest graph.
Question: What are your sales to date?
Answer: Oh, I don’t give that away. You’ll have to extrapolate.
Question: What is your pricing?
Answer: I didn’t do that did I. There’s 3 plans, there’s the Personal edition which is $29, there’s the Business $49, and $99 for the Developer. And the difference is just, the Developer is unlimited sites, and the other two have less sites. It’s a very similar model to Gravity Forms. That’s probably the most successful plugin to model, so I went with it.
Question: Does that mean you charge per year?
Answer: I do, yup. Because if you don’t charge per year, then it’s not sustainable, right. Because the next year you don’t have any revenue from your recurring customer. Like, if people are still using that plugin and still using your support, you’re still providing the service indefinitely.
Question: The alternative I’ve seen is to charge for major upgrades.
Answer: Right, right. So you get updates and support is part of the package. That’s what you get with your subscription. Exactly the same model as Gravity Forms.
Question: On the business side, how much customer service are you getting from customers?
Answer: Good question. This is the time where I wish I was using Help Scout or one of those services where they give you nice analytics for your support. We’re actually just using Gmail, a Gmail account because we didn’t want to spend a lot of time setting up some solution, right, and delay launch, so we just threw Gmail account together. But if I was to ballpark-it I’d say four a day on average. I think, I think there’s often a fear, like, you know, I’m going to launch this product, but how am I going to do all this support, you know? But don’t be afraid of that. I, in fact, when we launched it was a relief to get feedback. And to have that feedback to be able to make the product better. I don’t know, it was refreshing somehow. I dunno, it’s kind of weird to say, but it was.
Question: What about the ecommerce things that have their own set of tables? Is there any problems in those areas or support or not support. I’m using Cart66, it seems like it has some URLs that are tied to the local host.
Answer: I haven’t, we haven’t run into any specific issues e-commerce systems. We have run into some plugins doing some funny things. As everyone, any developer in WordPress knows there’s some plugins out there that do funny things. People are learning and that’s fine. But…yea, yeah, I don’t want to name names. No, there hasn’t been any big problems. There was one where it was using, like it was storing the data as JSON encoded in the WordPress database, which WordPress’ convention is to use PHP serialization. But it was using JSON encoding, which we didn’t support at the time, but we do now. And so, so if, if the plugin runs into JSON encoded data, it will treat it like JSON, decode it, do the find and replacing, and re-encode it, so it handles that now. So, I guess the point is we’re making this as robust as possible. We just, we love getting feedback and people saying it’s not working in this situation. And we’re like, okay, we’ll fix it for that situation, within reason. If it’s like a crazy scenario where no one’s ever going to have this problem again, then obviously we’re not going to spend a whole lot of time on it. But if it’s a scenario where, you know, people, other people are probably going to run into it, then we’re right on top of it, which is fun.