An introduction to Concrete5

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.

  • Jonah Person

    This is great introduction to the best CMS available.

    Nice work Chad!

    It should also be noted that the latest version of concrete5 (version 5.6) now offers a fully responsive bootstrap based dashboard as well.

  • Sarah Evans

    I’ve been using Concrete 5 for just over a year now and it really is a pleasure to use. I hope it continues to grow and other designers realise there are better wordpress alternatives out there.

  • Ron Lum

    I’ve tried Concrete5 before. Installing it was a bit confusing for a CMS noob like me, but I really liked the editing interface. The fact that you can see the live page and just click on an area to edit it makes this amazingly fast to edit and understandable for the client. And I did not know that Concrete5 had a blogging feature… must read up on it sometime!

  • Nicole Bardales

    I’ve been using Concrete5 for over a year now…
    1.- It’s the only CMS I could theme, which makes it great for PHP newbies, you literally only need 3 pieces of PHP to have a working theme. And there’s a video tutorial about it.2.- The community is really supportive, as mentioned in the post, you can get a response in an hour or so.3.- The paid add-ons are amazing, as are the free ones too (specially Designer Content)4.- Concrete5 is constantly being revised and improved, new versions are being pushed all the time, and if you’re a little naughty, you can access the beta versions and start playing around, before they’re released as stable versions for the public.5.- I don’t know any PHP, and I’ve been able to create custom templates and even my own block at a time, because it’s that easy. Yet I also noticed, it’s so powerful. It can handle everything from 1 visitor/month, to thousands of visitors/minute.
    6.- I felt the previous version was a tad bit slow, so I started searching for other CMSs. Guess what? I didn’t find anything better for me, and they absolutely improved it with C5.5 and even more with C5.6

    In my opinion, C5 can only keep getting better. I’m currently redesigning my personal website and creating my portfolio website (both will use Concrete5).

    Two of my family members asked for a website they could easily update, I showed them Concrete5’s interface, and they just said: “Perfect!”

  • Andrew Embler

    Thanks for the great write-up, Chad.

  • WebDesigner

    i have to say the only time i had to use concrete i must say a very under performing cms that runs very slow, there are better cms out there like interactivetools that outperform concrete hands down.

    • ChadStrat

      mmmm…what version did you try?  did you have caching enabled?  Were you on a server that adequately supports a CMS?

  • orange county web designer

    Nice. Will definitely use in the future. 

  • David Kendall

    Well done Chad, Nice work!

  • pumppi

    I have been working with concrete5 over 1.5 year and it’s the best cms for php. If you have used Liferay portal for Java the idea is similar. What I’m looking for concrete5 is more enterprise minded tools like in Symfony 2 framework. Actually I’m integrating some tools for pacakge development. Like validation with docBlock annotations for ActiveRecord, lets see how it will work. Here is symfony 2 validator component what I’m using. I will release the results as soon as I get it work.

  • Jeremy Griffin

    Been using concrete5 for over 2 years. Bumped into it when needed to reverse engineer a cms into an existing site and provide role based author and editing. Have loved it ever since, a great community providing support and fantastic web show Totally Random. A superb vehicle to follow and join in the rapid development of the cms
    Bump in to Chad’s presence all over the support community – Great post, let’s raise awareness all!