I’ve been running WordPress on various blogs for a few years now. Prior to that, I’ve tried out several different solutions for blogging and other needs that WordPress can fulfill. While I think WordPress as a whole, leaves a lot to be desired, I also see it as a very useful tool for getting a blog and even a business off the ground, quickly – as is the case with WatchMeCode.
But my relationship with WordPress hasn’t always been great – especially when it comes to development environments and pushing changes to production. Fortunately, I’ve solved that problem recently, with a few tools that I now use to make a local development environment super simple.
Pain, Frustration, Lack Of Features
I’ve put off working on WatchMeCode features for a long time – not because I didn’t want to work on it, but because I didn’t know how. Sure, getting everything up and running only took a few hours initially. When it came time for me to work on new features, though, I wasn’t sure what to do.
It took a long time, and a lot of work for me to eventually get MAMP working and have a local development environment. But things constantly seemed to break for me. I never had confidence in the setup, so I was hesitant to really do any heavy work on the site.
A few weeks ago, though, I had a sudden desire to work on features again. I wanted to get a new “Series” and “Episode” post type set up so that I could more easily customize the way things work and simplify the way I post episodes to the site.
So I sat down, opened MAMP and saw that everything was broken … again.
With a sigh, I settled into the mindset of working on the development environment all weekend, instead of working on features. But an hour later, with a new tool set in hand, I had everything working and was developing my features instead of working on my development environment!
Desktop Server To The Rescue
A few months ago, I heard about a tool called DesktopServer.
It’s an app that wraps MAMP in a simple wizard-style UI, automating everything that used to break when I would try and configure MAMP on my own (it also has a lot of other features, but this is what I really love about it). After reading a few reviews of it, I bought the pro version (a $99 risk is nothing if it would save me hours of time on a very profitable business effort) and set out to start using it.
After some initial confusion about how it worked, and accidentally creating a few extra copies of my site that I didn’t need, I got a local WordPress installation up and running. I copied my core plugins and themes folders from the live WatchMeCode website, then used Migrate DB Pro to get all of my data and media files synchronized down to my local environment.
It took about an hour to figure out DesktopServer, get Migrate DB Pro to pull everything down, and set up a local git repository for my theme / plugin development with symlinks into the DesktopServer site.
And at this point, I’m sold on the ease of development for WordPress, using this combination of tools.
A Better Business Decision
My friend Cory Webb called WordPress “The Wal-Mart of CMS” – it’s cheap, it’s everywhere, and generally easy to use for simple things, but you’re not going to find very many high-end, high quality things in it – at least, not compared to the high quantity of cheap garbage you’ll find.
I agree with Cory, for the most part. Yet I still think WordPress was the right decision for me, in building the WatchMeCode website.
WordPress provides a base level of functionality with a wide range of plugins and add-ons that make it easy to get a business off the ground. Without this, I would have spent weeks or months building the necessary infrastructure to handle payments, handle authorization for subscriptions, create the needed infrastructure to view an episode and have a video player, and more. I know how much work this takes, too – I built everything that I needed once, already (for SignalLeaf).
Instead, I was able to get my business off the ground and have it selling subscriptions in almost no time at all.
Since then, I’ve found additional tools, learned more about the WordPress API and development process, and started digging further into PHP so that I can build my custom themes and plugins.
This is where I’m really seeing the benefit now – with a little learning curve on the WordPress API and way of thinking, I’ve been able to focus on my features for the site instead of dealing with infrastructure like payment and subscription systems.
Lessons Learned For A Technology Business
There’s a lot of things I’ve learned in building WatchMeCode with WordPress, not the least of which is the WordPress development process. But there’s more than that – there’s a realization of what it is to build a business with technology, not just a pet project.
Choosing WordPress has forced me to learn a new tool set that ultimately made me more productive and allowed me to focus on the business.
Yes, I record and deliver JavaScript screencasts through a website built on PHP.
I’m ok with that, because the business is not my pet project. It’s my business, and my business was able to be up and running faster and more effectively by using PHP, than if I had built it myself using the language that I teach to other developers.
There’s no shame in this. There’s nothing to hide or apologize for. This is almost a source of pride for me – knowing that my business needs are better served by a technology that I do not use to serve my customers or clients.
The Right Decision
Choosing WordPress to host the WatchMeCode website was the right decision. It’s not that JavaScript or any other language is a bad choice by any means. JavaScript and Node are still the right choice for my client work and for my customers that are served through WatchMeCode.
But, the choice of how to best serve a business should not be limited to your favorite tool set and language.
You should reach out to other languages, platforms and tool sets to find the solution that best fits the needs of the business, not just the desires of the development team.