eXo Platform can be easily customized and extended by:
Creating extensions that allows you to customize all resources of eXo Platform, including templates, skin, default configuration, and more.
Creating new applications (portlets or gadgets) that you can add to your portal's pages.
Almost everything in eXo Platform can be customized through extensions. The main concept behind extensions is that resources of your extensions will override resources of eXo Platform. See eXo Platform Extensions for more details.
Here are some examples of what can be done with extensions:
Creating a site with some pages and navigations.
Customizing internationalized labels.
Changing the default connector for users/groups/roles.
Creating and customizing a new site. See Creating a new site for details.
Adding or removing languages. See Adding/Removing a language for details.
Creating and customizing templates for content. See Developing Content for more details.
Creating a Groovy REST script in your extension that will be loaded at startup by the REST engine. See Using Groovy REST service for more details.
Applications are blocks that compose a portal page. eXo Platform comes with a lot of out-of-the-box applications which allow you to display a navigation menu, display a content or a list of content, manage bookmarks, display your next calendar events, and more. Also, you can create your own applications.
From a technical point of view, an application can be either a portlet or a gadget. Therefore, it is important to understand distinctions between gadgets and portlets. While portlets are user interface components that provide fragments of markup code from the server side, gadgets generate dynamic web content on the client side. With gadgets, small applications can be built quickly, and mashed up on the client side using lightweight Web-Oriented Architecture (WOA) technologies, like REST or RSS.
Developing portlets and gadgets complies with different rules and components that are detailed in: