Pro­cess­Wire is a free open source content man­age­ment framework (CMF) and content man­age­ment system (CMS). The backend is clean and struc­tured so it can be easily operated. This tool gives you all the freedom you need to design your website. It is not as well-known as the CMS giant WordPress or its com­pet­it­ors, Joomla!, Drupal, and TYPO3, but the stream­lined software stands out from the bigger com­pet­i­tion thanks to its ad­vant­ages. For this reason, it’s worth taking a look at Pro­cess­Wire.

Pro­cess­Wire: the history

Under the name Dictator CMS, this CMS was in use as early on as 2003. In 2007, Ryan Cramer finally released the software under the name Pro­cess­Wire 1.0. However, both Dictator CMS and Pro­cess­Wire 1.0 were not yet open source, although efforts were made for them to be so. Version 2.0 was finally released under the Mozilla Public License 2.0 in 2010. According to the community, version 2.3 was a special milestone for the de­velopers, as it was the first release where the community had worked together on the core software. Version 3.0 (released in 2016) is the latest major release. Thanks to the active community, loc­al­isa­tion packs are also available for several languages, including Spanish, German, French, and Italian.

The Pro­cess­Wire CMS: the most important com­pon­ents

The Pro­cess­Wire back end is well struc­tured and the user interface is extremely user friendly. You build web pages with Pro­cess­Wire from in­di­vidu­al elements, so-called fields, and you can determine which function a field has and place it on the page. To define the page structure, you can create a template with Pro­cess­Wire. You then place the fields to your liking. If you assign pages to a template, your website displays all these pages according to the structure you specified.

Templates and aspect ratios

The sample image below shows the back end of the demo in­stall­a­tion of Pro­cess­Wire, which is available online for testing. Under “Setup,” you will find the template editor. The “Ar­chi­tec­ture” template defines the page prop­er­ties (layout, text boxes, input fields, etc.) for 216 web pages within the domain.

When you click on the template, the editor (that you can edit the selected template with) opens up. Here you will find the “Basics” tab. This enables you to edit or add fields. You also manage access rights, page hier­arch­ies, URLs, the cache, settings for tags and icons, import fields from other themes, or delete su­per­flu­ous templates.

In the tab entitled “Family,” you determine the internal web page re­la­tion­ships. When you build a website or app with Pro­cess­Wire, each component receives a page. The in­di­vidu­al pages have “children” or subpages. Pro­cess­Wire displays the page re­la­tion­ships in a page tree, similar to the document object model (DOM). Ryan Cramer, author of Pro­cess­Wire, ori­ent­ated himself around the very clear jQuery. There is no limit to how deep or branched the structure can be.

Since each part of your website is assigned a web page, the CMS works with hidden pages. These are either always hidden and are used, for example, as content storage for other pages, or they control nav­ig­a­tion. Another pos­sib­il­ity: the page appears when users interact with the website in some way. For example, the 404 error message is displayed when an invalid URL is entered.

A stable API

The CMF is proud of its stable pro­gram­ming interface (ab­bre­vi­ated API for “Ap­plic­a­tion Pro­gram­ming Interface”). Due to the modular structure of Pro­cess­Wire, the system requires internal in­ter­faces that users can utilise to find, change, or create new data. You edit this data using interface variables and selectors. In the script, you can link necessary commands and place them in one line. In addition to in­teg­rated modules, the API also enables fluid data exchange with third-party plugins.

Fields

The pages mentioned above consist of fields. These also have a special feature. Unlike WordPress, for example, there is no single large input field for entering all content on a page. You can customise all fields to suit your needs, then combine several fields on this page – be it simple text fields or videos. You assign these fields to the Pro­cess­Wire templates. Whether simple HTML file or complex PHP ap­plic­a­tion, the template files can be placed into the CMS in just a few steps via drag-and-drop. Most de­velopers use templates with PHP tags to display dynamic content.

How templates work with Pro­cess­Wire can be explained as follows: when a user loads a page, the CMS accesses the template assigned to the page. It assigns API variables to the template and then executes it as a PHP script.

Modules

The core program already includes some stable plugins. There are modules for:

  • Admin themes
  • Spam blocker from Akismet for the comment column
  • Field type plugins (checkbox, images, selection options, page titles, etc.)
  • Folder settings
  • Images
  • Input fields (buttons, email, name, selector, text area, etc.)
  • jQuery
  • Languages
  • Hooks
  • Markups
  • Pages
  • Processes (editing pages, per­mis­sions, editing fields, etc.)
  • Sessions
  • The system
  • Text format­ting

You can customise the meth­od­o­logy using hooks. Instead of changing the source code, connect to a plugin or theme at a specific point in the code. Ad­di­tion­al modules can be found in the plugin directory, where community members upload new open source modules. You can use module packages without any problems: These include Form Builder – a tool that makes creating forms easier – and ProFields, which can process more data in fewer fields.

The cache is also worth men­tion­ing. In both the included version and the paid pro­fes­sion­al versions (the revenue price of ProCache is fully used for its de­vel­op­ment), the cache is a practical tool that speeds up page con­struc­tion.

Pro­cess­Wire: re­quire­ments

Minimum re­quire­ments

  • A web server based on Unix or Windows
  • Apache (po­ten­tially an equi­val­ent like NGINX or IIS if a re­place­ment for .htaccess e.g. web.config for IIS, is available)
  • mod­re­write must be enabled in Apache
  • Apache must support .htaccess
  • PHP from version 5.3.8 with PDO database support
  • GD2 library bundle for PHP

Best case:

  • The latest stable PHP version
  • Short tags for PHP are activated
  • Multibyte string support compiled with PHP (-enable-mbstring)

A com­par­is­on: Pro­cess­Wire vs. WordPress

Both tools first appeared on the scene in 2003. WordPress is the CMS giant with a market share of 60% (as of January 2018), meaning it’s in the lead when it comes to rankings among content man­age­ment systems worldwide. The user figures for Pro­cess­Wire are only in the four-digit range, which means a market share of less than 0.1%. A big dif­fer­ence between the two tools is that WordPress is very easy to set up and use and requires no HTML or PHP knowledge

It’s a little bit like music. You don’t need much talent or time to create a generic pop song. The ar­range­ment is put together auto­mat­ic­ally with auto-tune cor­rect­ing any errors. The music can often be heard on the radio since it’s low entry level. More complex music usually offers more variety, but also needs more skill to compose.

User-friend­li­ness

Pro­cess­Wire has some features that make life easier for web designers and de­velopers – such as drag-and-drop file uploading. The in­stall­a­tion also takes re­l­at­ively little time. But the freedom to design any website according to your own ideas also requires previous knowledge of the pro­gram­ming languages. The target group of Pro­cess­Wire is therefore different from that of WordPress. The market leader boasts that it can be installed and set up in less than 5 minutes, with existing themes and templates providing a framework, so even beginners can create a re­spect­able blog in just a short time.

The website developer assigns the Pro­cess­Wire templates to the re­spect­ive pages. You prac­tic­ally have to merge the framework of the website yourself using commands, making Pro­cess­Wire more aimed at pro­fes­sion­al web designers or leisure pro­gram­mers. However, the end user of the finished website doesn’t need much prior knowledge: once the framework is in place, updating and adding new pages won’t be a problem, even for beginners. The out-of-the-box function, which can be used to create several localised domains for a website, is par­tic­u­larly practical. Thanks to the language packages, you can also work in the re­spect­ive target language in the back end. With WordPress, the language in­teg­ra­tion usually does not run so smoothly.

SEO friend­li­ness

If you’re creating a website, you obviously want it to be found by people on the net. Both Pro­cess­Wire and WordPress offer support for op­tim­ising pages. The core software optimizes URLs for search engine crawlers and readers, for example. The Pro­cess­Wire tree structure is very well suited for creating clear hier­arch­ies. However, pa­gin­a­tion can be a problem. Empty pages that only link to other pages don’t mean anything to the crawlers and, in the worst case, simply send them in a loop. Pro­cess­Wire de­velopers recommend preparing 404 error pages for possible loading errors, with the cache (the basic version is suf­fi­cient for small projects) in­creas­ing the loading speed. With WordPress, you have to add an extension for this.

You will find many op­tim­isa­tion tools in the WordPress plugin section. Yoast SEO, for example, offers the most important SEO functions in one package. These include functions for in­teg­rat­ing social media, meta data op­tim­isa­tion, and website analysis. With the Google XML Sitemaps plugin, you can create a sitemap to improve nav­ig­a­tion. Pro­cess­Wire also provides a module for this purpose. The MarkupSEO extension is suitable as a complete solution. This tool creates an SEO tab in the “Pages” section where you can enter the title, preview images, and other metadata. In the upper area, you can see a Google preview at the same time as being able to edit. ProFields: AutoLinks auto­mat­ic­ally links selected keywords to given URLs, and with the Pro­cess­Wire ac­cess­ib­il­ity tools module, you can improve your website’s ac­cess­ib­il­ity.

Tip

Do you want to know more about WordPress? In this article, we show you what WordPress can do – and it’s not just blogs.

Basic structure and plugins

As already mentioned, you’re working with an almost endlessly ex­pand­able tree structure when it comes to Pro­cess­Wire. You have a solid and stream­lined software for website de­vel­op­ment at your disposal. The pro­gram­ming interface can be used to integrate modules that are useful for the project, although some are already included in the core software during in­stall­a­tion. Community ap­plic­a­tions are also based on the open source software, and lead de­velopers test them before they make them available to users. The program is con­sidered a content man­age­ment framework, since you can create your own personal content man­age­ment system at will within the software.

WordPress is based on the software b2, which was ori­gin­ally developed as weblog software. You can also maintain hier­arch­ic­al pages and use it as a CMS. The API has often been cri­ti­cised: unlike Pro­cess­Wire, where core software and modules in­ter­twine, the large WordPress community con­stantly adds (sometimes unsafe and over­loaded) plugins. Because of over­lap­ping re­spons­ib­il­it­ies, different plugins end up competing with each other. Due to the large amount, not all ap­plic­a­tions can be tested for com­pat­ib­il­ity. The fre­quently automated updates mean that new plugin versions may restrict other functions of your website without you even noticing.

Another feature of the CMF software Pro­cess­Wire: all visible and invisible com­pon­ents of the website are pages. You then arrange several data fields tailored to the input method. With WordPress, you work in a large input field and only have a few data fields for cat­egor­isa­tion.

Security

WordPress is known all over the world. Its pop­ular­ity, of course, attracts hackers. CVE Details listed a total of 273 vul­ner­ab­il­it­ies in WordPress ap­plic­a­tions up to March 2018 and many of them were critical. In addition, the number of reported vul­ner­ab­il­it­ies had more than doubled by 2017, compared to the previous year. The cross-site scripting method (XSS) led the list of the most common cyber attacks. WordPress is con­stantly working on security updates, but many pages use an abundance of plugins that also require updates. Many website operators forget that the plugins also need regular updates. Over­loaded themes can come with security gaps.

Pro­cess­Wire still insists on testing community modules before releasing them, despite the open source co­oper­a­tion. The plugin library is smaller but more man­age­able, and the plugins are com­par­at­ively secure. Pro­cess­Wire is also con­stantly working on security updates.

Pro­cess­Wire WordPress
Operating system Platform in­de­pend­ent Platform in­de­pend­ent
Category CMF, CMS Weblog software, CMS
License Mozilla Public License 2.0 GNU GPLv2+
Supported web servers Windows or Unix-based web server with support for Apache, PHP, and MySQL Web server with MySQL and PHP support
Supported databases MySQL, MariaDB 5.0.15 onwards MySqL, MariaDB
Template language PHP PHP
Browser-based back end
Offer of hosting No Yes
Tools for search engine op­tim­isa­tion
Re­spons­ive web design
Security Small user group isn’t very appealing for hackers Wide dis­tri­bu­tion attracts hackers
Only test plugins Some unsafe plugins
Regular system updates
User man­age­ment Multi-client capable, user groups, user access re­stric­tions, multi-level access control also for in­di­vidu­al fields Multi-client capable, user groups, user access re­stric­tions, multi-level access control
Operation PHP scripts in data tree, WYSIWYG editor, preview, labels, search, back end with admin themes WYSIWYG editor, blog system, preview, search, tags
Mul­ti­me­dia elements Free to file in data field With extension
Multi languages Easy out-of-the-box man­age­ment With extension/in­teg­rated trans­la­tions for frontend and back end
Localised URLs
Doc­u­ment­a­tion
Tutorials and community
Suitable for Complex websites with special design re­quire­ments Blogs
Multi-lingual websites Content-limited pages with many design changes
Online cata­logues Small business or in­di­vidu­als with in­form­at­ive or rep­res­ent­a­tions websites
Small websites that don’t require many design changes When pro­gram­ming is too expensive
De­vel­op­ment: pro­fes­sion­als and advanced users
Use: suitable for beginners although requires some fa­mil­i­ar­isa­tion Beginners and advanced users

Tutorial: first steps with Pro­cess­Wire

Brief in­struc­tions for in­stall­a­tion

There are several download methods, but most users download the program through GitHub. If you have down­loaded the zip file this way, you have to unpack it, upload the file package to a server, and continue with the web in­stall­a­tion. The program performs a com­pat­ib­il­ity check and informs you if the basic re­quire­ments are not met. Make sure that PHP is enabled in the .htaccess file, then enter the required in­form­a­tion about your database in the admin area, which you can find out from your host. Lastly, the CMF requires an e-mail address so that you receive your access data and can start im­me­di­ately.

Tip

Pro­cess­Wire doesn’t offer hosting. If you haven’t got a host yet, the offers at IONOS could interest you.

The first steps in the back end

After logging in for the first time, you will be greeted by an empty template, which you can design however you want. You can find it on the Pro­cess­Wire website under “Modules” > “Site Profiles” > “Pro­cess­Wire Blank Profile.” Al­tern­at­ively, you can install one of the sample templates. This will give you a first im­pres­sion of how to build and manage your site in the back end. Of course, you also have the pos­sib­il­ity to create templates for the admin area or to load them as a module. This way, you could create a CMS that is tailored to the needs of future website ad­min­is­trat­ors, for example.

Cus­tom­ised fields

The following ex­plan­a­tion uses screen­shots from Pro­cess­Wire’s demo version. The picture above shows the back end with the page tree. Once you have set up the page, you add begin adding pages and fill them with content. But we’ll come back to that later. First, go to the neigh­bour­ing tab “Setup” and select the sub item entitled “Fields.” Select “Add New” to create a new field, as shown in the following image.

Fill-in all field at­trib­utes, such as the name, type, and label. You can also decide whether you want to include a tick box, date, text, or image. Save the new field and create even more in the same way until you have created enough for your website. It’s also possible to add more fields later. The settings for the new field are shown in the lower screen. The name is “TestTest.” “Type” shows that a field should be used for text input. Below this you can enter the desired label. Otherwise, the entered name will be used as the label.

Templates determine the structure

Next, go to the “Templates” menu item, which you’ll find in the settings (Setup). The templates ensure all pages with the same tasks look the same. Select “Add New Templates” from a PHP file on your server or write them down. If a template already exists (like the basic template from the downloads), you can duplicate this template for a new theme. Select a template from the drop-down menu under “Duplicate fields used by another template.” Your new template contains all fields from the original template. Existing fields are retained.

Note

Make sure that the name is clear. This will make it easier for users to operate the website later on.

You have now created a new template, which you can sub­sequently define in more detail. The Pro­cess­Wire demo version uses a website about high-rise buildings as an example to highlight some of the possible uses of Pro­cess­Wire themes. The “City” template, shown in the image below, uses a total of 70 subpages on the website. The first tab “Basics” enables you to insert the fields you have created into the template. The “City” template has three fields: title (type: PageTitle), ab­bre­vi­ation (type: Text), and map (type: MapMarker). All pages under this template have a title in the header, an optional title shortcut, and a map.

You can arrange the fields using the drag-and-drop function. New fields can be added via the drop-down menu item “Add Field” or you can create a new field directly in the template. A label ad­di­tion­ally defines the theme. Under “Usage,” it’s possible to see all the pages that use the template.

In the “Access” tab, determine who has access to which pages in the template. There are many possible ap­plic­a­tions for this. For example, forum pages can be created that are only visible to logged-in users. You may also want to build a page that all visitors can see, but whose content can only be edited by mod­er­at­ors. Under “Family,” define whether the template allows subpages and also which templates apply to the children and parent pages. Pa­gin­a­tion and website op­tim­isa­tion can be prepared through clear path struc­tures using the URL settings.

The cache improves the loading times of complexly designed websites. Under the category “Advanced,” find tags, toggles, and icons. Since Pro­cess­Wire tries to place tools where you need them, you can also copy fields from other themes into the template editor under “Import.” Use the “Delete” option to get rid of a template.

Everything is a page

Con­sid­er­ing everything as a page means that you get an overview of every element in your ar­chi­tec­ture. You have already defined fields and created templates so you’ve got the necessary basis to create a page. To do this, go back to the “Pages” homepage and click on “Add New.” In the drop-down menu, find all templates that have already been created. Select the desired theme, for example “Sky­scrapers” as shown in the picture below.

The new page will be built according to the template defined in “Sky­scrapers.” In the demo version, the family re­la­tion­ships for the page are already de­term­ined. For the “Sky­scrapers” template, select a parent page from the given cities. Then give the page the title for the heading and a name for the URL.

Note

As a developer, you can also rename tabs. Editors will later find the content area for high-rise building pages under the title “Sky­scrapers.” For example, if you go to the “Al­buquerque” page in the admin area, you will see various tabs that you can customise as admin. In the first tab, you can edit the page content. Next to it, you will find a tab for de­term­in­ing which children the page has. As an admin, you can rename this tab, for example, under the name “Sky­scrapers” – the template for all children’s pages that are sub­or­din­ate to pages with a city template.

First save the page by clicking on “Save,” go to “Pages” > “Cities” > “Al­buquerque,” and select the example page (Al­buquerque Petroleum Building) and click on “Edit.” The Settings tab is where you define the page prop­er­ties. The name and template are already created. The parent page in the example is Al­buquerque. Here you decide on the status (hidden, locked, or un­pub­lished), access rights, and the cache. Customise your in­di­vidu­al fields in the content area (here: Sky­scraper Info). The Sky­scraper template specifies 12 fields:

  • Title (Page Title)
  • Height (Float)
  • Floors (Integer)
  • Year (Integer)
  • Ar­chi­tects (Page)
  • Body (Text Area)
  • Map (Map Marker)
  • Images (Images)
  • Fieldset_Meta (Field­setOpen)
  • Free­baseGuid (Text)
  • Wiki­pe­di­aID (Integer)
  • Field­set­Meta-END

In the page editor, fill text and number fields with content, enter the marking co­ordin­ates on the map, and upload images to the cor­res­pond­ing field using drag-and-drop. You can use the image tool to change size and format. Once you have filled in all the fields, select one of the preview views in the “View” tab. If everything is how you’d like it to be, then save the page. With these first steps, you can build a simple, in­di­vidu­ally designed website. For more design freedom, better user ex­per­i­ence, and an optimised admin area, have a look through the open source modules.

Summary

Pro­cess­Wire is a versatile CMF that is suitable for both small websites and large projects with multiple domains and target languages. Whoever uses it to build a website should be ex­per­i­enced in HTML and PHP. Website operators and content editors are usually able to work without en­coun­ter­ing any problems after a short fa­mil­i­ar­isa­tion period. User-friend­li­ness is increased thanks to admin modules. Pro­cess­Wire scores points with a light­weight software package, stable API, numerous pos­sib­il­it­ies for in­di­vidu­al­isa­tion, and a helpful community.

Go to Main Menu