My name is Mark Jaquith. I’m one of the lead developers on the WordPress core software, and am a technical consultant to Knewton. The marketing team at Knewton wanted their WordPress-powered site to have a more professional development approach using version control; a real staging and deployment system (with the ability to roll back); and fast, scalable redundancy. I helped create that system for them. They loved it, and after talking to other companies with similar needs for their WordPress-powered sites, they thought it would be useful to turn this system into a generic WordPress deployment system that anyone could use to run a professional WordPress site.
Today, we’re announcing the result of that effort: WP Stack.
What it is
WP Stack is a set of deployment scripts using Capistrano, and a series of drop-in WordPress plugins that work in tandem with this system to perform commonly desired tasks on professional sites, such as rewriting media files to a CDN or serving WordPress multisite uploads directly through Nginx. It supports both production and staging environments, as well as file/database snapshotting from production to staging, so that you can test your code changes on fresh data.
The commands for tasks like deployment, rollback, and database/file syncs, are short one-liners such as
cap production deploy or
cap staging db:sync. And while code changes (like templates or plugins) require commits and deployments, the regular WordPress workflow is unchanged… so content creators can post, upload media, and edit content to their heart’s content without needing to know what’s going on under the hood.
WP Stack can be used to deploy your existing WordPress site repository, but you’ll get best results if you start with WordPress Skeleton, a complementary project that gives you a nicely laid out starter WordPress Git repository, that not-coincidentally is pre-wired to work well with WP Stack.
Who this is for
This project will have the most benefit for professional WordPress sites, where “doing it live” just isn’t an option. But there’s no reason it can’t be used for personal or small business websites too. Many organizations know that they should be using version control and a deployment system, but they don’t quite know where to start. It is my hope that WP Stack (and WordPress Skeleton) will help lower the barriers and lead to more organizations using professional development and deployment techniques for using the software that powers their public face.
We’re not done! The roadmap for WP Stack includes things like multi-server uploads syncing, Puppet/Chef manifests with full Nginx configs, and a Vagrant config for easier local development. If you’d like to get involved, head on over to GitHub.
I’d also like to thank Knewton for sponsoring the development of WP Stack. It’s great to be able to work with a company that can see the value of open source contribution.
What's this? You're reading N choose K, the Knewton tech blog. We're crafting the Knewton Adaptive Learning Platform that uses data from millions of students to continuously personalize the presentation of educational content according to learners' needs. Sound interesting? We're hiring.