I too have moved from Wordpress to Concrete5 and was a huge fan. I appreciated the flexibility of the system, combined with the free availability. However, a few things have started to bother me about it:

* The CMS interface is very powerful, which can be a good thing in some cases, but for most sites I make it is more of a liability than an advantage. Users can easily format the headline red because they think it deserves more importance, they can add new layouts everywhere adding columns to pages etc. For pages that are carefully designed, this provides a lot of room for screwing up the site, both accidentally and on purpose.

* Due to the power of interface, it becomes a lot more complex than it should be. While this may not be a problem for advanced users, for small sites (small business, club, individual person etc) the person editing the site is often not too skilled and every new menu is a new opportunity to get lost and to click the wrong option. If I click a block, there are about seven options and only half of them should ever be used by the editor. Custom options for a site are hidden in a page properties menu somewhere and there are so many options that should never be touched on the way to get there.

* I have been disappointed by the lack of commitment to excellence and best practices by the Concrete5 team. There are so many parts of the system that are made to “just work” instead of being based on modern best practices. Half of the blocks produce HTML that you don’t want to have in a modern HTML5 based site. I know that you (jordanlev) have been working on some improved blocks, so kudos for that! Also, this is more of a general impression and I haven’t been using C5 for about a year, so things might have changed.

* Creating custom blocks comes with quite some complexity, so you either have to invest the time to create them or try to work with an existing block and work around their limitations. Try having a table on a page that can be edited by the user with the possibility to add a class to some rows so they can be highlighted with CSS.

* I’ve had a lot of performance issues, where a site would take ~10s to load the first page.

I would still use Concrete5 for projects where I know that a lot of flexibility without my intervention is needed and there are skilled people who will be able to edit the site without screwing everything up or when minimal costs are needed.

For all other (small) projects, I have started using Perch, which isn’t open source, but an absolute joy to use. It’s reasonably priced, gives you real control over the code and makes it possible to have a nice, well-documented interface for the editor where they can easily edit everything within the boundaries that are defined by the design. Where a custom block in Concrete5 needs several PHP files, an XML database schema etc you just create a HTML template file with some template tags in Perch and you have full control over the order, labels and help texts in the CMS back-end.

It took me a while to get my head around the concepts and see which problem should be solved which way in Perch, but now I finally have a CMS where I have full control over the code and can make the edit interface as easy to use as possible, with minimal effort on my part.

I realize that this sounds a bit like a sales pitch, but I have no affiliation with the developers. Of course, there’s a risk associated with using a closed-source product by a small company, but Perch has been around for a while and the development continues to be very active with a very responsive team.