 This talk is about how we build products. My name is Joe Gilmette, and I work for a company called SoFly. We make a couple of different things. We make WP All-Import. It's a WordPress plugin to help people import data into WordPress. We make Oxygen, which is a visual site builder. Then we also recently released Poopy.Life and WP Sandbox. They're kind of the same thing. They make disposable WordPress sites. So Poopy.Life is the free version and WP Sandbox is a product demo platform for demoing WP All-Import and Oxygen. I've worked for SoFly for about three years and I'm the product manager for everything except for Oxygen. I think there's a Gutenberg joke in there, but I don't know what it is. This talk is about how we build products. We've been in business for about eight years now. So the first thing when you're building a product, the first question you probably have is, what do I build? Looking for a product idea can be a little bit intimidating. I think the easiest thing to do is to look around because you've probably already built it. You probably have itches you've been scratching for a while. These are really the best things to turn into a product. Something that you've built for a previous project, some internal tool you have, some internal pet project that you've been working on, something that you wish you could have bought, but didn't really exist the way you wanted it. So you just built it yourself. You use it maybe every day or every week. It sucks, but you use it all the time because you need it. Building something like that is easier because you know what to build and you know that at least one person on this earth wants it and that's you. So this is a good place to start for building a product. And that's what we did with WP Sandbox and Poopy.life. We built them for WP All-Import over the last four years and we built them because we needed a way to demo WP All-Import to people. We couldn't use any existing demo tools because most of them were for themes. So for a theme, a demo is pretty easy, right? You just put up a website and say, this is what the theme looks like, you should buy it. But for WP All-Import, people wanted to import data into WordPress. So we had to give them their own WordPress site where they could install their own theme and then try and import data into it. And giving every single person their own website, there was no real tool to do that. So we had to build one. And the first version of it was pretty basic. And we weren't like, this wasn't a product of the day. We weren't thinking like we should really make a new product to sell to people, to do product demos. Like we really just needed our own product demos. And so after a couple years of building this thing, we decided that this is pretty useful for us. We used it for a lot of different things. Other people might like this too. We should turn it into a product. And it was easy because we were our own target market. We built it for us. And we knew what needed to happen for it to turn into a product. That's not me, by the way, making those noises. There's some very excited people over there. So anyway, we built it for us. So now that you know like you have an idea for what you want to build in your head, the question is who are you going to build it for? Who's your target market? And the easy way to do this is to identify a very specific use case, like one feature basically that you want to build. For us, it was product demos. And in case it's not obvious, you're the target market. So whatever you're using this for, whatever you're doing, just build it for you. And other people like you will be the ones you're going to market it to and build it for. People using your tool the same way you use it, that's your target market in the beginning. So now you know who you're building it for. It's time to actually build this thing. You guys have probably heard the term MVP a lot. It stands for a minimum viable product. And that's what you're going to be building. And it's important to remember that a minimum viable product is not a product. It's not something you're gonna, it's not your business. It's not the thing you're gonna be selling in five years. It really is just a shortcut to get user feedback. And in the beginning, that's the whole goal of your product is to get your thing in front of users so they can tell you what they want. Everybody has a plan until they get punched in the face, right? So you're gonna, when you're building your product, you're gonna have the whole roadmap in your head. You're gonna know the first 20 features you're gonna build and you're gonna have this whole grand plan. And you're gonna really want to build all of that stuff before you launch. And then the minute that you launch this product, it's gonna be all getting punched in the face because all of your plans go out the window. And that's part of the plan. So you wanna get this thing in front of users as soon as possible so that you can get that roadmap out of the way and then build the things people actually want because they're gonna tell you what they want. So forget your roadmap, pick one thing and do it well. An MVP does one thing well, it doesn't do 10 things poorly. And it also doesn't do 10 things well. If you build 10 really good features in there and address 10 really awesome use cases that you think are great and you release it, chances are people are only gonna care about one of them and you're gonna build nine things that people don't actually want. So pick one, build directly for that one specific use case. And by the way, even if you're building a general purpose product, which I think is a good idea, you wanna build a product that does a lot of different things, even with those general purpose products. Pick one specific thing to focus on in the beginning and build your product to do that one thing really well. So this is what an MVP looks like. You build one feature and it needs to be functional, reliable, usable, and very well designed. If you focus on too many things in the beginning, you're probably gonna build something that does 10 things really poorly and is barely functional and you're gonna get really bad feedback. Instead of people telling you what they want you to build, they're gonna be telling you that what you built doesn't work. And by the way, this is also bad. If you try and do everything really well, you try and build 10 features, that's also not gonna work. So pick that one thing and just do that really well. And we saw this with WP Sandbox. When we got close to launch, we started building features that we wanted that weren't related to product demos. And it was kind of a distraction. And then when we launched it, we marketed towards things that weren't necessarily product demos, like testing, feature development, stuff we used it for. But it wasn't until we went back to focusing on back-end product demos that people actually started using it and we started getting traction. And it was the same with WPL import. In the beginning it was a general purpose tool to import CSVs into WordPress. Nobody wakes up in the morning and says like I need to import any data into my WordPress site. They wake up in the morning and need to do something very specific like import WooCommerce products. So once we started focusing on individual things like that, like importing real estate listings, importing WooCommerce products, that's when WPL import took off. So general purpose products are good, but pick one use case and that's what you're gonna build in the beginning. And the sooner you do that in the product's life cycle, the better. So now you know who you're gonna build for, you've built this thing, now you have to launch it, right? So the question is do you do a big launch where you generate a bunch of buzz, get a bunch of people interested, get on the front page of whatever, a bunch of blogs, Reddit, advanced Facebook WordPress group. Or do you just kind of like turn the lights on and hope somebody wanders in and then ask them why they decided to buy your product. And the reality is that no matter what you do, at the end of the day, the dust is gonna settle and you're gonna have to work on this product every day for a year or two, maybe more before it's a successful business. And the launch is literally like two days out of that whole experience. So the launch is kind of irrelevant. If you get a launch buzz, that's great. You probably won't. If you try and if you do try and you get it, it still doesn't matter because you're gonna have to work on this thing for years. We saw this with all of our products, right? So just put up a sales page, talk to everybody about your product and give it away for free. And I don't mean make your product free. Sell it, for sure, like the first version of your product should be paid, but coupon codes, give it to people, call it whatever you wanna call it. Get it in front of as many people as you possibly can. I like my theme song, it's free. So, yeah, the takeaway here for this little section is launch day is completely irrelevant. It does not matter at all. We launched Poopy.Life and it got written up in a bunch of different places. People talked about it a lot. It was really cool and it didn't actually matter at all. We didn't get any launch buzz for any of our other products. It didn't matter. A big successful launch, it gives you a head start, but either way, you're gonna have to grind on this thing for years and years. And that's what you should be focusing on. That's what you should be getting ready for. And the sooner that you get this thing in front of people, the better. So just turn it on, right? So after you turn it on, after you like get your sales page up, and... I'm not ready to run. It's kind of funny. So what comes after the launch, right? So what comes next? The next thing is you gotta ignore all of your customers. And what do I mean by that? I don't mean actually ignore them. So Henry Ford is a great quote and it says, if I asked people what they wanted, they would have said they want a faster horse. That doesn't mean people asking for faster horses are stupid. It also doesn't mean that you should give them a faster horse. What it means is you should figure out why they want a faster horse and then you should give them that solution. So Henry Ford built people cars because he was pretty smart. So don't actually ignore your customers, but you don't need to build them what they're asking for. Instead, you should listen to why they're requesting the feature they're requesting. Pay attention to the problem because behind every single feature request is an actual problem, a legitimate need that they have and your job is to fix it. So engage your customers constantly wherever you find them, customer support, Facebook, work camp, everywhere and talk to them about your product. Ignore what they're asking for. Ignore what they say they want and instead ask them how they use your product, how they wish they could use your product, what things they're doing and it'll be pretty obvious what you should be building. A good example of this is in WPL import we get a lot of people asking us. They basically they say they want non-admins to use WPL import. They have a client and they wanna let like WPL import imports data into WordPress. So they want like, let's say they have a product site and they wanna let other people import affiliate products into their site so they can sell it on their site or they have a real estate portal and they want a bunch of agents to randomly go in and update the properties but they don't want these people to be admins, right? And this is probably the worst idea I've ever heard. WPL import is basically like a user interface on top of the SQL injection hack and then just to make it easier we let people execute arbitrary PHP code during the import, right? So you may as well just put the admin login credentials in the front end of your site if you're gonna let people use WPL import. There's no way we are ever gonna build this. That doesn't mean that people asking for this are stupid and it doesn't mean that we're not gonna try and solve their problem. They have a very legitimate need and it's our job to figure out how to solve it. And so what problem are they having? What can I build to solve that problem? So we're gonna try and build some short codes. Instead of letting people use the entire interface for WPL import we'll let the admin make a page. They can decide who accesses that page and we'll make it so that no matter what combination of short codes they use to build that import page the data coming in is sanitized and the users of this are not able to execute arbitrary PHP code. So who knows if this is gonna work or not but this is the kind of thing that you should be doing with the users. Listen to their feature request. Who cares what the actual feature they're asking for is? Listen to the problem they want and try and solve it and see if you can. And maybe it's a whole new product, right? Like people were asking us to export data from their site. We're not gonna add a feature to WPL import or you export data but we launched a whole new product called WPL export because enough people kept asking us for it. So this next story I really actually I really like this one. So in World War II there's this group of mathematicians called the statistical research group and they were tasked with using math to reduce bomber losses. And then the way they did it was they were checking for they were checking damage on returning bombers to see where they just put more armor because you can't just armor plate an entire aircraft it won't take off anymore so you have to pick where you wanna put it. So their idea was wherever we see more damage we're gonna put more armor. They were seeing tons of damage on the wings so they thought okay let's put more armor there. One of the guys was named Abraham Wald he was a Hungarian refugee and he came up with this diagram here and the white aircraft when an airplane would come back and they'd get more damage they'd see like a bolt holes they put a black dot on the diagram and eventually they ended up with this over here. And they saw lots of damage on the wings and they saw no damage in the cockpit or the tail. So what Abraham Wald decided was we should probably put armor on the cockpit and the tail. If an airplane can come back with bolt holes in the wing then the wing is okay it can keep flying with holes in it. If any plane that gets damage on the cockpit crashes well that's where we need to put the armor. So the takeaway for this is that the real data that they actually needed was in the airplanes that weren't coming back and for you the takeaway is that the most important data you're gonna get are the people who almost bought your product and didn't. So data from people who almost bought is the most valuable data there is that's where you're gonna get more sales that's where you're gonna get that's where you're gonna go basically from that one use case to two that's where you're gonna expand your product and this is like that rush when you're building your MVP you're kind of like rushing through all those steps because you wanna get here you wanna get customer feedback from customers and more importantly people aren't your customers. This is where you're gonna actually build your business and where you're gonna build your product. This is where you're gonna go from one specific use case to two to three to four and then eventually you have a general purpose product that's tailor made to do 10 really good things and that's all based on customer feedback none of that came from you that's from talking to people every single day who are actually using the product. This happens outside the lab and this happens when you're talking to people. So how do you find these people? How do you find the people who almost bought your products? It's hard, it's not obvious and it's different for every product. We do it in two ways the most obvious one is refund requests somebody buys WPL import and lasts for a refund we give it to them and then we say hey what were you trying to do that you couldn't like what were you trying to use WPL import for and we get a lot of good feedback that way and eventually like you're gonna ask the question and then you like read the first word and you're like yeah I know because you know and you don't need to like make a chart and like mark it all down like this is gonna be you're gonna see some very big obvious patterns when you do this when you talk to refund requests and then another thing we do is with product demos. So in the early days of WPL import we hooked up our product demo platform to easy digital downloads where we did our licensing and so we could see in our product demo platform we could see like who bought and who didn't based on the email address they gave us and so we always went into the people who set up a product demo and then didn't buy it and then we looked at what were they trying to do and it became very obvious that they were all just trying to import WooCommerce products and we were very bad at it and so we got to see what kinds of imports they were doing what their data looked like and that was made it very obvious to us how we needed to improve our product. You can't please everybody so you're gonna get a lot of like noise in this process and that's why you don't wanna mark stuff down it's kind of a waste of time. You'll see big patterns and when you see those big patterns it'll be very very very obvious what you have to work on and in what order. It'll just be in your head it'll become common sense to you. So now we've gone from one use case to three to four and we're actually building our product, right? What do we do now? It's time to market this thing and when you're marketing it's important to market to the specific use case don't worry about the person, right? So we build a landing pages for every single specific use case like importing real estate listings or exporting WooCommerce orders. We have a landing page for each one of those and so if you type something into Google you hit our landing page and then all of a sudden WPL export which is this super general purpose product that can export any WordPress data into any XML or CSV file that you set up. You hit this landing page and all of a sudden this landing page is tailor made to show you exactly how you can export WooCommerce orders into an XML file or whatever, right? And it has a walkthrough video for that exact use case. So it feels like this general purpose product was made to do the exact thing you wanted to do and we just build these landing pages all day long. And then we build walkthrough videos for them and we kind of just do this over and over and over as we expand into more and more use cases one at a time. It's not rocket science, it's not complicated, it's just kind of boring and it takes a long time. And that's what it is, right? It's not really as fun as building out the features. That's the easy part. The hard part is like building all the content around it that really gets people in. So ads, active marketing, discounts, direct sales. This is what we do in the beginning to get a new product off the ground to get people in the door. And we don't do it to like boost sales, we do it because we want people using these products so we can talk to them and then build more features to address what they're actually trying to do. Once we get some traction, we just focus on the users, we talk to them, we build new stuff and then we build landing pages to market it. We don't do any marketing, we don't buy ads, we don't 20 of that. And people are gonna disagree with that. That's fine, like there's so many different ways to do all this stuff. This is just how we do it. I know people personally who do the exact opposite and they have successful businesses also. So this is just how we do it. And then after you've done this, you kind of get into what I'm calling here the post-launch feedback loop where every day you talk to users in support, wherever, spy on their product demos, I'll get a refund request and I'm like, you know what, I'll give them a free license, I'll process their refund and they'll say, hey, do you have some time on Skype? I wanna talk to you about this weird thing you were doing. It's kind of interesting. And just talk to people all day long to kind of build that base level common sense about your product so you just kind of know it in and out. And then build stuff to solve people's problems based on that common sense that you've built talking to people all day every day and then market to specific use cases with landing pages and walkthrough videos. And you just do this over and over and over again and then all of a sudden, you'll have this new product idea based on all this feedback you're getting and it'll just kind of feed into itself, right? And you can take even a small niche product that's kind of mediocre and if you just do this long enough, it will eventually become successful business. I think most of, well, I know a lot of people who will launch something and it doesn't immediately take off and then they just kind of let it sit. And I think that it's pretty rare that you'll launch a product and immediately is like this runaway success. It's mostly just the grind that separates successful product from one that never went anywhere. People just stopped working on it, right? They got distracted. So that's it. You just do this over and over and over again and you'll have a product. So time for questions. My name is Joe. You can find me on Twitter, retweeting, stupid stuff. I post pictures of my dog on Facebook. You can send me an email and you can get these slides on our website. And we have any questions about building stuff and getting people to use it? Yes, yeah. What do you use to launch your product demos? Did you build something in-house or did you use a shell product? I wish we could have bought it. We probably spent over $100,000 building our product demo platform. It kept getting hacked. It kept breaking. The first one we built worked really well, but it could only host like 200 or 300 installs. I think now we have, as of like today, we have about 11,000 active installs. Is that available yet? It is, yeah. Yeah, we actually just got gravity forms using it. So yeah, that's the new product that we launched. Based on our own in-house one. So we launched the free version on poopy.life and then the paid version is on wpsandbox.io. We use it for everything. Like we get a bug and then we'll just kind of reproduce the bug in a sandbox install and then throw it into the bug tracker. So when it's time to fix the bug, it's like just reproduced and sitting there. And that's the thing, right? Like with these things that you build, like your mind just kind of goes crazy with all the stuff you can use it for and you want to build out all these different features. But you really, especially in the beginning of a product, you have to focus on a specific thing and you can't get distracted. Cause you kind of have to let like all the different use cases sort themselves out so you know which one's more important. So that's where we are on the product website, go there. Anybody else? Yes. Microphone is running towards you very quickly. Yeah. First of all, massive respect for giving a talk while having the bonniboot movie playing in the background. That was pretty good. What's the history behind poopy.live? I like the logo. You gently hide it and then show it. Well, what's the story? How do you come up with such a different product name? So it was originally, it was our product demo platform. We built this thing that we needed in-house and it was kind of overpowered. And so the guy who runs Oxygen, Lewis, he owns our company and he basically said, look, we spent all this money on this thing and the API was getting simpler and simpler. You could basically, at the end of the day, like now you can just go to a URL and it'll redirect you to a WordPress install on the fly. So once we built that, he was like, we should just open this up to everybody. Sorry, and I want to use this to market Oxygen, the page builder. Cause a lot of the changes that we're going into were for the needs of the page builder. And so he wanted the original name was gonna be Oxygen is really amazing and everybody loves it.com. And then we're gonna put banner ads all over it. And I was like, Lewis, this is a terrible idea. I hate typing this. Every time I see it, I hate Oxygen more and more. This is really dumb, stupid, obnoxious and we have to change it. It's way too long. And he said, okay, well, unless you can come up with a better name in five minutes, I'm gonna call it poopy dot life. And I was like, okay. All right, at least it's shorter. And so, and it actually was a really happy accident because it left us room to charge money for it. Because now if you want to run, if you want to use it professionally, if you're not gonna use, you're not gonna run product demos for your plugin on poopy dot life. So if you pay money, you can use, the installs are hosted on your own domain or on WPSandbox.pro or whatever. And you don't have to look at spinning poop emoji as your install loads. Don't Google anything related to poopy dot life. I would recommend, stay within the image search. It's not a good place. So yeah, that's the history behind poopy dot life. It's still around, you can use it. When it first launched, we kind of got on the front page on like WP Tavern and stuff like that. And it had like 6,000 active installs the first day. And then to this day, like months later, it has like 2,000. So people are still using it on a regular basis. So about like 2,000 people a week go there. Or 2,000 installs. So maybe it's just one guy who really likes poopy dot life. I don't know. Does anybody else have any questions? No? Okay, great. Let's go to the after party. Nobody? Good. Thanks everybody. Thank you, Joe. So.