ProcessWire: An open source CMS with a powerful API

4 min read Original article ↗

A powerful
CMS you’ll love.

Free and open source since 2010

ProcessWire is a free content management system (CMS) and framework (CMF) built to save you time and work the way you do. With all custom fields, a secure foundation, proven scalability and performance. More →

  Download

Highly scalable on sites big and small

ProcessWire uses a hierarchal tree structure for pages. 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.

Total control over the design

All fields in ProcessWire are custom fields that you easily define and edit in the admin. You can create as many of them as you want, and of any type. You can even bundle them in repeatable groups called Repeater fields. You control all of the markup, not ProcessWire.

The easiest editing experience around

ProcessWire is a no-nonsense content editing tool that is built by the same people that use it every day. With an ideal balance of power with ease-of-use, ProcessWire is about getting things done, easily and rapidly.

Multi-language ready

Designed for multi-language from the core with best-in-class multi-language capabilities, multi-language fields and translation tools.

Learn more →

Peace of mind

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.

<!-- Output page title -->
<h1><?= $page->title ?></h1>

<!-- Output page body rich text field -->
<div><?= $page->body ?></div>

<!-- Output image -->
<img src="<?= $page->img->url ?>">
// Render primary navigation
foreach($pages->get("/")->children as $p) {
  echo "<a href='$p->url'>$p->title</a> ";
}

// Render titles of child pages
echo $page->children->each("<li>{title}");
<!-- Render simple breadcrumb nav -->
<ul class="breadcrumbs">
  <?= $page->parents->each('<li><a href="{url}">{title}</a>') ?>
</ul>
// Find and list tall buildings
$buildings = $pages->get("/buildings/");
$skyscrapers = $buildings->find("height>1000");
echo $skyscrapers->each("<li>{height}: {title}");

    The best CMS API in the business

    Every bit of content in your site is never more than 1-line of code away. It doesn’t matter how large or small your site is, with ProcessWire all your content is connected, making it fast and easy to find, and incredibly simple to access, output and manipulate.

    Learn more →

    »The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.«

    Jonathan Lahijani

    »We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end.«

    Castus, UK web design agency

    »I am currently managing a ProcessWire site with 2 million+ pages. It’s admirably fast, and much, much faster than any other CMS we tested.«

    Nickie, Web developer

    »Building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.«

    Thomas Aull, Web developer

      Features

      Loaded with all the features most sites ever need

      •  Custom Fieldtypes

        All fields in ProcessWire are custom fields that you can easily define and edit.

      •  Lovely API

        ProcessWire comes with the best CMS API in the business. Not only is it easy to use, but it's a joy to develop with.

      •  Modular

        ProcessWire can be seen as a system for executing plugin modules, and nearly everything that ProcessWire does comes from one…

      •  Multi-language

        ProcessWire is multi-language from the core and has built-in multi-language fields, URLs, and more.

      •  Secure

        For more than 15 years, security has always been a central focus of ProcessWire, and it has the track record to prove it.

      •  Easy access control

        ProcessWire uses a role-based access control system that supports any access control scenario you can think of.

      •  Front-end editing

        Don't want to edit from the admin? ProcessWire also enables double clicking any text/image on your website to edit it…

      •  Easy upgrades

        Every version of ProcessWire has been rock solid and stable, but you'll love how easy it is to upgrade.

      •  Hooks everywhere

        With its unique, powerful and easy-to-use hooks system, ProcessWire gives you the power and capability to accomplish any need…

      Modules

      Explore the ever-expanding ProcessWire Ecosystem

      • Form Builder PRO

        Building front-end forms on your website has never been so simple. ProcessWire Form Builder lets you create, edit and publish forms with no development necessary.

      • Tracy Debugger

        The ultimate debugging and development tool for ProcessWire (https://adrianbj.github.io/TracyDebugger)

      • ProCache PRO

        ProCache provides the ultimate performance for your website by completely bypassing PHP and MySQL and enabling your web server to deliver pages of your ProcessWire site as if they were static HTML…

      • Changelog

        This module tracks changes, additions, removals etc. of public (as in "not under admin") pages of your site.

      • PAGEGRID Page Builder PAID

        Build visually with PAGEGRID’s intuitive editor, seamlessly integrated with ProcessWire’s API, fields, and permissions for full power and flexibility.

      Show all modules

      ProcessWire Weekly