Small jc

James Crooke

Lead Developer

CMS Review - Concrete5 in a Nutshell

Due to the huge amount of choice, picking a Content Management System (CMS) can sometimes be overwhelming. With varying features, prices and plug-ins, there are a lot of things to consider before deciding on which CMS to use.

Recently, we have been using a powerful CMS called concrete5 to build PHP websites for our clients. Most CMS’ offer the standard editable content platform, however, concrete5 offers much more than that. It acts as a total framework, meaning you can use it to build far more than just editable content. As a Senior Developer at Rawnet, I have had a lot of experience with many different CMS’ over the years and concrete5 is one of my favourites… But what makes it so special?

What is concrete5?

Originally starting out as a successful commercial product, the ‘Concrete’ CMS was actually conceived way back in 2003. Since then Concrete has gone through multiple major versions, and in 2008 concrete5 was released under the open-source ‘MIT’ license.

The previous commercial nature gives concrete5 an advantage over other open-source CMS projects such as Wordpress and Drupal. So, what does concrete5 actually offer?

CMS Features

  • Live drag and drop editing - it’s a WYSIWYG on steroids.

  • Preview changes before being published or have them be approved by other users.

  • Version tracking - compare differences between versions and rollback changes if needed.

  • File manager with bulk upload and image manipulation with sophisticated tagging and search facility.

  • Detailed permissions - create editor groups, audit trails and user workflows.

  • Flexible meta data & Vanity URLs for Search Engine Optimisation (SEO).

  • Content scheduling - write something on Wednesday and have it go live on Friday.

Technical Features (For the Devs)

  • Integration with the popular, powerful ADODB or Doctrine DBAL Database Framework.

  • Data caching at the query level and a Zend_Cache library wrapper.

  • Built-in user authentication (including OpenID) and powerful permissions framework.

  • Extensible metadata about users, pages and files. Define attributes for pages and users and reference them programmatically.

  • A powerful, consistent API for common tasks.

  • Helpers for assisting with common web-related tass and libraries for core application functionality.

  • Standards and Usability

    Concrete5 adopts the PHP Framework Interoperability Group’s PSR-2 coding standard - although a bit of a mouthful to say, this means that standardised consistency is kept throughout the codebase, making it far easier for developers to work with, and integrate with other team members. Personally, I feel one of concrete5’s main appeals is its intuitive and well written code, making it super easy to pick up and use. It contains many elegant solutions to real problems without adding a layer of confusion.

    Being able to edit content with ease is probably the most important aspect of any modern CMS. With this being said, concrete5 has an editing interface that is second to none, with a live editor, drag & drop functionality and one-click image editing. Users are presented with a dashboard from which they can perform operations - creating and editing content, administering files, viewing reports and managing users.

    With next to no training, editing a page is extremely simple and once templates have been set up, a user can simply log in, create & edit a page and click to modify any editable elements within the page itself. Changes are then instantly viewable before a user opts to publish them to the live site, or they can be pushed to another user group with publishing rights to be approved first.

    Community and Documentation

    Open source projects normally have very active communities with comprehensive documentation, and concrete5 is no exception. There is a large development community that contributes to the marketplace; authoring add-ons such as eCommerce and forum platforms. When building a site, we occasionally find a solution on this marketplace that fits part of the requirements of a project. This not only keeps development costs down, it also saves time and prevents us from re-inventing the wheel. We can usually take an add-on and tweak it to further fit a website’s specification. Failing that, concrete5’s core can be extended to create custom-built functionality that will quickly add needed features.

    Like other community-driven CMSs, concrete5 offers comprehensive documentation and guides on themeing, creating custom modules, custom page types and various other how-to’s. There is also an agile bug tracker and code submission mechanism, which is easily accessible to developers.

    Being open source also adds some other, less obvious benefits such as Intellectual Property management. Locking a client into a proprietary CMS can stop other agencies being able to take the project on. We hate this approach, and would much rather keep clients because they are happy with our services than to tie them into the software that is being used. Concrete5 fits in perfectly with our ‘no lock-in’ ethos.

    How Does concrete5 Compare to Other CMSs?

    Over the years we have used many different solutions to build content manageable websites for our clients. We even developed our own in-house solution that has evolved over the years into a fully fledged CMS (similar to concrete5). The problem was that unless it was a specific client requirement, we didn’t have the budgetary luxury of adding extra functionality such as workflows, advanced user permissions and versioning, so we could never offer the same feature level as concrete5 out of the box. Additionally, a lack of documentation and an ageing codebase meant that our in-house CMS was showing it’s age the more we used it. We got to the stage where moving to concrete5 made for a very wise decision for both us and our clients.

    At Rawnet, we always look to provide the best solution to clients and we often consider other opensource CMSs such as Wordpress, Drupal and other well known systems, but we nearly always conclude that concrete5 is the best option. The underlying difference is that concrete5 is built not only for developers but also users - it’s very difficult to get that balance right, and so many solutions we have worked with in the past have only managed half the job.

    What projects have we used concrete 5 to build?

    DFK International

    DFK is a fully content managed website that integrates with the Workbooks CRM API to pull in data held on members. The site also features a members-only area that is accessed via a login, giving members access to restricted content.

    View Project

    Ingle & Rhode

    We built a full eCommerce shopping solution for Ingle & Rhode, a leading supplier of ethically-sourced diamonds. Using concrete5 at the core, we created custom features that allowed for multi-faceted product filtering via AJAX.

    View Case Study

    Ronald McDonald House Charities

    RMHC is a McDonalds charity that helps families deal with hospital accommodation. We built RMHC a fully content managed website, where each of their houses had their very own micro-site section. Each house section can share news, events and activities that are happening around that particular house. We also integrated RMHC into our mailing system, RawRespond, and have recently launched a Christmas campaign for them accepting PayPal donations - all using concrete5.

    View Project

    Russell Finex

    Russell Finex is one of the largest concrete5 builds that we have created. This site is fully multi-lingual (currently in several different languages) and contains a customer portal for downloading product material. The site is also hooked into the Dropbox API, allowing automatic synchronisation of documents across to the concrete5 File Manager.

    View Project

    CMS CONCLUSION

    The future of concrete5 looks bright - only a couple of weeks ago they released version 5.7. This new version brings a load of additional features and usability improvements to the admin control panel.

    It has to be said that even though both myself, and our clients love concrete5, it isn't always the best option; sometimes a bespoke solution is a better fit if concrete5 is likely to get in the way of a very complex database architecture or if content management isn’t a priority. If a site is primarily content-driven though, concrete5 is a fantastic, developer & user focused solution with loads of impressive features and capabilities. I couldn’t recommend it more highly.