In yesterday’s post, I mentioned that to scale WordPress you “just cache it.” That’s a pretty big claim to make without any sort of references.
Here’s Peter Chester of Modern Tribe’s talk on the subject from WordCamp LA 2011.
Yesterday Matt Mullenweg – co-founder of WordPress – did an IAMA on Reddit. You should read through the whole thing, he took the time to answer almost everybody’s questions. One of his answers really stood out to me, but before I get to that, some context.
Back in 2007, I was working on the two-man development team of a rapidly growing hip hop news site. In a good month, we’d see nearly 3 million unique visitors and 15 millions of page views. Editorial, design and traffic demands found the site quickly outgrowing it’s CMS. We needed to replace it. We evaluated some of the PHP frameworks and took a serious look at WordPress. Even at that time, in early version 2, WordPress looked promising. After some serious poking around, we felt that all existing frameworks and systems were too bloated, we worried they wouldn’t scale to meet out traffic demands. We ended up building a kick ass custom CMS.
Because of this history, I found Matt’s answer to one question particularly interesting. Reddit user andrewry asked, “if you could break backwards compatibility (which really isn’t a option for WP), what would you really like to completely redo or add to WordPress?” His answer resonated with me:
If backwards compatibility wasn’t a concern I would rename all the inconsistent column names and variables to match our style guide, drop TinyMCE, simplify the user roles and capabilities system, replace widgets with page blocks, redo the admin menu system, denormalize the DB, flatten dependencies and deep hierarchy in function execution, and completely reorganize the code so the bare minimum of files are included with any given request.
This is basically the list of reasons we rejected WordPress as a CMS back in 2007. It’s re-assuring to hear that Mullenweg acknowledges these issues. As an outsider it’s easy to assume that Auttomatic is either totally ignoring them, or worse, don’t see a problem.
Here’s the thing though.
Even though we managed to built a CMS that included a minimal number for files, didn’t have crazy function dependancies, had a sane database, etc, it didn’t magically scale to handle 800 page views per minute. At the end of the day, we cached. All page output was written to a flat file.
Turns out, this is the how you scale WordPress. Just cache it.
About a month and a half ago The Big Webshow featured WordPress creator Matt Mullenweg, listening to the interview it became really clear that WP is trying to position itself as a website “operating system.” While there are probably other platforms much more capable of the task, WordPress’ ubiquity is sort of pushing it in that direction regardless. Since that interview I’ve been meaning to take a closer look at WordPress.
Over the weekend I finally had a chance to dive in to theme and plugin development.
Overall, I found WordPress to be very easy to work with, I didn’t find myself running into any dead-ends like I have with other platforms and CMSes. I thought I’d share my impressions in the form of a pros v cons list.
Admittedly a lot of the shortcoming I found are based on a lot of assumptions and only a basic knowledge of WordPress. Also, I will concede that “your code is ugly” is a fairly superficial criticism that doesn’t inherently mean anything. So, in conclusion, I am not anti-wordpress. I like it as a very-extensible blogging platform, but I’m still a little skeptical about is pontential usefulness as a general-purpose CMS or some sort of website framework.
If you’re a wordpress guru, I’d like to hear you input. Tell me why I’m wrong.