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.
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
ProcessWire'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.
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.