The Hsoi Enterprises website needed an update. The theme was alright, but a bit dated and was not a responsive design. The key thing needed was the responsive design.
I found a new theme, but the transition wasn’t going to be easy. What I needed was a copy of the website: work on the copy, make all the changes there, then when everything was ready to go, copy the copy back to the live server and everything is happy! Typically in development this is termed “staging”. You have a “staging” server and a “production” (or “live”) server. The production/live server is what is actually out there running the show for everyone: it’s critical, you aren’t supposed to make changes on it. You do your development work on the “staging” server, where you — stage — your work. Now some setups might have 3: a “development” server that actually gets all the beating by the developers, then the “staging” server is somewhere between “development” and “production”, typically you’ve got your heavy change work done and just need a place to get things ready to go to production, final testing, integration, etc.. But whatever the specifics of the process are, having that “other” machine is really key in getting work done and not interrupting the live setup.
Alas, working with staging isn’t always easy. You have to maintain a duplicate environment, which creates complexity and management issues. It’s always possible that something may not be set quite right, or that you have to change your code or ensure your code is savvy to the fact it might run on one server then be switched to run on another — not a bad way to program, but it does add complexity and testing issues, and yes sometimes issues may not manifest themselves until things go live (the staging may not catch it). So it’s an important part of the process, but it can be a difficult and problematic part too.
Honestly, I was not in the mood to deal with the complexity – I just didn’t have the time. I needed to apply this new theme, make the changes to make everything work again, then get it live and on to other more pressing tasks. To have to set up my own staging server would have been consumed far more time than the changes themselves would have taken. Not worth it.
So I went looking for solutions.
I started reading about this thing called WP Stagecoach (great name, BTW). The tag line is simple: WordPress staging sites, made easy.
Naturally that caught my attention.
I watched their “how to” video, and was impressed at how quick and easy things were. Really! Sign up with their service (it does involve the use of their servers to do all this magic), install their plugin, click a button to replicate your site on their staging server, open a new web browser window to view your site on their staging server, make your changes, then another click to push the changes back to your live site.
Yes… that easy.
Plus — it’s free! Well, it’s free right now. The product is in alpha — which means it’s still being developed and may well be buggy and not work. Proceed at your own risk. Well, to me, it was a risk worth trying.
I’m glad I did.
The setup went really well, just as quick and easy as they said it would. I went to view my website on their staging server and…. images were missing, but otherwise went fine.
I contacted their support to ask about the images. It may have been a bug (hey… if it’s alpha, as a developer myself I’m going to give feedback because I know how important such reports are to developers), but it may also have been a feature, because images are hard to diff and just consume a lot of bandwidth and disk space — why transfer them. They got back to me pretty quick, and in the end the problem was mine: I had prohibited hotlinking of images from my site. Seems that’s how WP Stagecoach works: it first tries to get the image locally, but if that fails will hotlink back to the original image. I think that’s a great way to make things work here. So once I added an exception for WP Stagecoach to my .htaccess file, things could progress.
Editing, changes, all the work I had to do ran without a hitch. I could preview, experiment, and do whatever I needed. I was quite happy and this was a HUGE win for productivity.
Once I got everything in place, the moment of truth — pushing back to the live site.
I clicked the button and….
I tried a few more times, and 404’d every time. It didn’t make sense.
I contacted support again about it. We were both boggled because no logs were generated on my end, and on their end the logs looked right. Well, long story short, it appears the “better wp security” plugin is in play. No logs, but diffing the database from before and after the changes I saw some entries in that plugin’s tables that were from blocking WP Stagecoach. So, not the fault of WP Stagecoach, just aggressive security measures on my end.
Alas, I didn’t get to finish things through. At the time we were both stumped as to the problem so I ended up just porting my changes to the live server manually. Lots of copy/paste, but thankfully there really weren’t many changes to make. (Discovered the better-wp-security interaction after I made all the changes).
So while I didn’t get to fully round-trip WP Stagecoach, I’m still quite impressed with the product!
It was easy to install, set up, and get running. I didn’t have to worry about limitations, really. No headaches, no hassles. And while I didn’t get to push back, the fact I had a “sandbox” in which to play to figure out the new look, the settings I wanted to use, updating content, and all the truly heavy lifting — that was still a HUGE boon to me to be able to do that on not the live server. Whereas applying the changes manually took about an hour and meant my live site was a little weird for a short period of time, if I tried actually making all those changes on the live site, it would have been a day or two of weirdness which is unacceptable. And of course, if my server was differently configured, I’m sure the live pushback would have worked and the “downtime” would have been almost nothing.
Another thing I want to mention is the support from Jonathan Kay, the man behind WP Stagecoach. He was so responsive and friendly — no “support drone” here. Even tho he’s in the midst of organizing a conference that’s happening in just a few days, he never neglected to look into matters and gave things his fullest attention. Yeah, he was bummed that things didn’t work out, but I told him not to worry about it. First, that shows that he takes pride and care in the work he does, which speaks volumes to me. Second, he made it quite clear this is an alpha-level product. I expected there could be a chance of failure or other bugs. Yes, I encountered a few things, but in the end they were my fault, not his. Does this mean there are things WP Stagecoach could do better towards helping contend with these issues? Sure, and that can come in time (now that he knows about them). Thing is, when you step back and look at what’s involved to make this bit of technology go, it’s amazing! There’s a massive amount of complexity here, so many possible setups and things well outside of his control, that have to be tried to be managed and addressed in a graceful way. That’s hard. Furthermore, to make the process work out to be just a few clicks and so easy to set up, so easy to use, I know THAT is difficult. Making something so complex, into something that is so easy (for the end user) is a monumental task, and frankly I think Jonathan is doing a helluva job!
Note: I don’t know Jonathan. My Google search on “wordpress staging” is how I found out about WP Stagecoach, and my bug reports and feedback are my sole interactions with Jonathan. My praise comes because based upon what I’ve seen, what I’ve experienced, and our email exchanges, it’s praise well-earned.
So to all of you making changes to your live WordPress site, stop it. 🙂 Sure, adding a new blog post, making a quick typo correction, that’s fine. But if you need to do anything more than that, you need to use a staging solution. If your hosting provider doesn’t provide a staging solution and you don’t have the technical knowhow or the time to set up your own staging solution, give WP Stagecoach a look. It was a win for me, and hopefully can be for you as well.