I've been looking for something to build websites for small and medium businesses. Something that is flexible, gives a great developer experience and can be easy for clients to use.
OctoberCMS started in 2014 and was built with Laravel. It is intended to be easy to use but also friendly for developers. It has around 10 and half thousand stars on Github which show it is well liked by the developer community.
The Client User Experience
The backend interface is quite simple, clean and nicely laid out. Anybody who has used WordPress, Drupal or Joomla will not have trouble adapting.
The main backend menu icons are spread across the top. If sub menu items are needed, the they are on the left hand side. This makes it logical and intuitive.
It comes with a WYSIWYG editor. Which makes it easy to edit content. The default editor is Fraola. It is a nice, we regarded editor. This makes it easy for clients to update their own sites.
October is fast. Fast sites make search engines happy. I did a Google Lighthouse test on my site and it came up with a perfect 100% score. This was on a local development server so it is not representative of real world conditions. Running the same test on the live server wasn't 100%, but still a respectable score.
SEO is quite good with October. There are a couple of nice plugins that handle things like meta tags, canonical links, xml sitemaps and open graph. It doesn't have the sophistication of Yoast for WordPress but it still does a very good job.
October can also be extended for commerce. There are a number of free and paid plugins that can be used to build a shop. Most of the plugins seem to be quite fast which will give users a good experience. Good user experience is better for SEO and sales.
The Developer Experience
October is built on top a Laravel. It is relatively new. It has minimal functionality to start with. This also means it doesn't come with a bunch of stuff you don't need. You add to it what need. This makes it easy to build fast websites.
It has a smooth installation process. There is a nice graphical install script or you can use commands in the terminal. You can use Laravel artisan commands plus a few specific to October tor un updates/ It also uses the Composer PHP package manager.
Out of the box, it handles flat files only. You need to install and attach to a database to get access to a backend.
It uses Twig templating engine which helps to organise templates. You can set up layouts and extend them for pages. It makes maintaining template code easy.
The backend editor has some Emmet functionality. It won't match an editor like VS Code or an IDE like PHPstorm but still does a good job. It's a nice feature to be able to edit files online.
The documentation is very good which helps developers find answers to questions. There is a user forum. This could be used better. There are around 3,300 on Stack Overflow.
Plugins for October are not part of the core. This makes it easier to build custom plugins. It also means you can add or remove plugins without effecting the core.
October comes with its an AJAX framework. This gives developers a head start in making interactive sites. It is based on jQuery which won't be to everybody's taste.
October has around 900 plugins including paid ones. That is considerably fewer than WordPress or Drupal. This is probably a case of less is more.
My personal favourite is RainLab's builder plugin which allows you to easily scaffold your own. Great for creating custom content types. Most projects also include RainLab's Pages & Blog plugins plus Arcane SEO. That set up allows me to build lean and fast websites for clients without the overhang you get from WordPress and Drupal.
Drupal and WordPress themes are like a skin for content. Change the theme, you keep to content with a different look. Themes work a little differently in OctoberCMS. They also include content in flat files. This means you can't change themes without porting over a lot of content.
Theme development in October is relatively straight forward. It is based on the Twig templating engine. You start with a layout template and add partials for repeated content blocks.
- The pages section allows to create content for each of the website’s URLs.
- The partials section is reserved for building reusable chunks of HTML markup that can be included anywhere throughout the site:
- In the layouts section, users can create a page’s scaffold.
- You can also use the components section to enrich your website’s pages with features available through plugins. These are blocks of ready code that add new functionality and can be placed on any page or layout.
October is built on Laravel so it inherits many of Laravel's features. The default backend url for October is /backend/ but this can be easily changed in the settings to something more difficult to guess. That can help mitigate brute force attacks. Another feature is it separates admin users from site users. This means accounts that sign up will never be able to gain backend admin privileges.
It can be run as flat file CMS without a database. This avoids database related vulnerabilities such as SQL injection.
A lean backend panel making it easy for clients to use.
Built on Laravel means a developer can add features with a little knowledge of PHP
Fast. Pages load a lot faster than Drupal or WordPress.
Flat files. Users can use the site without a database. Content is stored and edited on the server.
October can easily be run in a shared hosting environment which makes it suitable for many small businesses.
- Small community. October doesn't have the huge developer communities of WordPress and Drupal. This means it can be harder to find the answer to obscure problems.
OctoberCMS is not perfect. Perfection doesn't exist. It is a solid platform for a small business site. It is flexible and developer friendly. It has a refreshing back to basics approach. The backend is nicely designed and easy to use.
It doesn't have the bells and whistles of WordPress or Drupal. This makes it fast. Sometimes you need something that does one job and does it well. OctoberCMS fits that bill.