Skip to content
EnglishFrançais

Module

A module is the packaged unit of code that a team installs on Jahia to add features or rendering. A technical team delivers a project’s building blocks this way, from new content types to component rendering, integrations and extensions of the editing interface. Jahia’s own add-on features, such as Forms, are also delivered this way.

Definition and how it works

This packaging has a practical consequence. You evolve a site by deploying or updating a package. A package has its own version cycle, which makes it possible to ship a targeted change and keep control over what runs in production.

A module can carry the templates and views that render pages, the content type definitions that shape editing forms, extensions of Jahia’s user interface, static assets and back-end code. Development is done in Java or, since Jahia 8.2, in JavaScript. A JavaScript module is then a standard JavaScript (Node.js-style) project where templates and views are written in JSX or TSX, the markup syntax used with React, then turned into HTML by the server. Actions are currently written in Java. Editorial content lives in the repository (Content Repository).

Academy documentation: introduction to Jahia JavaScript modules

Sources: (Upcoming) Server-side actions & tooling, Jahia Academy (Jahia 8.2, page dated 2 June 2025); About Jahia JavaScript Modules, Jahia Academy (Jahia 8.2, page dated 8 October 2024); javascript-modules repository, Jahia, GitHub (library typings: OSGi access from server-side JavaScript), read 19 October 2026.

Related terms: Template Set · Content type definition · Content item · Content Type · Content Repository

Resources that cover this term

Module vs template set: the differences

A module brings code and definitions. The content editors create relies on those definitions but remains separate data, stored in the repository.

How a module compares with related concepts
ConceptWhat distinguishes it
Template SetA template set is a particular package, the one that provides the base used to create a website.
Content type definitionA definition declares a content type in a .cnd text file. It is one of the things a code package can contain.
Content itemA content item is data entered by an editor, based on a definition. It is not part of the delivered code.

Module in practice

A marketing team needs a testimonial block. Developers create a module containing the type definition, its view and its labels, test it on a staging environment, then deploy it to production. Once the module is enabled on the site, the new component appears in the editors’ tools. The rest of the code and existing content stay as they were. Before each deployment, the package’s dependencies and its compatibility with the Jahia version in place still need checking.

Frequently asked questions

What does deploying a module bring?

Features, definitions and rendering. Content is created or migrated through contribution, an import or a separate migration process. Conversely, removing or changing a definition shipped in the code can affect existing content. That kind of change should be prepared with a data migration plan.

Which languages can be used to build Jahia modules?

Java and, since Jahia 8.2, JavaScript. For the front end, JavaScript modules cover templates, views, content type definitions and labels. Actions are currently written in Java, and JavaScript modules can reach OSGi services from server-side code. The Academy page on upcoming server-side tooling announces more JavaScript support to come. The choice depends on the team’s skills and the nature of the need.