Publishable App Types in Marketplace
You can publish different types of applications in Marketplace.
| App Type | Runtime Architecture | Deployment Type | Typical Complexity |
|---|---|---|---|
| Cloud App | External | Liferay SaaS / Liferay PaaS | Medium-High |
| DXP App (OSGi) | Internal | Self-hosted / Liferay PaaS | Medium |
| Client Extension | External | Liferay SaaS / Liferay PaaS / Self-hosted | Low-Medium |
| Low-code Configurations | Internal | Liferay SaaS / Liferay PaaS / Self-hosted | Low |
| Composite App | Mixed | Liferay SaaS / Liferay PaaS / Self-hosted | Low-High |
Cloud Apps
Cloud Apps are managed externally and provided as non-deployable micro-service client extensions. These apps are available only for users with a cloud project linked to their Liferay accounts. Read Provisioning Cloud Apps to learn more.
| Cloud apps | Technical Implementation |
|---|---|
| Build | Standalone cloud-native (Spring Boot, Node.js) |
| Hosting | Cloud infrastructure (AWS, GCP, Azure) |
| Communication | APIs (REST, OAuth, webhooks) |
| Authentication | OAuth 2.0 or API tokens |
Cloud Apps are used for
-
Integration with third-party systems
-
SaaS-style products that extend Liferay functionality
-
Features requiring independent scaling, background processing, or external services
DXP Apps (OSGi Module)
These are traditional Liferay applications packaged as one or more OSGi modules and deployed into the Liferay runtime. Delivered as .lpkg files that you can install. Read Acquiring DXP Apps to learn more.
| DXP Apps | Technical Implementation |
|---|---|
| Build | OSGi bundles using Java |
| Build Tools | Liferay Gradle plugins |
| Deployment | /osgi/ modules or Marketplace |
| Runtime | Inside Liferay JVM; direct APIs |
DXP Apps are used for
-
Deep platform extensions
-
Custom portlets, services, workflows, and permissions
-
Use cases requiring direct access to Liferay internals
Client Extensions
Client Extensions are lightweight, deployable artifacts that extend Liferay without running inside the Liferay JVM. They communicate via APIs, and you can use them to apply custom code (JavaScript, CSS), embed external applications, or connect to remote services—without deploying modules or modifying Liferay’s core. Client Extensions are the primary customization method for Liferay, and the only method available for SaaS environments. These applications are downloadable and can be run and hosted anywhere. Read Client Extensions to learn more.
| Client Extensions | Technical Implementation |
|---|---|
| Build | Liferay Client Extension framework |
| Architecture | Frontend (JS/React) or Backend (Remote) |
| Packaging | ZIP files; Liferay tooling |
| Communication | Extension points and APIs |
Client Extensions are used for
-
Frontend customizations
-
External services that integrate with Liferay
-
Safer extensions that avoid JVM coupling
Low Code Configurations
Low Code configurations use Liferay built-in configuration tools rather than custom code, and are deployed through the UI. These applications are built with Fragments, Object Definitions, Data Sets, Page Templates, and configurations. Navigate through Low Code to learn more.
| Low-code configurations | Technical Implementation |
|---|---|
| Build | Liferay UI or JSON/YAML configurations |
| Packaging | Marketplace or batch client extensions |
| Requirements | No custom Java or backend code required |
Low-code configurations are used for
-
Fast customization of User Interface and data models
-
Vertical solutions with minimal development effort
-
Configuration-driven applications
Composite Apps
Composite Apps are composed of multiple app types working together, such as OSGi modules + client extensions + low-code elements.
| Composite Apps | Feature Category |
|---|---|
| Build | Collection of independent components |
| Packaging | According to component type |
| Delivery | Coordinated Marketplace solution |
| Architecture | Collection of independent components |
Composite Apps may include
-
OSGi modules
-
Client Extensions
-
Low-code configurations
-
External cloud services