Nuxeo EP proposes different technologies for the client side of the application.
The choice of one technology vs. the other depends on both the project's stakes and its context.
The different technologies available are:

JSF/Seam
The Nuxeo EP default web UI is based on JSF (a Java EE standard) for the UI component model, and Seam for the navigation and context management.
Technologies:
- Sun JSF 1.2,
- Facelets,
- JBoss RichFaces 3.3.1.GA,
- JBoss Seam 2.
Key points:
Nuxeo EP's JSF interface is fully modular and very easy to customize:
- integrated theme manager,
- XML configuration for buttons, tabs, actions, etc.
- Form and Widget layout engine.
Typical use case:
- Business application,
- Document management back-office.
WebEngine
JSF technology is not best suited to create websites with content managed by Nuxeo EP, due to JSF's stateful model, full abstraction of the HTML/JS code, etc. Thus, Nuxeo has developed a simple yet powerful rendering engine based on Freemarker and JAX-RS: Nuxeo WebEngine.
Technologies:
- JAX-RS,
- Freemarker,
- Java scripting (Groovy or other).
Key points:
Nuxeo WebEngine enables web developers to easily create a customized web interface on top of Nuxeo EP:
- Simple template engine,
- Direct access to HTML,
- Java scripting support,
- Lightweight development environment based on Jetty.
Typical use case:
Nuxeo WebEngine is designed to expose Nuxeo EP managed content in a web experience. In many cases, the JSF interface is used for the back-office management while Nuxeo WebEngine provides the front office interface. Furthermore, with the JAX-RS support, Nuxeo WebEngine allows rapid creation of REST applications on top of Nuxeo EP.
Flex client
Nuxeo EP provides a Flex/AMF connector allowing an Air/Flex client to connect.
Technologies:
- Air/Flex,
- AMF remoting integrated via GraniteDS.
Key points:
The Flex technology can be easily deployed, as the equipment rate in flash VM is quite high. The Flash technology allows rapid development of advanced clients with a rich and user-friendly interface.
Typical use case:
It would be a small application requiring rich media support and a plain user interface for a large audience. For example, this technology has been used for eLearning applications based on Nuxeo EP.
GWT Client
GWT (Google Web Toolkit) allows the Java development of applications that will be deployed under HTML/JavaScript format.
Nuxeo has integrated the GWT technology:
- in the build environment (via Maven),
- with the platform via dedicated REST APIs,
- with the extension points model (to allow modular development with GWT as it is available within the rest of Nuxeo EP).
Technologies:
- Google Web Toolkit 1.5,
- JAX-RS to communicate with server.
Key Points:
The GWT technology allows the development of user-friendly and reactive applications with no deployment needed.
From the development side, it is highly productive to be able to code in Java (Java IDE, Type Safety, unit tests) without bothering with classical RIA related problems (JavaScript debug, multi-browsers support, etc.).
Typical use case:
GWT allows the development of complex interfaces that are difficult to create rapidly with standard web technologies:
- Text and image annotation interface,
- Tiling client to display and navigate in large images.
Shell Client
The Shell client is based on the client same library than the one embedded in Apogee.
With Nuxeo Shell, the client is presented with a command-line shell and a set of commands to directly access Nuxeo Services and Content Repository.
Technologies:
- Java OSGi,
- Groovy Scripting,
- Jline for the command line.
Key Points:
The Nuxeo Shell may be used in 2 modes:
- the interactive mode (commands line use),
- the non-interactive mode (scripts & batches).
The available commands are defined by an extension point and Java classes or by simple Groovy scripts. It is therefore very easy to add customized commands for each project.
Typical use cases:
The Nuxeo Shell may prove useful in several cases:
- administration access:
- command line use,
- scripting implementation of customized commands.
- Exec environment for scheduled commands,
- Data recovery tool,
- Low level performance test tool.