Jump to content

Other ProcessWire-like CMSs


Jonathan Lahijani
 Share

Recommended Posts

I wanted to start a conversation about other systems out there that are "ProcessWire-like", meaning they also go all in on everything being a custom field, similar database architecture and other things that make ProcessWire seem unique.

What makes ProcessWire unique to you that you just haven't seen elsewhere and how deep does ProcessWire go with certain decisions or features that other systems don't from your experience?

One very recent system in the JS world that's similar (at least on the surface, I've never worked with it) is Payload CMS: https://payloadcms.com/

  • Like 2
Link to comment
Share on other sites

Hi,

Contao (fka TypoLight) is somewhat close to ProcessWire from the Field, Template, Page point of view. However it lacks (at least when I last revisited it) from a powerful ProcessWire like API. This and the all objects are „pages“ approach are unique to PW from my point of view. Only thing I somewhat miss in PW is a global media/assets manager, but there may be a module someday. The easy to use PW-API makes the main difference for me and is the reason I ended up using PW for my latest projects. 

  • Like 1
Link to comment
Share on other sites

I have already mentioned it a few times, but I can recommend Kirby CMS as alternative to ProcessWire. It is very similar to ProcessWire in the structure and API, but needs no database because it is file based. Also they have a nice website, documentation and marketing including detailed changelogs. It is not as feature rich as ProcessWire and not free, you have to pay a license for commercial use, but the marketing and presentation is better in my opinion.

  • Like 3
Link to comment
Share on other sites

On 4/4/2024 at 9:54 AM, Jonathan Lahijani said:

What makes ProcessWire unique to you that you just haven't seen elsewhere and how deep does ProcessWire go with certain decisions or features that other systems don't from your experience?

I haven't really digged into the admin customizations of PW-like CMSs I've used like Statmic/CraftCMS but the way you can modify view/behaviour of Inputfield and it's derived classes in ProcessWire is really nice imho. 

  • Like 2
Link to comment
Share on other sites

On 4/4/2024 at 5:54 PM, Jonathan Lahijani said:

What makes ProcessWire unique to you that you just haven't seen elsewhere and how deep does ProcessWire go with certain decisions or features that other systems don't from your experience?

  1. Customized templates and fields
    Each and every content type only has the fields it really needs.
    Books, companies, recipes - it doesn't matter what kind of data my clients or I have to deal with. The templates and fields will reflect that. Therefore clients don't even have to learn anything in regards to creating or editing data. Super easy.
     
  2. It's typesafe (by my definition)
    We can discuss the meaning of 'typesafe' here but... I think ProcessWire is somewhat typesafe because I define each field, template, relationship, and almost everything else. I know where to expect what kind of data and know what data is allowed in which field. No guessing, no errors. (Sure this depends on your setup and your will to invest some time.)
     
  3. Works perfectly fine for non-developers
    I won't call myself a coder or programmer - I just tinker around with code and have fun. When I started using ProcessWire, getting around was super easy, and learning the fundamentals took only a day or two. From there on, it was easy-going. It's impressive what you can achieve with only some if/foreach/echo in PHP/ProcessWire. I said it a few years back and still stand behind it: ProcessWire seems to be the easiest way to learn and work with PHP.
     
  4. Low maintenance
    There are ProcessWire projects of mine that haven't been updated in the last 5+ years and still work without any PHP or security issues. The moment a project is finished and works without flaws it will do so for a very long time. There is no real need to update a project.
     
  5. Small footprint, high performance
    A ProcessWire website doesn't need that much of a big hosting package. The moment you start using Core cache functionalities or even ProCache most websites are fine and ready for an average amount of traffic. Maybe not ready for a slashdot/reddit/ProductHunt-peak but that's a totally different story. I can get so much out of ProcessWire compared to WordPress (and others I used/tested in the past).
     
  6. ZIP downloads and no real need for a package manager
    What I really love and enjoy is that you can get everything as a ZIP file, unpack those, move them around and do whatever you want or need with them. Not needing NPM or composer to get started - like in the good old days - is just perfect. In the last 1-2 years I did a lot with NPM due to 11ty and Astro, yet an old-school ZIP file has its very own charme. For comparison: Installing CraftCMS feels good and really nice, yet I absolute don't know what's happening, what is needed, and so on. It's like a blackbox. It works but I don't know why. I hate that.

 

Edited by wbmnfktr
2024-04-08: Added point 6.
  • Like 8
Link to comment
Share on other sites

Interesting topic and also interesting to compare the various CMSs at https://openalternative.co/categories/cms. Unfortunately it is not possible at-a-glance to see what is a pure CMS and what is more of a framework. The initial attraction of ProcessWire to me was that it combines the ease of use / UI of a CMS with the power and flexibility of a framework. This means that you can build a fully functional custom app but still enable non-technical editors to access the content they need. 
Which of the “ProcessWire-like” CMSs do that?

  • Like 1
Link to comment
Share on other sites

9 hours ago, wbmnfktr said:

Silverstripe

I developed my first websites using SilverStripe. I did like it, but if a site was complex, upgrading to a new main version was not straightforward at all, and one had to thoroughly test everything to make sure all was good. I am glad I found ProcessWire afterward.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Umbraco: https://our.umbraco.com/ 

I've actually used it in the past for someone who was on Microsoft stack. It's C# ASP.Net based so different tech stack to ProcessWire, but I found it not too different in many respects, and it didn't take me long to get my head around how to make it work.

Like ProcessWire it doesn't make any assumptions about how you want to structure your data or format output, and has a good permissions system built in. It also has pretty good documentation.

Where I find ProcessWire easier, is with regard to updates and installing new modules. Also Umbraco Forms is way more expensive than FormBuilder.

Umbraco does have an integrated editor for modifying code for templates and partials inline, so although an editor or IDE is preferable, you don't have to have one to set up an Umbraco site.

I don't know how the two compare performance wise. ASP.Net Core is meant to be pretty fast.

I actually do quite a bit of ASP.Net work, especially now it's cross platform and I can host on Linux, although mostly I don't use a CMS at all, as it's pretty quick to build CRUD database access and authentication with built-in libraries, and with HTMX I can easily build a fast admin UI without having to mess around with frontend frameworks.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Something I was thinking about today was what are the pros and cons of ProcessWire being "dependency-free" in the sense that it doesn't rely on a separate web application framework?

For example, Craft CMS is built upon Yii.  Drupal, if I understand the history correctly, switched from their home-grown approach from v7 to Symfony in v8.  WordPress is home-grown.

ProcessWire is home-grown as well, right?  I would imagine the biggest pro is that ProcessWire doesn't have to "answer" to anyone, follow a separate web application framework's opinions and update schedule and things like that.  Would ProcessWire be what it is today if it had such a large separate dependency?

Of course, pulling off a home-grown way of doing things is a monumental task that requires great skill, but Ryan seems to have pulled it off (which is probably why we're all here).  I've come to appreciate this decision but wanted to get the opinions of others here as well.

  • Like 4
Link to comment
Share on other sites

18 hours ago, Jonathan Lahijani said:

I've come to appreciate this decision but wanted to get the opinions of others here as well.

Nowadays, I might not be a huge fan of how ProcessWire evolved outside the "composer ecosystem", I also feel it might drive people away too. To put an example, popular http clients. Those seem to be very prevalent in its use along a plethora of projects (Guzzle/Symfony HTTP) and their "ergonomy" sometimes is almost like a standard ( i mean some part of it is with PSR haha), I feel PHP devs in general might get turned off very much a project with their own implementation of HTTP client, where they have to figure out how to use it or implement their own modules outside of the PSR-18 scope. Talking about PSR compliance, that could be another topic in itself. 

Personally, none of this matters to me much. I was kind of "raised by ProcessWire" and it always felt very empowering to be able to read the ProcessWire source code, this is the main thing I've always personally liked about ProcessWire's cohesive (?) and self contained core . Maybe a more experience dev would call me naive? Maybe the lack of experience working on larger teams/codebases, biases my opinion to not care (THAT much) about being more "embedded into the php ecosystem". All these issues probably fall beyond my expertise , I just have a lot of fun building things with ProcessWire 🙂, need no more than that.

Edit: Also let's put in perspective that ProcessWire is older than composer.

Would love to hear the opinions of others as well!

 

  • Like 7
Link to comment
Share on other sites

Whether or not the system is built on top of a framework is, in my opinion, largely irrelevant. Or perhaps it would be better to say that "it is impossible to guess if and how it would've mattered in the big picture".

Call me cynical, but dependencies are never free. Each adds weight to the codebase, requires upkeep and maintenance (sometimes including major updates or rewrites), and increases potential attack surface. Also many dependencies — and especially frameworks — bring in their own way of doing things, and since ProcessWire's architecture (hooks, data structure, etc.) is really a major selling point for the system, using a framework could've had a massive impact on that.

Part of the reason why ProcessWire is such a brilliant system could very well be due to it not being powered by a framework itself. This means that every decision could be made without considering how that would fit the framework.

What is also interesting, in my openiin, is the framework landscape itself. Back when ProcessWire 2.0 was launched, Laravel — now considered the latest state of the art PHP framework — wasn't even around yet. Zend Framework was probably the biggest name back then, or at least the one that most serious developers considered "most likely to thrive and stay around"... yet it was discontinued. Had ProcessWire gone with the "safe bet", that would've meant a big rewrite later, or alternatively staying on a platform that is merely a shadow of its former glory.

Long story short, I think Ryan made a good choice 🙂

Don't get me wrong, though: I'm a big fan of the Composer ecosystem — almost all of my modules are available as Composer dependencies, etc. And, in my opinion, ProcessWire actually integrates quite nicely with external dependencies. Since HTTP clients were mentioned, I'll use that as an example as well: in some recent projects I've used Guzzle together with ProcessWire. I may not be able to (easily) swap the client used by the core itself, but I've yet to come across such a need anyway.

Of course this comes with a cost: I recently had to migrate one project to a new server simply because a third party dependency decided to drop PHP 7.4 support. In a minor version, because why the heck not. Not that it's a bad thing necessarily to bump up the PHP version, but having to do that sort of thing in a hurry just because I prefer to use a recent and patched version of a dependency is just bollocks.

This is starting to get a bit rambly, so I'll just leave it here.

  • Like 9
  • Thanks 1
Link to comment
Share on other sites

On 4/6/2024 at 4:32 PM, wbmnfktr said:

ZIP downloads and no real need for a package manager
What I really love and enjoy is that you can get everything as a ZIP file, unpack those, move them around and do whatever you want or need with them. Not needing NPM or composer to get started - like in the good old days - is just perfect. In the last 1-2 years I did a lot with NPM due to 11ty and Astro, yet an old-school ZIP file has its very own charme. For comparison: Installing CraftCMS feels good and really nice, yet I absolute don't know what's happening, what is needed, and so on. It's like a blackbox. It works but I don't know why. I hate that.

 

18 hours ago, elabx said:

Nowadays, I might not be a huge fan of how ProcessWire evolved outside the "composer ecosystem", I also feel it might drive people away too.

Honestly, the fact that PW does not require composer is a selling point for me. I develop on multiple hardware, depending on where I'm at (home on my gaming machine, at work on a business class PC, or on my 2011-era Macbook Air) - all running a Docker-based solution with shared file access to a Dropbox instance (in other words: very slow access to host OS files in the virtualized host OS). It took well over an hour for my Macbook Air to finish its composer install of Statamic. When the non-composer version of it was available, it took a little over a minute to unpack everything.

There are absolutely massive benefits to standing on the work of others who have come before, but the massive inclusion of unnecessary code also exists (and @wbmnfktr already mentioned the additional attack vectors and need to keep things up-to-date, and how things can break from dependencies). I'm always concerned with one small included library in a composer setup getting a repository pull request from a bad actor that gets accepted...and then any/all platforms that use that little library (and keep up-to-date) are now essentially, unknowingly, vulnerable.

I'm glad that ProcessWire offers both options. Having a composer option is awesome. When solutions don't offer a simple alternative to composer, it just sucks (for me).

I wish I had more to provide in terms of similar CMSs to compare to ProcessWire, but the only ones I'm aware of, and I don't even entirely consider them all too similar, have already been mentioned. 🙂 Some features of Grav CMS, maybe, are comparable in terms of its intention for customization.

  • Like 8
Link to comment
Share on other sites

Posted (edited)
16 hours ago, BrendonKoz said:

Honestly, the fact that PW does not require composer is a selling point for me.

For me too. In the past I had to manage a Contao website and Contao is since version 4 build on Symfony. So you have to use Composer for almost everything, as far as I know. They have a tool Contao-Manager which provides a GUI instead of using the CLI, but its better if you are very experienced with Composer.

This website in particular had many extensions and dependencies, some of them were discontinued, which could easily break the complete Composer setup and with that the whole website.
I had spend hours and days just to init, rebuild, upgrade the composer dependencies, just to get the website running on my local environment.
I am glad that ProcessWire websites cannot break this easily and I don't have to be a Symfony/Composer master just to install modules. 😀

Of course as you can tell I am biased and maybe not experienced enough with Contao and Composer.
To be fair, you can in theory install extensions in Contao without Composer.
Also this just could have been a problem of this particular website.

Edited by AndZyk
  • Like 4
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...