I discovered Concrete5 ( http://concrete5.org ) a few years ago after building many Wordpress sites (large and small), and totally fell in love with it. It's not perfect, but it's much better than any other CMS out there for end-users, designers, and developers:
* Editing UI is on the front-end -- users just go to the page they want to edit and click on things to edit them, which is much more intuitive than a back-end dashboard
* Content on pages is a collection of "blocks", so each portion of content on the page can be edited separately (as opposed to one WYSIWYG editor for the whole page). I've even built a free addon that lets designers compose their own custom block interfaces ( http://concrete5.org/marketplace/addons/designer-content ), so if you have a "employee bio block" (for example), you can have an image chooser, a textbox for a headline, a wysiwyg editor for the description, and a page chooser for a link instead of requiring the user to fidget with alignments, floats, and custom styles in TinyMCE/FCKEditor.
* Create themes from your existing design / markup -- the CMS flows around your design as opposed to you having to construct your design around the requirements of the CMS (this is much more of a problem with Drupal than Wordpress, but still gets annoying in WP for non-blog-like designs).
* Underlying architecture is fairly sane -- definitely has some idiosyncracies, but nothing like Wordpress (or Drupal or Joomla). There's a simple MVC pattern going on so you separate your model / controller / view code, and the underlying system has a decent "API" for working with pages, content, users, files, etc. Also, if you have very customized functionality, you can just create a separate page in your site and tell the system to not do anything... that you will handle everything yourself on that particular page or area of your site.
The only downside is that it's not as popular as wordpress so the documentation is lacking and there are not as many free plugins and tutorials available (but hopefully this will continue to change as time goes on).
But it has made building CMS-based websites so much more fun for me. Hit me up ( concrete@jordanlev.com ) if you want to discuss further or have any questions.
I liked Concrete5 when I was playing around with it. I was very excited by its potential; especially looking at projects where maybe WP was overkill.
Where the bottom fell out was in two areas:
1. Paid plugins
I cannot rationally tell my clients 'this software might have a few cases where it is easier than WP to use and manage; but you'll be spending several hundred dollars replicating free functionality available on WP'.
Its a non-starter.
2. The software still looks kind of 'hokey' compared to WordPress
WordPress has lots of issues and there are a ton of other great alternatives. But, its like Facebook vs. all other social networks -- you go where the people are because it makes everything better.
1. Yes, there is a lot more of everything available for wordpress (free and paid plugins/themes). I think this is what a lot of the comments here are saying about why Wordpress is so prevalent... not because it's good necessarily, but because it just has so much stuff available for it.
FWIW, I build custom-designed sites for my clients, and I deliver complete sites that don't require any additional functionality. I don't even bother telling clients how to install new plugins, so for my situation this is a moot point.
When I do pay for plugins, it's because the functionality it provides would take me much more time to build myself (so if my rate is $100-150/hr., paying $30 or $50 or even $200 for something that would take me 4-8 hours of work is a complete no-brainer).
2. Not sure what you mean by "hokey"... the front-end is entirely designed by the person building the site, and the back-end uses Twitter Bootstrap (as of version 5.5 which was released last year). But to each their own :)
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.
* Editing UI is on the front-end -- users just go to the page they want to edit and click on things to edit them, which is much more intuitive than a back-end dashboard
* Content on pages is a collection of "blocks", so each portion of content on the page can be edited separately (as opposed to one WYSIWYG editor for the whole page). I've even built a free addon that lets designers compose their own custom block interfaces ( http://concrete5.org/marketplace/addons/designer-content ), so if you have a "employee bio block" (for example), you can have an image chooser, a textbox for a headline, a wysiwyg editor for the description, and a page chooser for a link instead of requiring the user to fidget with alignments, floats, and custom styles in TinyMCE/FCKEditor.
* Create themes from your existing design / markup -- the CMS flows around your design as opposed to you having to construct your design around the requirements of the CMS (this is much more of a problem with Drupal than Wordpress, but still gets annoying in WP for non-blog-like designs).
* Underlying architecture is fairly sane -- definitely has some idiosyncracies, but nothing like Wordpress (or Drupal or Joomla). There's a simple MVC pattern going on so you separate your model / controller / view code, and the underlying system has a decent "API" for working with pages, content, users, files, etc. Also, if you have very customized functionality, you can just create a separate page in your site and tell the system to not do anything... that you will handle everything yourself on that particular page or area of your site.
The only downside is that it's not as popular as wordpress so the documentation is lacking and there are not as many free plugins and tutorials available (but hopefully this will continue to change as time goes on).
But it has made building CMS-based websites so much more fun for me. Hit me up ( concrete@jordanlev.com ) if you want to discuss further or have any questions.