Not Hating WordPress

I'll start with WordPress first because most people would say it's the obvious choice. I think people get the impression that I hate it, but that's not necessarily the case! It's just never hit that sweet spot for me when it comes to my personal sites, but I've definitely chosen it for client sites in the past with no qualms.

The author has an empowered role in WordPress; for instance, the fullscreen edit view encourages focused writing and you have control over your permalinks on an individual post level. You can add custom fields and Pages and widgets and all sorts of things so authors can easily maintain content areas outside of "posts". The Quick Edit and Bulk Edit views are intuitive and streamline content management. I appreciate the levels of granularity in user roles and privacy. The markup that the WYSIWYG editor generates is surprisingly cruft free if you stick to the basics.

Asset handling is good, in the sense that you can drag and drop multiple items into the browser window, but I find the organization of assets to be a bit lacking. You can't group assets into sets and the default "slideshow" is just a bunch of square thumbnails. There are plenty of plugins though to remedy that.

I'll start with the upside on the designer/developer front: there's a huge community  so if you have a problem, chances are someone's encountered it in the past and the answer probably already exists on the Internet. Or you can ask and someone's bound to know. Plus (this is especially good for clients) you can always find someone to take over development or maintenance because the community is so large. And you know that development of the product itself isn't going to stop any time soon, it's got too much momentum behind it.

There are boatloads of great looking themes that are free or a nominal fee so you have a running start when it comes to customizing a site. Like themes, there's a galaxy of plugins so if there's something that's out of my ability or timeframe to code then I can just grab it. It's also flexible so you can build things that don't quite fit into the "blog" paradigm, and since it's dynamic your changes are reflected instantaneously.

The upfront cost is "free", but you do have to host it somewhere. Maintenance is a bit easier now that you can set it to auto-update, but you have to constantly monitor your plugins to make sure they didn't break in the upgrade. I've had a client's embedded contact form completely break for days because an update no longer allowed script tags in the post body and just stripped the whole thing out without warning.

So now comes the not-so-great things - which are all the things that made it great to begin with. The huge community can be a detriment. Sometimes the answers are just plain wrong, or a plugin may be great but then WordPress releases a new version and the developer lost interest in maintaining the plugin and you're up shit creek. Or there are security holes in the plugin that you suddenly have to deal with. It's definitely better now, but with its popularity and ubiquity (like Windows) it's always going to be a target. In the same vein, never ever use the native WordPress commenting system because you will drown in a sea of spam. Offload that to Disqus or whatnot.

The 100% dynamic aspect ends up making the site really slow if you're not careful with your queries and god forbid you're hosted on a shared server. And you'll get the dreaded "site unavailable" if you've got too much traffic. True, the right host can mitigate many of these issues (I recommend WPEngine - pricy but worth it - amazing support, a staging area built in and you can deploy with git!)  but often it's not something that the everyday person considers and is probably out of the budget of most casual writers.

Lastly, I personally dislike the templating language. I have a decent understanding of programming principles and to me it feels kludgy, hard to read and understand. Why are there multiple ways to query the database? Why do I have to reset my query every time I want a new chunk of data? The lack of separation between layers makes it tedious and it is not fun at all to deconstruct a theme. I want to focus on making the interaction great and instead I'm bogged down in wondering why the metadata field isn't outputting correctly. I'm sure there are some people who love it (more power to them) but it's just not for me.

I'd see it working well for a number of scenarios - a group blog with a moderate amount of traffic, someone who needs to take advantage of custom post types, anyone's who's willing to put a moderate amount of time on a monthly basis for maintenance or who likes to tinker. It's not good for someone who's just starting to write or a small business that basically wants the equivalent of a business card, there are more elegant solutions out there.

The only site that I administer that I'd consider using WordPress for is Lonestar Taco - mostly in thinking about inviting future staff to write and that I've had a pretty good experience in teaching novices to use it in the past. However, there seems to be a whole new crop of publishing systems out there, so I'm not going to settle for WordPress quite yet.