Marianne Kay takes a deep dive into the Concrete5 web content management system. Here's what she found.
Concrete5 is written in PHP and is often compared to WordPress, Joomla and Drupal. It is best known for its well-implemented in-context editing which makes it easy to use for non-technical web authors, and easy to sell to non-technical stakeholders. Concrete5 can therefore be considered for web projects where end user buy-in is particularly difficult.
Concrete5 was released as an open-source CMS in 2008 and has rapidly grown in popularity since. Although the core system is open-source, additional functionality is distributed through Concrete5 marketplace as add-ons. Add-ons are largely commercialized.
Concrete5 aspires to compete with enterprise level systems but its enterprise features require significant improvements before the system can be a good fit for large or highly regulated organizations.
Concrete5 at a Glance
|Strengths:||- Exceptional ease of use for content editors, well implemented in-context editing. |
- Strong, vibrant community.
- Lower cost of ownership in comparison to many proprietary systems.
|Weaknesses:||- Incomplete documentation. |
- Commercial add-ons are of varying origin and reliability.
- Sources of support and development expertise are very limited.
- No partner network and no certification available.
- At present, Concrete5 is not able to meet common approval and auditing needs of large enterprises. Versioning is buggy, and workflow still in development.
|Potential Fit:||- Informational websites, Basic Digital Marketing. |
- Projects where end user buy-in is critical for success.
|Unlikely Fit:||Global/Enterprise Digital Workplace, Multichannel Publishing|
|Competes with:||WordPress, Joomla!, Drupal, Jaws, ExpressionEngine |
|Technical Requirements:||- Apache, IIS. (Apache recommended) |
- MySQL 5.x or higher
- PHP 5.2.x or 5.3x
- Python 2.6+ is required for comparison of different versions of the page
|Licensing:||- Core Concrete5 CMS is open-source, under MIT license. |
- Add-ons are distributed through Concrete5 marketplace, some are free, but most are not, ranging in price from the imposed minimum of US$ 15 to US$ 1,750.
Concrete5 runs on a popular LAMP stack. Apache is recommended, but it is possible to make Concrete5 work on IIS too. MySQL and PHP are required, and Python is only required for comparing versions of pages (using HTMLDiff).
Concrete5 doesn't allow use of database table prefixes which means each instance of Concrete5 needs its own database. This creates difficulties with business as usual tasks such as backup, replication and data recovery and may complicate matters if your hosting plan limits the number of databases.
Concrete5 recommends dedicated hosting. Hosting Concrete5 on a shared hosting environment is not completely straightforward and some hosting providers publish support articles to assist with the installation process and additional configuration which is required for setting up user-friendly URLs.
Concrete5 positions itself as a system which makes both building and editing the website extremely easy. Whilst this is true for the end-user editorial experience, development for Concrete5 does not stand out as exceptionally easy in comparison to other systems. Concrete5 adheres to standard MVC and OOP practices; however, lack of descriptive comments in the code, small community and very limited sources of support make it difficult and time-consuming to gain an intimate knowledge of the system.
Finding reliable, experienced Concrete5 developers can be challenging. As an emergent Web CMS only a small number of developers have acquired extensive, solid experience with the system; most are still learning. Also, Concrete5 is not as well known as some other open source systems like Wordpress, Joomla! or Drupal, so at this stage attracts only a fraction of PHP web developer interest and effort. Complicating matters, there are many start-ups entering the market with unsecured or unreliable resources who may struggle to deliver on their commitments.
Concrete5 generates a high number of database queries per page which can slow down the performance, particularly when building navigation. Performance can be managed by configuring native Concrete5 caching settings, using dedicated (as opposed to shared) hosting and APC (Alternative PHP Cache). The more complex and customized the website is, the more effort and attention is required to achieve acceptable performance levels.
Concrete5 follows best practices in terms of security. The core Concrete5 system uses ADODB library to prevent SQL injection attacks. Guestbook block (which is part of the core) strips out all tags and is safe against potential XSS attacks.
Any add-ons should be tested for security vulnerabilities.
Concrete5 is very easy to use which is of particular benefit to organisations with a large number of web authors. End-user training requirements are minimal, the learning curve is gentle and authors are likely to be enthusiastic and motivated about performing their tasks.
The Developer's Index and How-Tos section on the official Concrete5 website are of high quality, with clear explanations, examples, screenshots and videos. There are gaps in API documentation and very little information is available at a more advanced level -- explaining why things work the way they do rather than how to perform specific common tasks. The documentation is not divided into current and previous versions, which makes it increasingly problematic to find up-to-date relevant information. Some of the commercially available add-ons still have no documentation whatsoever. The situation is improving over time - there is now a requirement for all the add-ons submitted to Concrete5 marketplace to include documentation.
Concrete5 Beginner's Guide by Remo Laubacher, published in 2011, covers the essentials of how to use the product from the developer's point of view, and is currently available at a price of US$ 44.99 from Amazon. The book is based on Concrete5 version 5.4 and even though the system has moved on since the time of writing, most of the material in the book is still relevant today. The writing style is informal and daring -- with large headings such as 'Time for Action', 'What just happened?' and 'Have a go hero'. The book goes through typical actions and scenarios, but lacks in-depth information about the system, beyond the hand-holding instructions for the most popular tasks.
The launch of Concrete5 certification program was planned for 2011, but as of January 2013 it is still under development.
Partner accounts and badges were offered by Concrete5 for a US$ 370 annual fee, until they were replaced with more expensive "Pro Accounts" (US$ 1140 a year) in January 2011. Since then "Pro Accounts" have disappeared too, giving way to "Community leaders" badges, which can no longer be purchased but can be earned through contributing to the product and supporting Concrete5 initiatives.
Official Concrete5 forums are vibrant and the core team actively participates in discussions. The community is small but strong and simple queries are answered very quickly.
Most add-ons are developed and owned by the members of the community. Some add-ons are free, but the vast majority are not. Quality of support varies significantly from one developer to the next and depends on whether the developer in question is still interested in Concrete5 development.
Recent upgrade to the core (v5.5.1) left many commercial add-ons incompatible with the new version, which caused frustration amongst website owners who expect professional support to be part of the deal.
CEO Franz Maruna and CTO Andrew Embler host a weekly video web cast called Totally random where they talk about Concrete5. This can provide useful insight into the vision and leadership style of Concrete5 core team.
Content editing and ease of use
Concrete5 is known for its ease-of-use and intuitive user interface. It's built around the needs of the non-technical authors who relate well to the website itself -- the way it looks to the visitor -- and tend to dislike the idea of a separate administration interface. Simply log in, browse your website and click the "Edit" button on any page. This highlights the contribution areas and provides edit options.
Figure 1. In-context editing in Concrete5
This approach is known as in-context editing (or in-site editing, in-line editing), and is precisely what inexperienced or casual web authors expect from an easy-to-use content management system. It feels so totally intuitive because editing doesn't start with long forms to fill and new concepts to learn. It starts with what users know and love best -- their own website.
Content contributors can drag and drop contribution areas, which is helpful for projects that don’t have a well-defined layout at the outset and are likely to go through a lot of iterations and experimentation.
Figure 2. Drag and drop content areas in Concrete5
Although many other CMSs have in-context editing too, few have implemented it as well as Concrete5. Immediate competitors -- Wordpress, Joomla! and Drupal have a long way to go to catch up with Concrete5 in this area.
Concrete5 uses TinyMCE as a WYSIWYG editor. TinyMCE is an established open-source WYSIWYG editor which is used in many content management systems so many users will be familiar with the interface and functionality. In particular it is used in WordPress, Joomla!, Umbraco, and is available in Drupal as one of its supported WYSIWYG options that can be installed through Drupal WYSIWYG API.
In Concrete5 there is currently no out-of-the-box, or documented procedure to disable TinyMCE or replace it with a different WYSIWYG editor.
Incorrect, badly coded HTML which is inserted into Concrete5 WYSIWYG can leak into administration areas of the system. Recovery is difficult and requires problematic pages to be removed and re-created.
Concrete5 Statistics is a built-in feature but it tracks all page views and doesn't differentiate those that originate from web contributors adding or editing content. Every time a page is edited 3 views are added to the statistics. This produces unusually high, inaccurate results that may confuse and mislead website owners.
Approval, versioning, rollback, workflow
Editor's Note: This section was updated from the original to provide more clarification.
Once the page has been updated, Concrete5 offers options to publish the page or preview and save it in a draft state. The draft is not visible to the general public until it's approved. There is no draft state for micro-content; page properties such as header, meta keywords and meta description can only be published or not published, with nothing in between.
Versioning and rollback exist in Concrete5 but the implementation is unusual. Rolling back from current version to an older version publishes the older version live, but the web author continues to see the current version within the editorial UI.
This means that versioning and rollback is unsuitable for audit purposes and complaint handling; when there is a need to see what was published at some point in the past it's impossible to do so without exposing the old version to the whole wide world.
There is no workflow, or even email notification system in v5.5, however basic workflow was released in v5.6 in September 2012, and ‘enterprise workflow’ was launched as part of Concrete5 commercial offering called Enterprise Suite in October 2012.
Cost / License
The core Concrete5 CMS is free and available under the permissive MIT license; however, anything beyond a very basic brochureware website requires add-ons which are distributed through Concrete5 marketplace. Some add-ons are free, but most are not, ranging in price from the imposed minimum of US$ 15 to US$ 1,750. Add-ons are licensed for use on a single website; alternatively there is an option to buy 5 licenses. There are no licenses for unlimited usage of add-ons which is inconvenient for companies owning or developing high numbers of websites.
Concrete5 can be best described as open core -- an emerging trend in commercial software business models. The core system with the most basic functionality is open source and free - so you don't have to pay for the licenses and you have full access to the code. Most of the additional functionality beyond the core is sold through Concrete5 marketplace as proprietary add-ons. So the core is a limited free edition of the main offering, but the main offering is largely commercialized.
The core system is essentially used for "open source marketing". It's given away for free, it's easy to learn, and has an industry buzz that makes it appealing to developers. Developers advocate the product and promote it to the website owners and businesses, resulting in effective below the line marketing.
Although Concrete5 developer community is strong enough to be able to market the product, it is still extremely small in comparison with communities of leading open source CMSs like Wordpress, Joomla and Drupal and is lacking high-profile developers and agencies with glowing -- and growing! -- portfolios. Community-generated code base is also small.
Excited by rapid initial growth Concrete5 is confident that they'll beat the odds, make it big, and will compete at enterprise level with the other open source and commercial vendors. Whilst the growth indicators are impressive for a new offering, Concrete5 is nowhere near the leaders at the moment, and market validation of their ambitious aspirations still lies ahead.
The major strength of Concrete5 is its ease of use. In-context editing is well implemented and wins hearts of the most technically inexperienced web contributors. Intuitive editorial interface helps with user buy-in which is a fundamental challenge for many CMS projects.
Concrete5 positions itself as an open-source solution but is actually open core. The core system is open-source and free, but add-ons providing additional functionality are largely commercialized.
Developer community is rapidly growing but is still small in comparison to communities of more mature PHP-based open-source systems like Wordpress, Joomla! and Drupal. Finding experienced and reliable Concrete5 developers is not easy. The system is fairly young so very few developers have deep intimate knowledge of the system and a record track of successful projects.
Common needs of large and heavily regulated organisations around audit, content archival and approval processes are not adequately addressed in Concrete5 at this time.
Concrete5 can be considered for web projects where end user buy-in is crucial and exceptionally challenging. It will suit small to medium companies and organisations with simple processes and compliance requirements which do not require enterprise CMS features. For large enterprises Concrete5 remains a CMS to watch.
Please note: This article is based on Concrete5 version 5.5. Training courses which are available from Concrete5 went down in price from $295 to $95 since the time of writing.