Dumping Alfresco for Nuxeo as my preferred Document Management System

Photo: Elvis Santana, http://www.freeimages.com/photo/files-4-1576391

These notes are about the preferred choice for a document management system (DMS) and why I am replacing Alfresco with Nuxeo as the preferred choice in new DMS projects.

When you google for “Alfresco vs. Nuxeo”, you will eventually find some comparisons, but they are all outdated and about 6 to 10 years old. A lot has happened during that time in the Alfresco as well as the Nuxeo community.


My background

I’m an IT consultant and software engineer with experience in the enterprise content management field for more than 13 years. My focus has always been on Java and open source technologies. I developed corporate websites and intranets (for clients like Bayer, China Telecom) using OpenCms as my preferred web content management (WebCMS) system from 2004 until 2013 before switching to Magnolia as my preferred WebCMS solution. I’m a Magnolia Associate Developer.

I managed document management projects using Alfresco, including configuration, customization and extension of the system. I did my first DMS project using Alfresco in 2009 for a China-based corporate and investment advisory firm. From 2014 to 2015 I joined an Alfresco platinum integration partner (Westernacher) in Germany and implemented Alfresco for other clients such as SAP and Buendnis 90 Die Gruenen, a German political party. I’m an Alfresco Certified Administrator (ACA) as well as Alfresco Certified Engineer (ACE).

The following notes are about choosing a DMS (not WebCMS).


Why not Alfresco anymore?

Not living the open source spirit

In my opinion, Alfresco is a commercial company (sure, no problem) that uses the term open source mainly for marketing purposes rather than actually living it and mainly to differ from other market competitors. From past experience, most clients chose Alfresco not because of their feature set or because it was technologically so much more advanced, but mainly because it was cheap(er) than others and the source code available as open source. And that’s about it.

Remember when SugarCRM was the leading open source CRM vendor in 2004? Nowadays, there is no open source version available anymore, and I think the same will eventually happen with Alfresco as well.

Note that Doug Dennerline is both the CEO and president at Alfresco Inc. as well as a member of the board of directors at SugarCRM. I wouldn’t be surprised if Alfresco suffers the same fate as SugarCRM, since the management at Alfresco is not particularly open-source-savvy in terms of “true” open source philosophy as per Free Software Foundation.

Here are some interesting reads that I can recommend:

The main three key takeaways:

“Open source” is not a guiding principle for the company.
Alfresco originally released under an open source license primarily as a go-to-market strategy
Committers will only ever be employees.

Also take a look at the github commits of the core system of the Community Edition (CE): as of January 24 2017, the last commit made for the Community Edition https://github.com/Alfresco/community-edition was 5 months ago. The git repo is just a mirror of the SVN repository, but still… did nobody work on the CE for the past 5 months? Hardly, but it’s just not being released or communicated to the community. Alfresco staff works on code and periodically releases stuff, but it’s not a transparent process. Compare this to Adobe’s Jackrabbit/Oak (JCR implementation) contributions — all issues and all progress can be followed along in the user and dev mailing lists.

Just to compare: the Nuxeo github organization counts 30 members, whereas Alfresco only has 13 members, despite being a much larger company.

Interesting read:


Differing features between CE and Commercial edition

Alfresco distinguishes between the community edition and the commercial edition in terms of features, even for core components such as a desktop sync. Some features or core add ons are not part of the community edition (CE). Nuxeo, in comparison, only has one version, no differences.

Interesting read:

Desktop Sync: Alfresco took several attempts to provide a working desktop sync tool, rewrote the code multiple times, and when it was finished, it’s not even open-sourced but sold as a commercial-only addon. See the forum post here: https://community.alfresco.com/thread/212323-comparizon-between-cmissync-and-alfresco-desktop-sync#comment-804128

With Nuxeo in comparison, the desktop sync source code is free and available to all users. Also all other core components are available on github.



Ex-Alfresco staff jumping ship

Activiti is one of Alfresco’s subprojects and the the workflow engine used by the Alfresco repository. It has a history of about 7 years now, see https://en.wikipedia.org/wiki/Activiti_(software).

Interestingly, the workflow engine got forked twice now during the past 3 to 4 years. First it was forked by what is now ‘Camunda’ in 2013, and it got forked again in 2016 by what is now ‘Flowable’.

From my understanding the reasons were mainly about differing understandings of the open source philosophy and strategy behind it, but that is just my assumption from what I read in the blog articles and publications around that topic.

Interesting reads:

Interestingly, Joram Barrez called the Camunda fork in 2013 a “sad day for open source”, however, in 2016 he was also one of the initiators of the Flowable fork (https://en.wikipedia.org/wiki/Activiti_(software): “In October 2016, Barrez and three contributors left Alfresco.[7] The departing developers forked the Activiti code to start a new project called Flowable.”), which I can totally comprehend though.

This of course didn’t get unnoticed at Alfresco and you can see how they picked up that topic (about openness, community, forks) in their recent Alfresco Office Hours: https://www.youtube.com/watch?v=RXVCqaaGG84&feature=youtu.be&t=38m22s

Also activiti.org (the community site, as opposed to the commercial activiti.com site) also just recently got a facelift, which didn’t happen for years. Might be the pressure of appearing outdated compared to the other forks (compare camunda.org or flowable.org). The activiti.org website always looked (up until the recent facelift) as if it got stuck in the past. However, I don’t think that it will change anything at Activiti regarding living a true open source philosophy. Just as the Spring Surf framework, Activiti imho will only be used in projects where the Alfresco DMS is already set. I am hardly getting any requests from recruiters (on LinkedIn or Xing) about sole Activiti projects, much more though for Camunda for example. Camunda has outplayed Activiti as a standalone workflow engine for quite some time now.


Bad technical documentation

Information and documentation used to be spread all across the web, in forums, on StackOverflow, in Wikis and official documentation pages. The information that can be found was either not consistent or outdated, and Alfresco did not seem to have managed to hire a qualified, full-time technical writer (assumption based on the quality of documentation) to create a decent documentation.

Admittedly they overhauled their forums and Q&A system and imported all content from the old system to the new one in 2016, but I really couldn’t understand how they could keep the forum for years and not switch to a decent Q&A system like Quandora (StackOverflow-alike system) or alike.

It also took them years to provide a proper REST API documentation as one would expect in 2016/2017, using a proper tool like Swagger.

As an Alfresco consultant and engineer, I had to do many customizations to the system or write extensions and modules for it during projects. It was always a pain to find the correct way or best-practice to do it based on the documentation. Even finding correct API endpoints was already painful. First of all, for beginners, the number of API they offer is just confusing http://docs.alfresco.com/community5.0/concepts/API-intro.html and then, see it for yourself, try to browse the API documentation that I just linked and see what it contains. It’s not a complete API reference, the documentation just give you a few brief example of what can be done with it. If you are looking for a complete API reference, good luck searching.

In the past there was (and still is) just a page under the Alfresco repository admin section, that listed all the available web scripts, but it was so chaotically displayed that nobody could read it. It just looked like a plain text dump, unformatted and hard to filter.

Meanwhile they got an API explorer (Swagger) in place, but how many years did it take them?

http://docs.alfresco.com/community/concepts/alfresco-sdk-tutorials-using-rest-api-explorer.html

Customization of Alfresco was always about fiddling around in properties, Freemarker and xml files. For simple configuration things, minor UX tweaks, where you would think that it could easily be done via a simple UI editor or dialog — given that it would have been provided — you had to edit files outside the running Alfresco system.


Technology choices

Alfresco made weird technology choices and invented the wheel again in the past but also nowadays, when using YUI (who still uses that or even used that few years ago when everybody was using JQuery back then?), and now the recently (also already while ago by now) Aikau framework, which is based on Dojo but still has dependencies on the (dead) Surf framework (https://github.com/Alfresco/Aikau: “Aikau is a meta-framework of custom JavaScript widgets designed to work with Alfresco. It is dependant upon the Surf framework but is not dependent upon Alfresco Share application.”). Surf was contributed to Spring but nobody uses it except for Alfresco. It’s a dead project and not promoted by Spring anymore for many years.

Nuxeo in comparison uses JSF (one can surely argue about that) and JQuery for the old web-client, the new web UI (launched end of 2016) uses Polymer web components.


What I like about Nuxeo

  • Same code base for Nuxeo with or without subscription.
  • The github organization has 30 members (compare to 13 members at Alfresco despite being a much larger company).
  • All components are open-sourced (desktop sync, core system, web ui, etc.).
  • proper and structured documentation and learning path (Nuxeo University) for beginners
  • They are using proper standards or popular technology, not re-inventing the wheel and creating their own frameworks like Alfresco. Using Jackrabbit, Mongo, JSF, Polymer, etc.
  • OSGi based
  • Configuration or content type definitions can be done via UI (Nuxeo Studio), no need to fiddle around with XML entirely where it is not really necessary. (Ok, Studio is not open source, but still, at least they have such an option as a commercial add-on).
  • Important features are available: mult-tenancy, LDAP/AD authentication, clustering, desktop sync, WebDAV support, facet search, custom document types
  • Nuxeo SA seems to have a good backing, collected $30 Mio. capital in 2016

Interesting reads:

Above comparisons differ from Gartner and Juniper analysis quite a bit and are more community or end-user driven, but definitely worth a look.


Did you experience the same when working with Alfresco or Nuxeo? Do you have a different opinion? Feel free to leave a comment.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.