An introduction to Concrete5

By Chad Cantrell Posted Aug. 31, 2012 Reading time: 7 minutes

Concrete5 entered the CMS scene in 2008, and since then has been making solid headway to becoming one of the premier go-to web publishing platforms available today.

Getting started with Concrete5 is really quick and easy, and many hosting platforms now offer one-click installs. If you have SimpleScripts, Softaculous, Installatron, or even Plesk’s Applications Installer, you can simply find Concrete5, install and go. With the release of version 5.5 featuring a sleek Twitter Bootstrap ported dashboard interface, Concrete5’s future looks bright.

Let’s take a look at a few reasons why so many developers and designers are singing its praises.


The big idea

Although Concrete5 is a MVC/OOP centric CMS and has ridiculous power under the hood, the front end editing is the first noticeable aspect of Concrete5: adding a page is super quick. And upon putting a page into ‘edit’ mode, you are presented with red-dashed highlighted ‘areas’ on your web page for adding content. These areas are content areas that are predefined within a given theme’s page types. Think of page types as layouts. When you click on these red areas, a pop-up menu presents you with options for that specific area to which you can perform tasks such as adding and moving blocks.

You can think of blocks as content building blocks for your website. Need some content? Click an area, click ‘add block’, and then select ‘Content’ for a WYSIWYG editor to add formatted text, headings, and even page links and images. Need to toss up a form? Select the form block.

Code blocks

Overall there are 20 blocks included out of the box ranging from a Youtube block, to a form builder, to Google maps, to a basic banner slider.

One downside to consider is the number of add-ons available compared to the likes of Joomla or WordPress. You may find yourself needing to build something yourself or use the freely available ‘designer content’ package which can create basic custom blocks for you.

Regardless, clients really latch on to this way of thinking. It’s very raw and tangible for them, and I have yet to see even the least web savvy client fail to latch onto this: add a page, click to add content or move it, click publish, done. The very thing that makes the WYSIWYG editor popular is driving Concrete5’s popularity. What you see is what you get. Clients love it. Designers love it.


Need more?

One of the coolest things about Concrete5 is its Marketplace.

For most CMSs, to extend a theme, or find what you need to build out a job, requires heading out to search for add-ons and reliable extensions to extend the platform, then download, and upload to your site. Finally you have to install. Then you can use it. This can suck hours of your project’s time.

With Concrete5, everything you will need is baked right in. Including their add-on and themes Marketplace to extend your project without having to leave your website.

While logged in for editing, hitting the ‘tab’ key and typing ‘marketplace’ pops up the finder tool in Concrete5 which searches all relevant local and remote pages and add-ons available. With the most relevant sorted to the top, you would choose ‘Connect to the Community’. Enabling this connection instantly plugs you into thousands of add-ons and themes without ever having to leave your website. After setting up your Concrete5 profile, you can connect your websites to the community and get integrated support for your add-ons and themes, and purchase or install them right to your website.

Need an image gallery? Simply hit your tab key and type ‘marketplace’ again, and select ‘get more add-ons’. From here you can search and browse add-ons and themes both free and paid. Once you find the perfect gallery add-on for your site, you can download and install it to your site in just a few clicks. It’s an impressive building experience whether you are a novice or a pro.

The community connection also automatically pushes update notices pertaining to the core install, as well as any add-ons or themes you have installed on that specific website. Again, saving you time and money having to track everything down and go get it, push it, and update.


Finding your way around

Using the tab key and typing any topic or subject will also search Concrete5’s forums and how-to areas to get you the help you need fast. For example, Concrete5 comes standard with two permissions models: simple, which is what is enabled by default; and advanced.

So a quick search for ‘advanced permissions’ in the finder reveals helpful video ‘how to’s getting you started on your way to more detailed control of your site editor permissions.


If you still have questions the Concrete5 community, all be it, smaller than many CMS’s, is extremely proactive in helping others. Helpful responses generally appear within an hour or so. Then there’s also the C5 IRC available for help. IRC definitely feels a bit archaic. But it is nice to know there are some very knowledgeable C5 brains to ping for help should you not get the answers you need in the C5 forums.


Designing in Concrete5

Theming and design in Concrete5 is really easy and pretty straight forward. Take your HTML and replace the content with some tags for block areas…etc etc. Not much to it. Pretty much like most CMS worth their salt.

Designing in Concrete5

One way C5 differentiates from other CMS however, is in its ballsy root level override system and purposeful MVC architecture that allows you to quickly and easily override core package, theme, or block files. Nearly everything in Concrete5 can be overridden in the root structure. There is not enough space here to go over this amazing capability and the power therein. But let’s look at one small example.

I have a theme designed and ported to C5. It looks very nice. However, when I go grab XYZ gallery block it doesn’t look quite perfect. You can do a hackathon and slap a bunch of !important’s in your theme CSS, or even code dive and find the block’s CSS and change it. The problem with tweaking code at the block level however, is the second you upgrade, you lose your changes. But with C5 and it’s MVC architecture, you don’t need to do this. Instead you can simply copy the block’s view.php & view.css files from the packages > blockname > blocks > blockname folder into the root blocks > blockname folder, and change the CSS at the root > blocks level. When C5 renders, it will always prefer root level overrides over internal core or package files.

What this also means, is that any changes or updates to XYZ gallery block are non-destructive. Meaning, you update XYZ block, and your customization is not lost. It’s still right there in your root blocks folder! Pretty much awesome-sauce.

Root level overrides are not limited to css or views either. You can override controllers, models, elements, helpers, and tools files as well. Of course, a downside to this amount of flexibility and power is that it can feel a bit overwhelming at first if you are not already acclimated to MVC/OOP architectures. Regardless, C5 is far beyond what most CMS’s can offer in terms of flexibility and extensibility, and we haven’t even scratched the surface as to what this means from a design and build standpoint.


The Concrete5 business model

One of the first letdowns for many newcomers to Concrete5 such as WordPress converts is the fact that not all add-ons are free. Some try to paint this fact as a detrimental to the CMS’ growth. But when you dig deeper into Concrete5’s business model, it doesn’t take long to see the sense: all CMS have to have funding. This is not an assumption so much as a simple fact, when you as designer or developer pull free add-ons for WordPress or Joomla, both the CMS and the development of extensions, regardless of the cost to you, did in fact cost somebody.

Although Concrete5’s marketplace houses a considerable number of really useful and helpful add-ons and themes for free, many of the more complex code does cost some cash. Having said that, every dollar spent on add-ons and themes donates 25% to the funding of Concrete5, and then the other 75% goes to the developer.

When a developer publishes an add-on, that add-on also receives a support area / ticket system specifically for that developer and that add-on. This is important to note, because great support should be at the heart of every business, not just web technologies and free stuff. Combine this with the fact that all add-ons, both paid and free, are vetted through a peer review board (PRB) where they are tested, questioned, and screened for bugs, and you have a reasonably stable library of add-ons and themes.

Still, if you’re not really interested in the stability and funding of a platform, lack of high end free add-ons will be very apparent.


From a profitability standpoint, there’s definitely opportunity there to see some nice revenue stream. However, if you are a developer or designer with hopes of selling in the C5 marketplace, getting a product through the PRB can be quite painstaking and slow at times. Depending on the backlog of pending approvals as well as the preparedness of your product, it can take anywhere from two days to two months.

I do love the fact that when I pay for an add-on, I am supporting the CMS and its development, supporting the growing developer community, and ensuring that I get timely helpful support. It’s a good deal all around.

As a caution though, make sure you check out the reviews of products in the C5 marketplace.  And then also be sure to take a look at the average support response time found at the bottom each product page on the main C5 site.


In conclusion

As mentioned earlier, Concrete5 is developed from the ground up in MVC (Model View Controller) OOP (Object Oriented Programing) architecture. Because of this, Concrete5 is a powerful platform as well as an easy to use CMS. A framework that can be tapped into for everything from powerful web applications to custom backend functionality for your clients.

Speaking from experience, you can tap into Concrete5’s API for just about anything. I’ve personally worked on everything from iOS native apps that hit Concrete5’s API for data, to backend Enterprise RMA and Warranty applications, to a fully integrated Auto Dealership application managing sales and daily auto-trader exporting.

It’s true, Concrete5 is so easy your Grandma could use it…but it also packs some serious architecture that is nothing to scoff at.


Have you tried Concrete5? How did you find it compared to other CMS? Let us know in the comments below.