To Go or Not To Go with Liferay? What's the good, bad, and ugly?

Alexx picture Alexx · Sep 26, 2011 · Viewed 13.9k times · Source

We are evaluating several solutions for a new web thing we're looking to build. There are several aspects to it, including user management, content management, campaigns, community, and financial transactions.

We are looking to roll the framework ourselves, using Joomla + Vaadin + CAS (to name a few) to DIY, but I am wondering if we should simply adopt the Liferay portal for one-stop shopping?

I have looked for testimonials and have not come up with much. I appreciate anyone who has used Liferay (or chosen not to) who would share what technical hurdles it solves (or doesn't) and potentially what others it may create.

Thank you!

Answer

brandizzi picture brandizzi · Sep 28, 2011

Disclaimer: I work for Liferay now; however, the answer was posted long before I started to work here.

My companyThe company I worked for is a Liferay Inc. partner so I have a lot of experience on it. Also, maybe you want to take my opinions with a grain of salt :)

We have used various Java portal tools and the truth is: as a corporate portal, Liferay is the best one in the market AFAIK. It is rich in functionality, has few bugs, its code is well written, the community is very helpful and it is flexible and customizable, being useful for a wide range of necessities.

Nonetheless, Liferay is a portal tool, so it excels as a content-centric platform. If you will manage a lot of content (such as news, articles, blogs, wikis, forums...), then I would happily recommend Liferay as your platform. In other cases, I would suggest a better consideration. You can use something like an ERP, for example.

Anyway, I have seen Liferay used as a general development platform in various places and the result is reasonable. In fact, one gets a great improvement in productivity when using Liferay. You do not need to think about users, permissions, content management... Even complex low level issues like clustering and sharding can be delegated to Liferay. And the Liferay Service Builder is one of the best scaffolding tools for Java I've seen. When I think about it, I feel that Liferay, with its various out-of-the-box applications and its Service Builder, is like a Ruby on Rails/Django for Java.

OTOH, Liferay is big and it can be a problem. You may get a lot of unused stuff cluttering your platform. You will have to study a huge application and it will demand much time and effort from you. Unfortunately, Liferay documentation is poor, to make things worse. Since Liferay does solve a wide range of problems, its codebase is big. This complexity can be dispensable in many, if not most, applications.

Also, if your application does not use a lot of content, Liferay can provide various helpful tools, but it will not be the natural environment for using Liferay. You will be locked in the Liferay platform, too, which can restrict your choices. You may want to analyze Liferay tools but I do not know if it would be a good platform.

Summarizing, I would say:

  • If you want to use a Java-based portal, or to build a wide, complex portal, I recommend Liferay without restrictions;
  • If you want to create an application which manages a lot of content, Liferay is a good platform to do it and I think it may be the best choice;
  • If your application is big but not content-centric, I would not recommend Liferay but it can be useful;
  • If your application does not manage a lot of content and is potentially small, Liferay probably will add more complexity than it is worth.