ProcessWire on cloud

1-click AWS Deployment    1-click Azure Deployment

Overview

ProcessWire is a free open source content management framework (CMF) and content management system (CMS). The backend is fresh and structured so it can be effortlessly operated. This tool allows liberty to design your own website. It is not as well-known as the CMS giant WordPress or its competitors, but the rationalized software stands out from the superior competition. It is based on a few unpretentious core concepts and offers an remarkably easy-to-use and powerful API to handle content of any kind. ProcessWire is the “wire” that delivers the electricity to your “process”. The term “ProcessWire” refers to bringing everything together simply, easily and securely. Specifically, bringing together all the processes involved in building a website or application and wiring them all together to create something whole and complete. ProcessWire permits you to make all these connections intelligently, efficiently and easily. It is an ageless tool that works with your existing processes and flawlessly wires them together into something much greater than the sum of its parts. ProcessWire is designed to execute as an application in order to serve an http request. All http requests in ProcessWire are served by one type of Process module or another, and there are more than a dozen of them in the core

  • ProcessWire follows a simple directory structure which aims to do the following:
  • Keep your site’s files and assets completely separate from ProcessWire’s, so that you can upgrade your site simply by replacing ProcessWire’s core.
  • Minimizes the impact to your root installation directory, so that everything is clean and doesn’t create confusion with other applications you may have installed.
  • ProcessWire may be installed anywhere on your web server. While it’s most common to install it in your web root (/) the software will run just as well under any directory structure.
  • ProcessWire only creates two directories from your root. This includes /wire and /site. The /wire directory contains the ProcessWire installation and modules, while the /site directory contains everything unique to a given site, including templates, your configuration, stylesheets, scripts, cache files and other assets. This structure is outlined in more detail below.

·         Root installation directory (/)

·         /.htaccess ·         Required directives to Apache
·         /index.php ·         Bootstrap index file
·         /install.php ·         Installation script (you should delete this after installation)

·         Core and modules (/wire/)

·         /wire/core/ ·         ProcessWire core
·         /wire/modules/ ·         Default plugin modules
·         /wire/templates-admin/ ·         Templates, stylesheets and scripts for the admin control panel
  •   All files unique to a given site (/site/)
·         /site/config.php ·         Your site’s configuration file
·         /site/assets/ ·         All writable assets including files, images, cache files, logs and temporary files created by ProcessWire.
·         /site/install/ ·         Installation profile. You should delete this directory after installation.
·         /site/modules/ ·         Any plugin modules unique to a given site (optional).
·         /site/templates/ ·         Template files specific to your site
·         /site/templates/styles/ ·         CSS files specific to your site. You may locate this directory elsewhere, and/or rename it, if you prefer.
·         /site/templates/scripts/ ·         Javascript files specific to your site. You may locate this directory elsewhere, and/or rename it, if you prefer.

Where ProcessWire fits

ProcessWire is not built to detailed need like many CMSs  As an alternative it is built to the needs of well structured, highly indexable, standards compliant web sites in general. Because ProcessWire has robust support for custom data types and fields, you may find it to be an ideal fit with inventories of searchable, relational or cross referenced information. Examples include company directories, real estate listings, media delivery engines, travel listings, map applications, scientific directories, mobile application web services, searchable databases for products or services, and so on. That’s not to say it wouldn’t work equally well with something completely different, just that ProcessWire already has a track record of meeting these kinds of needs predominantly well. To recap, if your site has a component that includes custom data and types that need to be highly searchable and easy to develop with, then ProcessWire is going to be hard to beat as an overall site solution. If you want full control over your markup, then ProcessWire is also the seamless solution.

ProcessWire is a free PHP5 content management system and framework (open source CMS/CMF) built to save you time and work the way you do.
ProcessWire gives simpler and stronger control over your pages, fields, templates and markup at any scale. And it provides a powerful template system that works the way you already do.
ProcessWire’s jQuery-inspired API makes working with your content easy and enjoyable. Managing and developing a site in ProcessWire is shockingly simple–and fun–compared to what you may be used to.

Login

Home

 Title

Templates

  Basic Example Site

 

Features

Features of ProcessWire

Capable

Highly scalable on sites big and small

Everything about the core is designed to scale. ProcessWire is like a power tool for your website, able to deliver any output, at any scale, to any number of people, while remaining incredibly fast and flexible. Whether you have a 1-page site, or a site with millions of pages, ProcessWire works the same way and remains stable, fast and easy-to-use.

Structure that makes sense

ProcessWire uses a hierarchal structure for pages, like a family tree or a file system. There is no limit imposed by ProcessWire to the depth in which this structure can be defined. It is comfortable scaling to large and complex data needs, and remains simple regardless of scale. ProcessWire makes it easy to traverse this structure from the admin interface, as well as from the API.

No limits on output or design

ProcessWire gives you the tools to get at your data, but you decide how to handle the output. In fact, ProcessWire dictates nothing about the output or format. Meaning, the sky is the limit and anything a designer can dream up is possible, down to the pixel. You never have to design a site for ProcessWire, and the system won’t impose any limitations upon your site design or the designer. There is no “theming system” to learn and work around, as there is nothing to “theme” because all output comes from your own markup. ProcessWire isn’t limited to just HTML either. It can output JSON, XML or any other format you desire, and can serve as an excellent platform for building web services.

All fields are custom fields

Fields are the containers for individual bits of content, like a headline, body copy, sidebar, etc. In most CMSs those fields are dictated ahead of time by the CMS. This is not the case with ProcessWire, as all fields are completely custom and flexible user-definable fields. You don’t have to adapt your content to any predefined containers or types because fields in ProcessWire are defined according to your need. It’s easy to edit, add, sort or remove fields from pages (via templates) as you see fit. Each template is assigned to one or more pages, and each field is assigned to one or more templates. There are no limits to the quantity and use of pages, templates or fields. Fields can be as simple as containing raw text or numbers, or more complex like rich text editors, page-to-page relations, fields that hold files or images, or repeatable combinations of any other fields. ProcessWire comes witih dozens of different field types, and more can be added as plugin modules. Fields you create in ProcessWire may also be used as search and/or sorting properties when finding and loading pages. Everything is searchable and accessible.

Modular plugin architecture that goes further

While many CMSs use a modular/plugin architecture, ProcessWire takes the approach even further. The CMS portion of ProcessWire is a group of modules built on top of the ProcessWire content management framework. Modules are not an afterthought or an extra, they are the system. As such, the module/plugin system makes more sense and is faster and simpler to work with than other CMS platforms

Multi-language at its core

ProcessWire is multi-language ready at its core and comes with everything you need. ProcessWire makes building and managing a multi-language website a simple task relative to other platforms you may have tried. It comes with an assortment of native multi-language fields ready for all of your translation needs. It also comes with multi-language URLs, enabling a single page to serve content from unique language-specific URLs. In addition, ProcessWire comes built-in with a file translation tool, enabling you to easily translate static text labels that might appear in your template files.

Simple

Easy and enjoyable to develop with

Something we hear over and over is how much fun it is to develop websites in ProcessWire. It makes previously difficult projects easy, enjoyable and just plain fun. ProcessWire’s API takes its inspiration from jQuery, providing a simple and enjoyable programming interface to working with your content. Regardless of scale, it behaves as if all content in your site or application is already present, at your fingertips, ready for you to deliver. The API is based on simple PHP, so you don’t have another tag-scripting language to learn. While some background in PHP helps with more complex tasks, it is not required to develop your sites with ProcessWire.

ProcessWire is  easy and familiar. The admin interface is straightforward and no-nonsense. Based on a page-tree, the structure in the admin mirrors the structure on your front-end. For clients concerned about having to learn something new, ProcessWire is always a breath of fresh air, because they already know and understand it from the get-go. ProcessWire’s user interface is always focused on the task at hand. For instance, if you are editing a page, then the tools present on the screen are all specific to that purpose, with no distractions. In addition, ProcessWire also supports front-end editing, making it possible for clients to edit their content directly on the front-end of their site, where designated. ProcessWire is a system that web developers always feel good about handing the keys over to the client precisely because it’s so easy for them to use. Once a client uses ProcessWire, they don’t want to use anything else.

Familiar to developers

ProcessWire works the way you do, seamlessly integrating into your existing development tools and processes. There’s no new template system to learn either, it’s pure API goodness. Your design and development process won’t be interrupted by ProcessWire because it’s built to adapt to your way of doing things, not the other way around. Whatever your development tools are, you’ll find them at home with ProcessWire.

No maintenance:

One of the problems with many CMS platforms is that they are full of holes and needing constant updates in order to work around various security issues. This is not the case with ProcessWire. Unlike other platforms, you can launch a ProcessWire site and then leave it for years without maintenance or updates (should that be the need). It’s that reliable and secure, and has been since the beginning. When you update ProcessWire, it’s because you want to take advantage of some new feature, not because you are trying to avoid getting hacked.

Easy to upgrade

It’s infrequently necessary to upgrade your version of ProcessWire, often you will want to in order to take advantage of new features. It’s incredibly simple to upgrade the ProcessWire core. Simply replace the /wire/ directory of your existing installation with the /wire/ directory from the new installation. 99% of the time, that’s all there is to it!.

Reliable

An emphasis on security

Security has always been the #1 priority with ProcessWire, and it shows. There have been no significant security incidents or outages related to ProcessWire’s core in its nearly 15-year history. It’s rock solid and we think you’ll find it one of the most secure open source CMSs on the planet. Since the beginning, every bit of code added to the ProcessWire core goes through a security review by the core developer. The only front-end input to the CMS is the URL, which places a built-in hard limit on attack vectors. Any other inputs are on-demand and at the discretion of the site developer, and ProcessWire comes with a comprehensive suite of input sanitization tools. When it comes to authentication in the admin, ProcessWire comes built-in with configurable password requirements and 2-factor authentication can be optionally enabled for any users. ProcessWire comes with a full role-based access control system (RBAC) supporting strong, highly configurable and granular access control where any access control scenario is possible.

Proven stability

ProcessWire and its predecessor (Dictator CMS) have been powering websites since 2003 (ProcessWire since 2006). The system has been in constant development and continuous improvement for more than 15 years, and this is our lifetime work, we’re here to stay. There have been no major incidents or outages related to ProcessWire and it has become established as one of the most stable and secure platforms that you can choose for powering website and applications. During this time, ProcessWire has always remained consistent and true to the original concept and API, always staying up-to-date while ensuring timeless familiarity and reliability to web developers and clients alike.

The best community and support

The community is the best part of ProcessWire. You can always count on the enthusiasm and friendliness in the ProcessWire forums, where our support community is located. We are passionate about developing websites and applications with ProcessWire, and this comes through in the way we communicate and help. In the ProcessWire forums, you’ll find a diverse group of the most experienced and skilled web developers and designers in the world. If you are interested in web development with ProcessWire, this is the place to be. Have a question about how to do anything in ProcessWire? Post a question anytime and we’re happy to help.

Fast

Optimized for output performance and speed

There is no bloat in ProcessWire. We know how important it is for websites to respond quickly, so ProcessWire has always emphasized optimization for performance and speed. ProcessWire is also incredibly powerful, which means some might also use it for heavy lifting tasks or managing delivery of content to huge amounts of traffic. ProcessWire comes with built-in caching features that can handle instant cached delivery of the entire request, or just individual pieces of it.

Optional static cache, CDN and asset minification

For even larger scale needs, an optional commercial module called ProCache enables your site to be delivered from static HTML files, without any overhead of PHP or MySQL. ProCache also enables you to merge, compile and minify assets, and optimize their delivery to a content delivery network (CDN), such as AWS CloudFront. ProCache is a 1st party module developed by the author of ProcessWire to support the development of the ProcessWire core.

Ideal for SEO and accessibility

ProcessWire is a dream to work with for search engine optimization (SEO). Because it gives you full control and doesn’t dictate anything about the output, that means that markup can be perfectly optimized for search accessibility rather than some theming system. It allows for a perfect implementation of content output for the title tag, meta description, semantic headlines and markup, to meta data such as schema.org and opengraph, etc., to simple implementation of link “canonical”, “hreflang” (for multi-language) and “next/prev” (for pagination) tags. Basically, its ideal for anything you can dream of to optimize your on-site search accessibility and SEO. In addition to the quality of content and markup, a big factor is also the speed at which it can be delivered. ProcessWire really shines here too. It is optimized for performance, delivers with low time-to-first-byte times and also comes with a variety of optional caching and performance options, both in the core and in modules.

Flexible

Pages that can do more

While a Page in ProcessWire is most commonly representative of a page on your site, they may also be used as data containers for anything else (similar to a node in Drupal, but better). Whether used for output or not, a page’s path (or URL) always relates directly to its placement in the structure, keeping your site organized and accessible, inside and out. Each page gets its data structure (fields) from its template.

Templates without limitations

Templates are PHP files like any other, and you may use them as you wish. Whether you use them as HTML documents, RSS feeds, RESTful web services, or as controllers to call upon something else, it’s up to you. There is no limit to the number of templates you can use, and you may assign them to pages as you see fit. Each template is assigned one or more fields that represent the data structure applied to its pages

Relational and flexible page relationships

Any given pages may cross reference each other in a one-to-one or one-to-many relationship. This gives ProcessWire the ability to function like a relational database on top of a CMS. The client (or developer of the web site), rather than the software, defines what these relationships are. This opens up an incredible amount of flexibility.

Front-end editing support

The most content be edited independent of output context as a best practice to ensure its portability and longevity. This means editing content in an environment independent of eventual placement or design (a dedicated admin/editor environment). However, there are also times when editing on the front-end also adds a lot of convenience, works better with a client’s workflow, or just plain helps to sell the project. After all, being able to edit content on the front-end is visually compelling and sells itself. For some, the raw simplicity of it might also encourage greater participation in managing content. So you’ll be glad to know that ProcessWire comes with native, comprehensive and truly impressive front-end editing features. Because ProcessWire isn’t limited to front-end editing, you can also decide when and where you want to enable front-end editing at a granular level, giving you the best of both worlds

Comprehensive

Everything you want

While there is an awesome ecosystem of optional add-on modules available for ProcessWire, the core product already comes with everything you need to build anything you can dream of. And ProcessWire does this without the bloat of other systems. It has everything you could need and nothing that you won’t ever want. It comes native with custom repeatable fields, the ability to resize/rotate/crop images, and everything needed to create a full multi-language site, just as examples. While ProcessWire’s core is comprehensive and complete, both free and commercially supported add-on modules are always available too, and they can be excellent time saving optimizations for specific needs.

Quality rich text editing

ProcessWire comes with a quality rich text editing tool that makes editing content easy and familiar for editors. ProcessWire’s implementation is particularly comprehensive and configurable to cover just about any custom editing need. It also comes with custom built dialogs for managing links and inserting images. ProcessWire supports both inline and normal rich text editing modes and loads the editors on-demand, enabling you to have potentially hundreds of rich text edited fields on a single page, should the need call for it.

Photo resize, crop, rotate, focus and more

ProcessWire comes with image fields that can be fully edited in the admin environment (and the API too of course). You can resize, crop, rotate, and flip any image, convert it to black and white or sepia, or generate any number of variations. In addition, you can define a custom focus area for any image, ensuring that any auto-generated crops never lose the intended subject of a photo, regardless of crop dimension/proportion. ProcessWire comes with support for both ImageMagick and GD libraries, and even supports animated GIFs.

Drag-and-drop image upload, placement and client-side resize

Uploading files or images in ProcessWire is exceptionally simple. You can drag-and-drop files from your computer into any file/image field in ProcessWire’s page editor and they will immediately upload into the page. If the administrator has specified a maximum allowed dimension for images, they will automatically resize at the client-side before uploading. Meaning, that 20-megapixel photo off your client’s DSLR camera will automatically resize to something more appropriate for a website before actually uploading. You can also drag-and-drop images directly into rich text fields, and the photo will automatically place in the location you dragged it to in your text. From there, you can double-click the image to customize it further as needed (resize/crop). ProcessWire’s file and image upload and management tools are a delight for editors.

Built-in custom repeatable field types

ProcessWire comes built-in with the ability to create custom repeatable content types as fields This enables you to create a group of any custom fields, and then make them repeatable. This enables an editor to create and edit any quantity of of these items, all on a single page. Furthermore, the repeated types can be drag-and-drop sorted and even given hierarchy with depth. For even more possibilities, an optional repeatable matrix type is available in the ProFields package, enabling you to create different types of repeatable content types from within the same field .

Field and input dependencies

ProcessWire’s resistance and scalability with custom data fields, there may be times where you want the visibility or required state of a field to be dependent upon the state or value of another field. For example, you could have a multi-line text field called “Other details” that should appear only if the user selects an “Other” option in a select box. Or you could a field called “Price” that is only required if a field called “Inventory” contains a value greater than 0. These are examples of field dependencies or input dependencies. You’ll be glad to know ProcessWire comes built-in with full support for both “show-if” and “required-if” field/input dependencies, adding greater litheness, control and control to your content input process.

Major Features of ProcessWire

  • Simple, powerful, consistent, predictable, capable … and fun
    ProcessWire is designed to have an approachable simplicity that is retained regardless of scale. Simplicity often implies reduced capability, and this is not the case with ProcessWire. From the surface, there is very little complexity and the application requires no training. But open the hood, and you have a lot of horsepower at your disposal for just about any content need. The goal is jQuery or Google-like simplicity, for lack of a better term (a simple interface to powerful engineering). Regardless of scale, the inherent simplicity and joy in using the interface and CMS API remains consistent, predictable, and capable.
  • Highly capable on sites big and small
  • Easy-to-use, jQuery-style API 
  • Process Wire’s API takes it’s inspiration from jQuery, providing a simple and fun programming interface to working with your content. It’s all PHP, so you don’t have another tag-scripting language to learn. While some background in PHP helps with more complex tasks, it is not required to develop your sites with ProcessWire.
  • Ideal for designers/developers and their clients
    Your design and development process won’t be interrupted by ProcessWire – it’s built to adapt to your way of doing things, not the other way around. ProcessWire gives you the tools to get at your data, but you make the markup. You never have to design a site for ProcessWire, and the system won’t impose any limitations upon your site’s design or the designer. ProcessWire is a system that you can feel good about handing the keys over to the client because it’s easy for them to use and easy to support.
  • Easy and enjoyable to use
    ProcessWire’s user interface is always focused on the task at hand. If you are editing a page, then the tools present on the screen are all specific to that end. ProcessWire does not leave the user with the impression that they have to learn a new application. It’s something they already know.
  • Accommodates unique data needs easily
    All page fields in ProcessWire are custom fields. It’s easy to edit, add, sort or remove fields from pages (via templates) as you see fit. Each template is assigned to one or more pages, and each field is assigned to one or more templates. There are no limits to the quantity and use of pages, templates or fields. Fields can be as simple as containing raw text or numbers, or more complex like rich text editors, page-to-page relations and fields that hold files or images. Fields you create in ProcessWire may be used as search and/or sort keys when finding and loading pages.
  • Modular plugin architecture
    While many CMSs use a modular architecture, ProcessWire takes the approach further in that the CMS itself is a group of modules built on top of the ProcessWire framework. Modules are not an afterthought or an extra, they are the system. As such, the system is well thought out and designed to be as simple and easy as possible.
  • Structure that makes sense
    ProcessWire uses a hierarchal structure for pages, like a family tree or a file system. There is no limit to the depth in which this structure can be defined. It is comfortable scaling to large and complex data needs, and remains simple regardless of scale. ProcessWire makes it easy to traverse this structure from the admin interface, as well as from the CMS API.
  • Pages that can do more
    While a Page in ProcessWire is most commonly representative of a page on your site, they may also be used as data containers for anything else (similar to a node in Drupal). Whether used for output or not, a page’s path (or URL) always relates directly to it’s placement in the structure, keeping your site organized and accessible, inside and out. Each page gets it’s data structure (fields) from it’s template.
  • Templates without limitations
    Templates are PHP files like any other, and you may use them as you wish. Whether you use them as HTML documents, RSS feeds, RESTful web services, or as controllers to call upon something else is up to you. There is no limit to the number of templates you can use, and you may assign them to pages as you see fit. Each template is assigned one or more fields that represent the data structure applied to it’s pages.
  • Relational
    Any given pages may cross reference each other in a one-to-one or one-to-many relationship. This gives ProcessWire the ability to function like a relational database on top of a CMS. The client (or developer of the web site), rather than the software, defines what these relationships are.

 

Videos

 

How to use ProcessWire

ProcessWire Basic Guide – First Steps

ProcessWire on cloud

Related Posts