Client Extension Framework in Liferay DXP - Everything You Need to Know
October 07, 2025
If you are planning to upgrade your project in Liferay 7.4 or Liferay DXP 7.4 then it is a good time to leverage Liferay Client Extension Framework in your project.
What is the Liferay Client Extension Framework?
Liferay DXP provide the much more out-of-the-box features for building portals or digital experiences as per our requirements, including low-code/no-code capabilities that empower users to implement data structures, store custom data, perform actions with complex business logic, and design user interfaces without writing code.
Liferay DXP provides many features and flexibility to build the custom portals by leveraging the Liferay out-of-the-box features, but as real-world business scenarios still sometimes we need to customize or extend the Liferay DXP out-of-the-box features to meet our unique requirements. So, for these customizations or extending the Liferay DXP out-of-the-box features Liferay provides the client extensions framework. Using the client extensions, we can customize or extend the portal functionality without being tightly coupled to Liferay’s core OSGi container.
Liferay DXP 7.4 introduced the client extensions. It allows developers to extend or customize the Liferay portal OOB functionality without being tightly coupled to Liferay’s core OSGi container.
Why should you migrate on Liferay Client Extension Framework?
Before the introduction of client extensions, we used the OSGI plugins and themes to modify or extend the Liferay functionality. When we use OSGI plugins or themes, for that we require in-depth knowledge of the Liferay DXP framework as the customizations were tightly coupled with Liferay itself. In client extensions we make loose coupling by using only Liferay APIs. This loose coupling also helps full on the migrations or upgrades time. Because it only depends on the APIs that rarely change between versions. Additionally, client extensions allow us to use our preferred programming languages or technologies to build and extend functionality.
Types of Client Extensions in Liferay DXP
Liferay supports following types of client extensions.
- Frontend client extensions: Liferay Frontend Client Extensions allow developers to extend and customize the Liferay DXP platform user interface without modifying its core code. They allow developers to add custom functionality, styling, and interactive elements to Liferay DXP frontend by including custom JavaScript, CSS, and integration with external frameworks like React, Angular, or Vue.js. Example: CSS Client Extension, Theme CSS Client Extension, Theme Favicon Client Extension, JavaScript Client Extension.
- Configuration client extensions: Configuration client extensions allow developers to change or add configurations like instance settings, OAuth details for authentication of your Liferay instance. Example: Instance Settings Client Extension, OAuth Headless Server Client Extension, OAuth User Agent Client Extension.
- Microservice Client Extensions: Microservice client extensions provide API endpoints to trigger within Liferay. When action events call your API, you can run any function you want outside of Liferay as a separate microservice. Example: Object/Workflow Action Client Extension, Object Validation Client Extension, Notification Type Client Extension, CAPTCHA Client Extension.
- Batch Client Extensions: Batch client extensions provide functionality to importing bulk data in Liferay instance. They leverage Liferay's batch engine framework and headless APIs to facilitate data migration and import processes. Example: Site Initializer Client Extension
Advantages of Use Client Extensions
- Simplified architecture: Separation between Liferay core and customizations.
- Simplified Upgrades and Maintenance: Loosely coupled with Liferay.
- Improved Stability and Scalability: Independent client extensions reduce the risks.
- Modern development: Build with React, Angular, Vue, or any other framework.
- Enhanced Performance: Improves portal speed and efficiency.
- Cloud-native friendly: Designed for CI/CD, Docker, Kubernetes, and microservices.
Client Extensions vs Traditional OSGi Plugins
Client Extensions and Traditional OSGi Plugins are both used for extending or modifying the existing Liferay DXP core functionality, Client Extensions are the more recommended approach to use instead of OSGI plugins in Liferay 7.4+
| Attribute | Client Extensions | Traditional OSGi Plugins |
| Coupling | Loosely connected with the Liferay core (Loose Coupling) | Tightly coupled with the Liferay core (Tight Coupling) |
| Architecture | Runs separately from Liferay's server | Runs inside the Liferay server |
| Upgrade Risk | Low | Higher |
| Technology Stack | Can use modern tools and frameworks (React, Angular, Vue, Node.js, etc.) | Mainly Java and OSGi-based approaches (JSP, React Portlet) |
| Stability | Higher | Lower / Moderate |
| Deployment Support | Supported on all Liferay environments: SaaS, PaaS, and Self-Hosted | Only supported on PaaS and Self-Hosted. Not supported on Liferay SaaS |
| Scalability | Independent scaling- built for the cloud and run separately | Limited scaling- all components/modules run within the JVM |
| Performance | Higher (compared to OSGi) | Low (because the JVM handles all plugins) |
| Use Cases | Frontend customization (create complex and modern widgets using JavaScript frameworks like React, Angular, or Vue) | Customize backend functionality and services (for example, how entity data is indexed or how permissions are checked) |
Conclusion
Liferay 7.4 DXP provide the client extensions functionality. In Liferay have multiple client extensions like Frontend, Configuration, Microservice, and Batch for different purpose. Liferay recommended to use client extensions instead of traditional OSGI Plugin modules for customizing or extending the Liferay OOB functionality.