• CMS
Sufyan bin Uzayr June 17th, 2013

ProcessWire: CMS With A Difference

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. processwire-main With the introduction out of the way, let us focus on certain key aspects and take a look at how ProcessWire fares.

Modus Operandi

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:
  1. Download the new version, and unzip it on your local drive.
  2. Upload and replace these directories or files: /wire/, /index.php and /.htaccess.
  3. 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. http://www.youtube.com/watch?v=fCyfI9gSt3c 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. http://www.youtube.com/watch?v=PEetje9obtw 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:

Pros

  1. Simple and straightforward updating, installation and usage process; really difficult to go wrong with something as clear as ProcessWire’s interface.
  2. The organization of pages and templates make website management fairly simple and easy.
  3. Impressive API; easily customizable custom fields and templating structure.
  4. Good collection of modules.
  5. Active community.
http://www.youtube.com/watch?v=Wl4XiYadV_k

Cons

  1. The documentation!
  2. 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.
  3. 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.

Appraisal

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

Sufyan bin Uzayr is a contributor to a variety of websites and blogs about technology, open source, web design, content management systems and web development. He is a published author, coffee lover.

10 comments

  1. I have recently implemented a custom project with ProcessWire and I love it. Just needed a couple of hours to become familiar with the core functions. :-)

  2. I have never used it, but Processwire looks a good CMS. I normally use Perch (grabaperch.com) which is not free but is excellent value for money, and the templating system is very easy to implement, even in an existing site. They also offer great support too.

  3. I have used it on several projects now and I’m always quick to recommend it when someone asks for advice on a new CMS.

    The reason I jumped ship from WP and Drupal was the introduction of Repeaters which is basically a group of input items treated as one. Compared to CCK for Drupal this was / is a breeze to use.

    It’s easy to output data as JSON or XML which I sometimes use on Flash projects (yes, still).
    This is also the only CMS where I could start writing quite advanced plugins within an hour of learning it.

    The great thing about ProcessWire is that it doesn’t try to be a front-end as well. It just makes it easy to pull out the data you want.

    I’m still not super convinced on everything being a page. But for now I’m content with it.

  4. Thanks for writing this review about ProcessWire. It is true that updating ProcessWire for those used to point and click systems can be unusual. I wouldn’t describe it as tinkering around though :); it is quite easy.

    In ProcessWire, “Page” is an abstract term that does not necessarily refer to your website’s front-end pages. The concept is very powerful once you get used to it. Coupled with the powerful API, you can do lots of things with pages. Pages can be used to store site settings, can be containers for assets, etc. However, if you don’t wish to, you do not have to store all your content as pages if you don’t care about having URLs for that content. You can store records in the database and easily access them using the API.

    ProcessWire has been used to build websites serving >100k pages without any performance glitches. It is no lightweight at all. It performs just as well building portfolio sites or massive websites.

    About lack of an image manager as part of the core, that is not an oversight but a conscious decision. This has been discussed in the ProcessWire forums. There’s is a new module in the works that offers image management that those coming from other systems will be familiar with.

    The ProcessWire documentation is very good if you asked me! Have a look at the API section. For new comers all they need to know about are $page, $pages and selectors. On the other hand, there is a need for more tutorials and various forum members are working on those.

    I’m not sure what you mean by global variables, ProcessWire fields are reusable in all templates and $page and $pages are global variables. They give you access to everything everywhere.

    Thanks for taking time to highlight ProcessWire to your readers.

  5. I have never use this one. I always try to learn new CMS to use and develop some new sites. Thanks for sharing such a nice CMS technology with us.

  6. Speaken from a newbie, Processwire has a very powerfull core and api that is openly and directly accessable through both your own templates filled with your own html, php, css, js, etc. and with internal admin templates. Processwire gets completely out of the way and adapts to the user/designer/coder instead of the other way around like with DP, WP, etc. etc.

  7. I’m more into graphics then website development but it’s time to build myself a website. Currently I’m using a WordPress theme to be able to post examples of my work easily but the layout limitations make it so I want to go with a website template and add a CMS. Thanks for pointing me in the direction of ProcessWire. It looks to have everything I’ll need without having to be a programmer to figure out how to do the installation and set up.

  8. I’ve been a WordPress developer for 3+ years and have developed a small handful of themes and plugins. It was a couple months ago when I started looking for an alternative cms to learn and add to my skillset. I was initially going with drupal but I chanced across processwire by accident and upon reading about the api I knew this was the one. really. take note I haven’t even coded anything at this point but the concept behind processwire was easy enough to understand.

    when they say “everything is a page”, it basically means that everything (almost) is accessed via it’s “url” (sort of). it does take awhile to get used to but once I got that concept down oh boy..

  9. Hi,

    The trick with pages and ProcessWire is that a page is nothing more than a collection of one or more fields linked to a template. That template can either be linked to a template file complete with markup to display the data, or is nothing more than defining the fields used for a particular page.

    Consequently, a page can either be an entire “web page” with everything that involves, or it could be one line of data used, for instance, for a select field.

    THIS IS NOT OVERKILL – even if it feels like it! :)

    After all, the “page” itself has no physical existence and therefore has no overhead apart from calling something from a database.

    Pages can be called into other pages, fields from pages can be accessed directly, groups of pages can be an array and looped through, fields from one page can make up part of another field and so on.

    The powerful API allows you to fish out any data from any page and display it any way you want, whether that is an amazing image carousel, a set of global values for your website, a group of pages as a drop down list or just a line of info for something important.

    So, give the poor little ProcessWire page a bit of credit – it is a very versatile and powerful little beastie!

    Oh, and go vote for ProcessWire at the Bitnami Contest! http://bitnami.com/product/processwire (Sorry, bit cheeky that!)

  10. I simply want to say I am just very new to blogging and site-building and seriously loved your web blog. Most likely I’m planning to bookmark your blog post . You really come with superb article content. Appreciate it for revealing your web-site.

Leave a Reply

Your email address will not be published. Required fields are marked *