Conventional wisdom says you shouldn’t build your own business systems like CMSs, stores, etc. Listen to why I think sometimes it’s OK to give in to NIH (not invented here).
I suggest you listen since this transcript is kinda iffy, but better than nothing!
Welcome back to another Anything but Code. I’m Ian Landsman. It’s been awhile. It’s been a couple months since we did one of these. I’ve been super busy. I’m trying to get back on the wagon here. What I’m going to actually try to do is mix in some smaller podcasts along with the interviews, so I have a lot of stuff I want to say. I’m going to try some of these solo ones, maybe keep them 10 to 15 minutes, something like that and see how that goes. I’ll get them out kind of quicker, share some things I’ve been learning recently and give you something to listen to on your walks.
So, here we go. What I want to talk about this week is building your own systems. Something that we’ve done a lot at Userscape is we’ve pretty much built all the major components that we use. Much like team Cook at Apple has, you know they want to own all the core technologies. I kind of feel the same way and it’s hard to describe why. There’s the obvious kind of geek, surface level, we want to build everything ourselves but then we want to control that. We think it’s fun to build these systems done on a certain level. I also think there’s a practical business reason. I think they just work better.
They just fit better with the flow of your organization. You do have to be careful about which systems you choose to build but I think there can be some real advantages when you do. What has me thinking about this is I recently just rebuilt helpspot.com and I built it on Laravel and custom built it, so obviously I could have used one of the many CMS’s out there.
I know a lot of the CMS vendors and there’s a lot of great CMS products. I could have of course used Word Press or similar. I’ve used some of these in the past. Word Press I’ve used a lot, Expression Engine and I played around with many of the other CMS’s, Craft and Perch and so on, Systemic. For me, it kind of ends up breaking down in a number of areas. Where we want to do things that are custom or you really want to control the organization of it, where we want to include some little utilities and things that the website has, which are all custom codes, all these CMS’s would allow you to do these things one way or another. Either kind of hawking them in or several of them have obviously, plug-in architectures. But then you’re kind of forced in the constraints of the CMS.
So, right there, you’re kind of already edging away from your pure ideal. Beyond that, you get into things like performance. One of the things I really like is to keep the website really fast and that is something that Google looks for these days in terms of ICO. The paid CMS’s are definitely better at this but obviously things like Word Press are extremely slow even when you pay. Our previous Word Press installations we’re able to get rid of now were all at WP Engine and we paid a lot of money for that. It was still fairly slow on an expensive plan just because there’s a lot going on.
Anytime you have any system that has all that abstraction in it, it’s going to be hard to make it as fast as possible. That’s a tradeoff there. If you’re dealing with non-technical people, then that’s a tradeoff that might be worth making, right? You need people who- you’re not going to teach them PSP to customize something. You’re not going to learn HTML in many cases.
Of course, there’s definitely cases where the tradeoff of time is not worthwhile and the act of taking two or three weeks and building out a custom website just isn’t a good tradeoff in terms of time. Throwing Word Press up and throwing a bunch of plug-ins at it and getting something up today, it definitely has value. It can be a good place to start too.
For us, we had our blogs, for instance, on Word Press for a while and it does let you kind of see how you want to organize things for us and how we didn’t want to organize them. I really want everything in one spot on the top level of the domain, not using any subdomains, not using different systems just to manage the website content verses the blog itself or blogs, in our case.
A custom system let us do that. I absolutely understand that you can do that, especially with a lot of the pure CMS’s, that’s possible to have that organization. But for us, that tradeoff seemed worthwhile, especially since we had some other things planned in the future for Help Spot, for helpspot.com website, in terms of engineering.
This is probably, I don’t even know, my seventh or eighth, I guess, kind of CMS / blog engine. In the past, they’ve worked out pretty well. Some have worked better than others. What I ended up building this time, I think, is actually pretty cool. I think that, at some point, it would be interesting to open source it but I’m definitely not promising that. It’s something that’s very tailored to be website in a modern content marketing environment that’s not abstracted, that doesn’t require you to get everything organized in a way that makes sense. It just has that in place.
We’ll see about that. It’s unlikely to happen but it is kind of interesting. If I get some time, it might be something to do at some point. Another area that we’ve custom built is our store infrastructure. That’s something that a lot of people don’t custom build these days and I would definitely be tempted to not custom build it myself if we were starting something new today. But, there are really a lot of advantages to having your own store.
So, when people go through our store system, we’ve now custom built for the third time. Eric, who works at Userscape has been diligently rebuilding it on and off for half a year now. There were some big pushes in there because we made some pricing changes and things. As we moved from old code based to new code based, a lot of changes and there is the maintenance of it, which is definitely a big thing. It’s let us do a lot of kind of cool things. Handle different types of pricing, most of our customer base is on an owned license plan, so store supports that. It supports everything that’s sort of with that traditional model of buying licenses and buying support on those licenses.
We’ve also got the flexibility to do other things such as multi-year purchases. If you wanted to buy three years of support in advance, you could do that. We also support subscription pricing. Newer customers of Help Spot are on subscriptions so the store can handle that. We can having these different pricing models in play at the same time across different chunks of the user base. We can handle credit cards, of course, which is where most people just start with that, right?
Credit cards; that’s all you’re going to do, which is okay but about half our business is invoice. Actually, I think this is an area where a lot of SaaS apps and [UNKNOWN] apps generally miss the ball if they don’t have any way to offer invoicing. Even Base Camp, who is the ultimate minimalist pricing, minimalist plans, they even have an invoicing option. If you pay them even more for kind of a premium plan, they’ll invoice you. A lot of businesses just want to be invoiced. Having your own store gives you that flexibility to not just be stuck with the kind of stripe integration that came with your CMS or that’s easy to build in two hours with off-the-shelf components.
But, now you’re stuck with only being able to accept credit cards and stripe and that’s going to be hard to do other sorts of invoicing. The ability to have custom invoices, to manage invoice state, to know if it’s paid or not, to have accounts receivable to follow up on. All of those things are possible at the custom store. That also let us do, more easily than I might otherwise, have been our Help Spot cloud, where that’s integrated with the store and when customers choose to host Help Spot themselves, they can just download it and the store handles that.
If they purchase Help Spot cloud, for us to host it for them, then the store manages that process of spinning up servers and deploying those servers on Amazon cloud. In Help Spot, every customer gets their own dedicated virtual machine instance. So, that’s kind of the core elements of your business that I’m talking about though, your website, your store, how you accept payments, having increased flexibility in those areas I think really pays off. It gives you a lot of control. It lets you move in ways other competitors might not be able to move. It lets you do things they maybe can’t do. It lets you be a little bit faster. It lets you be a little bit more flexible.
Nowadays, it doesn’t take that much time. I mean, when I built the first version of the store 12 years ago, it took me months to build it. Now, it’s much, much faster to do these things. The framework is much more out-of-the-box and bring-in packages, all the stuff that we all know about here in terms of code. I don’t want to talk too much about code but you can do all these things much, much quicker than in the past and really create that little bit of extra leverage in your business.
It definitely goes against conventional wisdom, of course, for the most part, where people say you shouldn’t be building back office systems or building things that you can pay another service 100 bucks a month to do for you. I absolutely agree with that philosophy the vast majority of the time and you do need to be careful about it but when it comes to really core aspects of your business, building things from scratch and building them custom to your needs definitely has some advantages. It’s something you should think about and not just automatically default to using off-the-shelf and kind of shoe-horning your needs into the off-the-shelf solution when something custom can be done without a huge time commitment.
It doesn’t require that much maintenance and will give you those advantages of flexibility or performance or the different things that can give you an edge when it comes to online business these days. It’s super competitive and every little thing you can do to gain an edge should at least be considered if not acted upon. All right, so we’ll be back. I’ll try to do another one next week. Hopefully we’ll be sprinkling in some guests as well. Have a good week.