ProcessWire is a modern and mature open source CMS based on PHP and with a focus on developers. It has been developed by Ryan Cramer since 2007 as a predecessor of the DictatorCMS.

The ProcessWire Website

The code of ProcessWire is modern and clean, the usability is quite good and the project has a big continuity. However, ProcessWire is more like a framework for developers and has never gained a publicity like WordPress or Drupal.

ProcessWire for Content Managers

ProcessWire is a solid choice for Content Managers. After a login, ProcessWire redirects the user to the content overview for content editors and not to a dashboard for administrators. So ProcessWire sets the right focus from the editors perspective. Nevertheless ProcessWire has announced a new dashboard for a future release, probably because the actual dashboard does not reflect the latest standards in all aspects.

When it comes to content creation ProcessWire offers a traditional html WISYWIG editor by default and does not follow the trend to markdown like many juvenile systems do.

The ProcessWire Website

The media management of ProcessWire is pretty advanced. There are two different ways to add images to a page, which might be a bit confusing at first:

  1. You can insert new images or add existing images with the WISYWIG editor.
  2. You can also add images with a separate drag & drop field, if it is implemented. Then you can drag & drop them to the content area.

ProcessWire adds the media files to content pages, so you have to choose the right page in the media manager first, before you can add an image to another page.

Another points are the captions and alt texts for media files. In the drag & drop area you can add an alt text called description, but you cannot add a caption. In the media manager of the WISYWIG editor, you can activate a checkbox for the caption, but the alt text field is closed and you have to find the right button for it. However, you will finally find your way, but it is a small lack of usability.

ProcessWire for Developers

ProcessWire uses the AMP stack (Apache, MySQL, PHP) and requires PHP version 5.3.8 or newer, and MySQL 5.0.15 or newer.

The installation process is very convenient and easy to go through. After the installation you should imediately install the ProcessForgotPassword Module, which is shipped with the core verson, but which is not installed by default. If you loose your password, you have no chance to get it back without this Module, so be careful. You can find this module under "Modules" and "Configure".

ProcessWire is very modular and flexible. Similar to other modern CMS like craft or statamic, you can built new templates within the administration dashboard. Therefore you have a template manager and a fieldset manager, who helps you to create and define the right input fields for your templates.

The ProcessWire Website

Another speciality of ProcessWire is the api first approach, which makes ProcessWire a good candidate for a headless CMS architecture.

The templates are coded in plain html and php like this:

<h1><?php echo $page->title; ?></h1>

There are several API variables like $input, $fields, $user or $templates, but most time you will probably use the $page variable. A full example with a title, a body and a list of featured pages might look like this:

<h1><?php echo $page->title; ?></h1>

<div id='bodycopy'>
    <?php echo $page->bodycopy; ?>
    $features = $pages->find("featured=1");
    foreach($features as $feature)
       echo "<li><a href='{$feature->url}'>{$feature->title}</a></li>";

Check out the documentation of ProcessWire to dig deeper into the technical stuff.

ProcessWire for Non Coders

ProcessWire has a lot of modules and plugins, but ProcessWire has no option to install a new theme similar to other CMS. Instead it is more like a framework that helps you to build your own theme. This means, that ProcessWire is strictly orientated to web developers as a first target group.

If you are new to coding but willing to learn, then ProcessWire is probably a perfect starting point, because it uses good practices and you can use clean and easy HTML and object oriented PHP in your templates.

Pricing and Licence

ProcessWire is open source and the core is distributed under the Mozilla Public License version 2.0 (MPL), while some of the components are distributed by MIT.

ProcessWire has a store, where you can buy third party components and other products.

Recommendation: When to use it?

ProcessWire can be used as a CMS framework by web agencies and freelance developers. There is a huge list of existing sites created with ProcessWire. Most of the size are of simple or midsize complexity from nearly all categories you might imagine. There are blogs, e-commerce sites and even directories. Of course, with the api concept ProcessWire is probably a good choice for all kind of distributed content concepts.