We’ve recently been doing some Intranet work at Moov2, after much deliberation we settled on using Orchard CMS as our platform of choice. This wasn’t an obvious choice as Orchard CMS does not claim to be targeted as an Intranet platform but it suited our needs. The reasons for choosing it I’ll share in another post (we reviewed a number of options) but here is an initial Orchard CMS review as relative newcomers to the project.
Orchard CMS is a great platform with masses of opportunities for extensibility. The platform is mature and rapidly evolving but needs some attention given to the user experience and the journey for newcomers and particularly for the non-developer audience. If you’re looking for a .Net based CMS with lots of room for customisation and a comprehensive feature set then I would definitely recommend Orchard CMS.
Open source, well built
Orchard CMS is an open source project built on the .Net platform. This means we’re able to pull it apart and review the guts of the system. There’s no doubt Orchard CMS has been architected and built by some extremely talented and experienced developers. There’s a lot to be learned from the patterns and practices used in the source and a review offers assurance that this is an enterprise-worthy code base.
Open in enterprise?
The chance to review a platforms’ code is an opportunity open source projects offer that closed, proprietary systems typically deployed in the enterprise do not. Ironically, often the decision to go open source in enterprise, is seen as a risky move because of the assumption that open code means it’s easier to maliciously hack. This is an entirely incorrect assumption, open source means you can review how secure or otherwise a piece of software is, closed source gives you no such affordance so carries with it a much greater risk.
Powerful & Flexible
Orchard CMS has been built with extensibility as a primary goal which is reflected in the wide array of modules (downloadable plugins which add functionality) available in the Orchard Gallery. Due to the flexible nature of the Orchard CMS code base and the vast extension points built-in, there is seemingly nothing which can’t be customised to be made fit for purpose. This is definitely something lacking in a lot of other platforms that only allow you to shape them in a pre-considered manner. Orchard CMS embraces change and if you don’t like the way it does something, or want it to do something new, there is a very good chance you will be able to do so. This flexibility does carry with it a complexity cost however which I will discuss more later.
The Orchard Project is very active and continuously evolving. The team behind it are very open with the feature roadmap and weekly video conference discussions are made available online allowing to keep track of progress. Each release brings with it a raft of valuable new features, bugfixes and performance improvements. Currently, they’re pushing out a point release three or four times per year which is a fantastic velocity for any project open or otherwise.
Any open source project is reliant on individuals and selfless contributions of time and resource, so complaining about the problems or letting yourself be aggrieved by it can seem a bit unfair. But we are all human and to not recognise when we’re frustrated is to ignore an opportunity. Equally, the rough edges need to be identified in order to improve, which is what I’m aiming for here. I also intend to contribute to rectifying these issues myself which open source projects allow us to do.
For both developers and content administrators, Orchard CMS’s admin interface can be a bit confusing. This is somewhat as a result of the flexibility offered by the platform that whilst offering more scope, makes the journey to specific outcomes more cumbersome than it might need to be.
I have been documenting a review of the interface and areas I feel could be improved which I am planning to convert into a set of constructive actions that I will either implement myself or offer for others to review and feedback on.
Organisation and documentation
No developer likes writing documentation compared to adding new awesome features so this is understandably an area with lots of room for improvement. Whilst Orchard CMS does have a substantial amount of documentation it feels very much like it’s been thrown together as and when necessary. Some of the documentation refers to older versions and it is very feature-focused as opposed to task-focused. It also is very much developer orientated with very few resources for the non-developer audience (such as content managers).
If you know what you want to do from a feature perspective, there is likely a reasonable amount of information available but if you don’t know what you can do then the discovery process is very disjointed. The Orchard CMS resources are also strewn between the main Orchard CMS site, various international community sites, blog posts, and Orchard CMS’s home on Codeplex. Which as a newcomer, makes finding your feet in Orchard CMS quite an intimidating task.
Fortunately, there is a fairly large and active community supporting Orchard CMS. Providing you’re prepared to pipe up and ask on the forums you will be offered the answers you need to continue on your way. This does depend on a few key individuals but they have a very concious attitude and you’ll rarely be waiting more than a few hours for a decent response.
Conclusions about Orchard CMS
Orchard CMS is a large and complex system with plenty of scope. It is well built and has good momentum so I would have no hesitation in backing this project if you’re looking for a solid foundation upon which to build a public facing website or enterprise intranet platform. However, be prepared to have to do some leg work in order to get yourself up to speed. The project lacks some polish and professionalism you’d get with a proprietary platform but is backed by an exceptional team and in time, this will come.
Overall I’m happy with our decision to deploy an Orchard CMS based solution and will look to continue to work with the platform contributing wherever possible.