Publishing Apps in Marketplace

Publishable App Types in Marketplace

You can publish different types of applications in Marketplace.

App TypeRuntime ArchitectureDeployment TypeTypical Complexity
Cloud AppExternalLiferay SaaS / Liferay PaaSMedium-High
DXP App (OSGi)InternalSelf-hosted / Liferay PaaSMedium
Client ExtensionExternalLiferay SaaS / Liferay PaaS / Self-hostedLow-Medium
Low-code ConfigurationsInternalLiferay SaaS / Liferay PaaS / Self-hostedLow
Composite AppMixedLiferay SaaS / Liferay PaaS / Self-hostedLow-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 appsTechnical Implementation
BuildStandalone cloud-native (Spring Boot, Node.js)
HostingCloud infrastructure (AWS, GCP, Azure)
CommunicationAPIs (REST, OAuth, webhooks)
AuthenticationOAuth 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 AppsTechnical Implementation
BuildOSGi bundles using Java
Build ToolsLiferay Gradle plugins
Deployment/osgi/ modules or Marketplace
RuntimeInside 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 ExtensionsTechnical Implementation
BuildLiferay Client Extension framework
ArchitectureFrontend (JS/React) or Backend (Remote)
PackagingZIP files; Liferay tooling
CommunicationExtension 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 configurationsTechnical Implementation
BuildLiferay UI or JSON/YAML configurations
PackagingMarketplace or batch client extensions
RequirementsNo 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 AppsFeature Category
BuildCollection of independent components
PackagingAccording to component type
DeliveryCoordinated Marketplace solution
ArchitectureCollection of independent components

Composite Apps may include

  • OSGi modules

  • Client Extensions

  • Low-code configurations

  • External cloud services