In the planning stages for our recent website redevelopment we were looking around for a new CMS. We had used TextPattern on our old site and while I suppose it did everything we needed, it was a bit behind the times compared to some of the really outstanding new CMS's around now.

I thought using a CMS based on the Laravel framework would be ideal, since I am quite familiar with the framework and extending a CMS based on it should be easier as a result. After some research I decided October CMS was the most promising Laravel based CMS out there. I'd used it before a little and thought it looked like it had all the features I needed. Ultimately, I decided it has a lot of promise but it's not quite ready for prime time yet. In the end we decided to use Craft CMS to power our new site.

Application boilerplate, not really a CMS

One of the first things you notice when you start messing around with October CMS is that it isn't so much a dedicated CMS, but more of a kind of application starting point. Out of the box it has only very basic CMS functionality, you need to install at least 4 or 5 plugins to really make it usable as a proper CMS. Even then, you'll really want to write some of your own plugins to get the custom functionality you'll no doubt need in your project.


Like all good things in life, October can be understood at a glance. The principles it implements are natural and existed in programming for a long time. We've just collected and brought them into the realm of web development.

- October CMS (https://octobercms.com/features)


October CMS is designed this way intentionally, you are supposed to extend it. The philosophy is about keeping it simple and allowing the developer to extend the platform in any way they wish. This is a great philosophy and part of what drew me to October.

Plenty of strengths

Just a quick glance at the October CMS 'Features' page tells you everything you need to know about its strengths. It has a clever and intuitive architecture. It has a great ajax framework that really is quite powerful and very easy to implement, it is designed to be easily extendable and of course, it is based on Laravel and so has all the amazing power that is inherent in the Laravel framework.


October CMS has plenty of great features, but as always, the devil is in the detail. Extending the platform is not always as easy as you'd like, or even possible in some cases.


Oh, I see. This simple thing is unpossible right now...

After a few days / weeks of happily coding away on our site redevelopment I began to notice a recurring theme, implementing a relatively simple feature in a plugin was either more difficult than I thought was reasonable or was entirely impossible because of the restrictions of the platform. This was actually a deal breaker for me. There was some functionality that I absolutely needed for my new site, which was not possible in October CMS.

It got to the point where I needed to implement a 'repeater' type widget (basically a 'matrix' field in Craft CMS speak). A repeater widget allows you to create multiple blocks of content within a single field. For example, say you wanted to add a list of multiple features to a project page and each feature has an icon, a title, a link, and a description. One way to do this is to create a repeater widget and then add as many features as you need to the page, each with its own information. At least in theory you could to this.

Adding a repeater type widget to the first party 'Pages' plugin turns out to be impossible at this stage - it just can not be done. In fact, no widget which uses the ajax framework can be used in a plugin to extend the Pages plugin (or possibly any other plugin). So that essentially renders the repeater widget almost useless I'd say.

Help, I need somebody!

I spent several days searching for help on this and other issues and while the documentation is thorough, it's poorly organised and often closely related ideas and concepts are covered in entirely separate areas of the documentation, or sometimes are not covered at all.

There is an IRC chat room, which is great. Its forum is pretty active and is a good place to learn things that are not mentioned in the docs. The actual developers are active in the chat room and forum: speaking to the devs was how I learned the functionality I needed was impossible to implement.


7 out of 10

RATING

Overall October CMS Rating

I am still excited about October CMS, I love the ideas behind it, I love its focus on providing basic functionality and allowing the developer freedom to extend it and I love that it's based on Laravel.

However, at this point I just don't think I could confidently use it in anything but the most simple of projects because of these random and project-stopping short-comings I've mentioned.

No doubt most of these issues will be ironed out over the next few months and when they are I'll be an eager adopter of this promising, but (currently) flawed platform.

Interested in October CMS?

If you have any interest in a Laravel based CMS I'd highly recommend checking it out. Although I don't think it's ready for large projects just yet, I think familiarizing yourself with the platform is a good idea - I'm pretty confident it'll become an important player in the PHP content management system landscape within the next year or so.

<i class="fa fa-external-link"></i> Visit October website

Questions and comments...


Some other recent blog posts...


Some of my favourite PHP resources

PHP has come along way in the last few years. Gone are the days when it was all about spaghetti code and sloppy amateurs. Here are some of my favourite resources for staying on top of all the new features in PHP.

Deploying Craft CMS using git in a shared hosting environment

Using git to develop and deploy projects has a lot of advantages: version control, easier collaboration, secure offsite-backups when combined with a service like Bitbucket - just to name a few. However, setting up a git repo on a shared hosting environment can be a bit confusing, here's how I deploy my Craft CMS projects to my hosting servers using git.


Return to blog index