How we solved a WordPresser problem: building a ‘tough as nails’ WordPress test site plugin that works with any host
T’was a fine sunny day in 2012 when a WordPress agency owner, Morgan, asked her code-whipping partner, named Jonathan:
“Darlin’, could ya make me a test site generator script for my client?”
(We take that back. This happened in Seattle – it was probably raining and miserable. But Jonathan did it anyway.)
Back to the story:
Jonathan told Morgan, “Yes!” (What can we say? He’s a romantic).
And guess what happened later? Morgan and Jonathan met a flock of friends at WordCamp Seattle. And do you know what those new friends all said?
“We need test sites too!”
And so, Morgan and Jonathan got to work, and they came up with…this badass WordPress staging site plugin.
But our history wasn’t exactly a fairy tale. Allow us to explain.
We quickly realized: when making a WordPress test environment for anybody to use, you’ve gotta sweat the small stuff
Making a script to generate WordPress test sites for your partner is one thing. You can control the database, the hosting environment, the directory and every detail down to “read/write/execute” settings on certain files. All’s swell until you try applying the same script to multiple hosts, on multiple sites, made by different developers and using different plugins.
That’s when things get messy. Reaaally messy.
Where does the directory live? What are the DNS settings? How will the system copy the files, send them to a new server, then unpack them? What if the receiving host limits allowable resources from third-parties? What if the files needed are not writeable? What PHP versions will the servers be using? How will the plugin report errors to the user? What if the user doesn’t want to overwrite every table in the database? How will redundancy be handled for hosted staging sites?
And the list goes on…
It’s no wonder the marketplace for WordPress staging sites was limited. Some internal hosting environments had one-click staging sites. Or, a WordPresser could use plugins with multiple ‘techy’ steps to set one up.
It’s easy (ok, easier) for the hosting companies: they can fully control the mimicking of server environments for their own customers.
Staging plugin “helpers” can be great if your host doesn’t offer the feature – and if you’re ok with the setup time and learning curve involved. However, we believe all those techy steps can be a barrier for WordPress novices. And we can’t go having WordPress white screens of death all over the web, now can we?
So, to make a WordPress test site plugin that actually works for anyone, on any host, and with one click…well that requires a lot more of a developer.
If you’re going to launch something like this, you have to prepare for the fallbacks. Every detail counts. The small stuff is what makes the “fabric” of the plugin.
Thankfully, Jonathan Kay, an experienced systems administrator, was pumped to do that. And his partner Morgan was there to support him. Together, they form the “MoJo” team (enter gunslinger hero music here).
Doing things right the first time: it just had to be a rock solid, WordPress staging plugin we could be proud of
This is the part where we switch voice to first person, and brag a little:
It took 6 months of 12-14 hour days, 6-7 days a week to make this puppy – and that’s just Version 1 folks! It wasn’t easy. But it was a goal we had to meet. We wanted our staging and deployment plugin to be so solid, it could scale en masse. Alpha was far from a minimum viable product (MVP) when we launched.
We weren’t living under a rock. We knew that going “lean” was all the rage in software planning (and still is). But we couldn’t put out a half-baked product for two reasons:
- We’re perfectionists.
- Staging environments just have to work. It’s why they exist in the first place: to make sure things work.
In our case, “lean” code would have been sacrificing too much quality for our customers. Or even worse, putting their live sites at risk. We didn’t want to be “that” software company, if you know what we mean. And we still don’t; everything we do is down to the last detail. We code good; we code stable. Because, that’s the type of product we’d want for ourselves.
In July, 2014 we released an uber-duber staging plugin for user testing….dun dun duuuuun.
Since then, after all the tests, workarounds, troubleshooting and support requests that daily made the plugin better, we’re glad to say:
We are super proud of the outcome.
We launched our full-version staging site plugin in June, 2015 and have been running ever since.
Our work is not over! We’re planning a bright future for our little brainchild! Stay tuned for the day when WP Stagecoach can help even more WordPressers perform tests on staging environments around the web!