Ranked in these QuestionsQuestion Ranking
Pro Powerful and easy API
The API is jQuery like;
// find some pages:
$pages->find('template=skyscraper, architect=john, sort=title')->limit(4);
$pages->get('title=Hello You')->set('title', 'HelloWorld')->save();
$pages->get('title=Old')->trash(); // trash page
// check user…
echo $user->name; // guest
Pro Custom Fields on steroids
ProcessWire is heavily based on custom fields. All objects (Pages) inside ProcessWire are based on extensible templates comprised of fields that can be easily defined. Many useful fields come prebuilt and they can be extended with modules.
Either using the modules already available or writing your own module, using the jQuery-like API.
Pro Template Engine Agnostic
By default, ProcessWire comes with 0 assumption on how you handle the output. You have 100% freedom on how you want to develop the frontend. Want to plain output stuff, go ahead. Want to use any number of Templating Engine, do it. Just use as Headless-CMS, okay!
Pro Easy to learn
Processwire is extremely easy to learn. Consider this:
echo $pages->get('title=Hello World')->title; // "Hello World"
echo $pages->get('title=Hello World')->parent->title; // "Home"
echo $pages->find('Template=Category')->count; // 126
echo $pages->find('Template=Category')->each('title'); // ['Audio', 'Video' …]
Selectors are so powerful but yet so easy.
Check out the cheatsheet.
Pro Nice and helpful growing community
You will always find one to respond politely in the forums. Sometimes even the creator Ryan Cramer himself.
Pro Powerful selector engine
The way you fetch, access and manipulate objects (Pages) in ProcessWire is extremely powerful and easy. You can receive any page and its custom fields, filter, travers, add…
Pro Open source
Source available on GitHub.