If you have been following the previous CMS instalments here at Noupe, you must already be aware that every once in a while, we review a Content Management System. Today, we shall be taking a look at ProcessWire, a very straightforward and nifty open source CMS.
ProcessWire: CMS With A Difference
ProcessWire is a rather lesser known yet well loved open source software. In terms of the usual bit, it relies on PHP5, has a decent selector engine, a modular plugin architecture, and a jQuery inspired API.
The CMS itself has won its own share of awards, so yes, it is not entirely obsolete or unknown. And among the millions of CMS out there, if yours manages to attract even a tiny fraction of recognition, you can be assured that you’re walking in the right direction.
With the introduction out of the way, let us focus on certain key aspects and take a look at how ProcessWire fares.
ProcessWire claims to be a CMS that intends to simplify things. Naturally, one would expect the CMS itself to be simple in terms of operation, and ProcessWire does not disappoint.
The installation process, to begin with, is fairly direct and does not involve many hassles. The update process, on the other hand, does require a little bit of tinkering around, but it is not rocket science either. If you compare ProcessWire’s upgrade mechanism to that of WordPress, you may probably be disappointed. But if you were to compare ProcessWire’s update process to that of, say Joomla!, you will find the former to be really easy. Basically, ProcessWire stores all your content in the /site/ directory. Now, since the /site/ directory is obviously not part of the CMS source installation, logic dictates that you can replace the other files without damaging or losing your content. The generic update stratagem is as follows:
- Download the new version, and unzip it on your local drive.
- Upload and replace these directories or files: /wire/, /index.php and /.htaccess.
- Of course, you can find detailed steps and guides on the ProcessWire website, and if there are additional instructions, make sure you give them priority over the above checklist. There are various other ways too: find them here.
Coming to the functioning of the CMS. In ProcessWire, almost every major thing is in the form of Pages. Each page can have its own children, and so on. Imagine a large tree network: everything on your website’s front end must fit somewhere on this tree.
Pages in turn consist of a series of Custom Fields. ProcessWire comes with several custom field types such as text area and images, and you can make use of these custom fields to add content to your pages. This method, in my opinion, has its own merits and demerits. On the positive side, there is tight integration as well as hierarchy and once you get the feel of it, it is near impossible to mess things up while adding content to your pages. On the downside, however, I would prefer a more direct approach to certain tasks, such as the addition of images. The images custom field can use secondary help — possibly a mechanism to upload images directly from the editor itself. WordPress has this feature, and so do many other CMSs. Along similar lines, the page creation process too involves an extra step: create a page, pick a template, and save. Thereafter, on the basis of the template you have picked, the CMS shall offer you a set of fields to work with on the Publish page.
Lastly, ProcessWire has a rather impressive looking API. Considering the fact that ProcessWire does not yet have gigantic websites in its portfolio list, there aren’t many real world examples that it can use to brag about its API. But overall, if you were to look at the API docs, it surely seems interesting.
Community and Documentation
ProcessWire is not WordPress, and before anything else, this becomes evident in terms of numbers. The user base is relatively smaller, and so is the community. However, going by the activity in the forums, the community surely seems to be both lively and active. There are regular discussions (and debates), so if you are talking ProcessWire, you will hear more than just crickets.
On the negative side, though, I find the documentation to be far less impressive. The API docs and guides are tolerably good, but the overall support documentation is next to negligible. If you are seeking help with an issue, the best (and apparently the only) place to start your search will be the official forum. Apart from the forums, you also have certain videos at your disposal, but if you were looking for something like the WordPress Codex or what Concrete5 and others have at their disposal, you will be badly disappointed. This is one of the biggest areas where ProcessWire needs to pick up quick.
The Good and The Bad
Now, before winding it up, let us take a look at some of the pros and cons of ProcessWire:
- Simple and straightforward updating, installation and usage process; really difficult to go wrong with something as clear as ProcessWire’s interface.
- The organization of pages and templates make website management fairly simple and easy.
- Impressive API; easily customizable custom fields and templating structure.
- Good collection of modules.
- Active community.
- The documentation!
- Maybe I am missing something here, but I think global variables need to be used more. Otherwise, even tiny chunks of content has to be created as a page.
- In ProcessWire, almost everything is a ‘page’. This is good once you get used to it, but for someone who is migrating from another CMS, having everything as a page even though you may not really require a page for that purpose is rather confusing at times. Once again, this is more a matter of familiarity than anything else.
ProcessWire is more of a mainstream CMS, so comparison with WordPress makes little sense (though I have referred to WordPress already a few times earlier in this article — couldn’t resist). ProcessWire, as a software, reminds me more of ExpressionEngine than anything else. In fact, if I may add, I will consider ProcessWire to be a more suitable solution for certain websites which may otherwise find EE to be an overkill.
Speaking of that, when I was playing around with ProcessWire, I noticed the organizational similarity that the software’s interface shares with Radiant CMS. This similarity is best visible in terms of page organization. However, Radiant seems to be more of a team CMS, unlike ProcessWire.
What do you think of ProcessWire CMS? Have you ever used it or are planning to use it? Have your say in the comments below!
Sufyan bin Uzayr writes for various magazine and blogs, and has authored several books. He blogs about technology, Linux and open source, mobile, web design and development, typography, and Content Management Systems at Code Carbon. You can learn more about him, follow him on Twitter or friend him on Facebook and Google+.