Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Category
Category
Enabling Glowroot on PaaS
Enabling Glowroot on PaaS Liferay DXP 2023.Q4+/Portal GA100+ Glowroot is included with Liferay in the /opt/liferay/glowroot folder. If you're running Liferay in a clustered environment, enable...
Using Client Extensions
Using Client Extensions Liferay DXP 2024.Q1+/Portal GA112+ Using client extensions, you can extend Liferay without using OSGi modules. Deploy them to any Liferay environment, whether you host it...
Payment Integration Client Extension Reference
Payment Integration Client Extension Reference Payment Integration Client Extension YAML Reference FieldValueDescription keyliferay-sample-commerce-payment-integrationSpecifies the unique key for...
Shipping Engine Client Extension Reference
Shipping Engine Client Extension Reference Shipping Engine Client Extension YAML Reference FieldValueDescription keyliferay-sample-commerce-shipping-engineSpecifies the unique key for the shipping...
Checkout Step Client Extension Reference
Checkout Step Client Extension Reference Checkout Step Client Extension YAML Reference FieldValueDescription activetrueSpecifies that the checkout step is active....
Using the Checkout Step Client Extension
Using the Checkout Step Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to create a new checkout step. This tutorial uses an example client extension from the...
Using the Payment Integration Client Extension
Using the Payment Integration Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to integrate with a new payment method in Liferay. This client extension from the...
Using the Shipping Engine Client Extension
Using the Shipping Engine Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to add a new shipping engine to Liferay. This client extension from the sample...
Development
Development Liferay's development platform makes developers faster and more efficient by providing a baseline set of features to build upon. Rather than start from scratch, you can start instead...
Building Applications
Building Applications For maximum compatibility with all of Liferay's deployment options, you can combine Liferay's Objects, Client Extensions, and other features and tools to build real-world...
Building a Custom Ticketing System
Building a Custom Ticketing System Liferay makes it easy for you to build digital solutions. For example, you can create a custom ticketing application with the styling and features needed for your...
Building a Time Off Requester
Building a Time Off Requester Liferay 7.4+ With Liferay Objects, you can build entire applications without writing code or deploying modules. Here, create a Time Off Request application using...
Using Object Data with React Charts
Using Object Data with React Charts Here you'll use Objects, Headless APIs, and custom element remote applications to create a dynamic chart for data dashboards. First, you'll set up a new DXP...
Deploying a Custom Application
Deploying a Custom Application You can use a custom element client extension to render a JavaScript application as a widget on a Liferay site page. The application is served by Liferay and...
Applying a Custom Theme
Applying a Custom Theme You can use different front-end client extensions to customize the look and feel of your site. Specifically, theme CSS type client extension can be used as an alternative to...
Ticket Management with Cron Jobs
Ticket Management with Cron Jobs Use Cron jobs to automate managing tickets. For example, have a job to run at a regular schedule to delete any tickets that have a resolution type of duplicate or...
Implementing a Documentation Referral System
Implementing a Documentation Referral System The ticketing system can be further enhanced with a documentation referral system. The system searches automatically for relevant documentation based on...
Defining a Custom Data Schema
Defining a Custom Data Schema The ticketing application requires custom data fields and selections. You use Liferay objects and picklists to define a custom data schema. Creating Custom Picklists...
Client Extensions
Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 When you want to extend Liferay, either by modifying its look and feel or by calling functions outside of Liferay, you...
Client Extension Reference
Client Extension Reference Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 You can find code examples for all types of client extensions in liferay-portal Frontend Client Extensions ...
Customizing Liferay's Look and Feel
Customizing Liferay's Look and Feel One of the easiest ways to get started developing on Liferay's platform is to modify its look and feel. You can change everything from its favicon to its entire...
Configuration as Code
Configuration as Code Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Liferay instance configurations are deployable with client extensions. For example, you can deploy OAuth2...
Instance Settings YAML Configuration Reference
Instance Settings YAML Configuration Reference You can use an instance settings client extension to configure a wide variety of Liferay configurations. Each configuration is referenced by its PID...
Working with Client Extensions
Working with Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Using client extensions, you can extend Liferay without deploying OSGi modules. Just like traditional...
Packaging Client Extensions
Packaging Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Client extension projects are built as deployable archives called Liferay Universal File Format Archives...
OAuth Headless Server YAML Configuration Reference
OAuth Headless Server YAML Configuration Reference You can define an OAuth headless server client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines...
Language Client Extensions
Language Client Extensions Liferay DXP 2025.Q1+/Portal GA132+ A language client extension adds new language keys or overrides existing keys and their translations. For example, you can translate...
JavaScript Import Map Entry YAML Configuration Reference
JavaScript Import Map Entry YAML Configuration Reference Usage Details This client-extension.yaml file defines a JavaScript import map entry client extension: assemble: - from: build/static ...
OAuth User Agent YAML Configuration Reference
OAuth User Agent YAML Configuration Reference You can define an OAuth user agent client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines an OAuth...
Bundling Resources in a JavaScript Import Map Entry Client Extension
Bundling Resources in a JavaScript Import Map Entry Client Extension Liferay DXP 2023.Q1+/Portal GA92+ JavaScript import map entry client extensions make JavaScript code or resources available to...
Client Extensions UI Reference
Client Extensions UI Reference Liferay's widget client extensions (custom element and iframe) register applications with Liferay, adding them as widgets to site pages. Additionally, you can style...
Micro Frontends
Micro Frontends Micro frontends extend the concept of microservices to the frontend side of development. You can build a fully-featured and powerful browser application that uses a microservice...
CSS YAML Configuration Reference
CSS YAML Configuration Reference You can define a CSS client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a CSS client extension definition: ...
Using a JavaScript Client Extension
Using a JavaScript Client Extension Liferay 7.4+ With a JavaScript (JS) client extension, you can run your own JavaScript on any page in Liferay without worrying about dependencies on Liferay code...
Using a Frontend Data Set Cell Renderer Client Extension
Using a Frontend Data Set Cell Renderer Client Extension Liferay 7.4+ You can use Frontend Data Set (FDS) cell renderer client extensions to customize the display for your data set. Use this type...
Using a Frontend Data Set Filter Client Extension
Using a Frontend Data Set Filter Client Extension Liferay DXP 2024.Q2+/Portal GA120+ Frontend data set filter client extensions define JavaScript functions for creating customizable filter...
Frontend Data Set Cell Renderer YAML Reference
Frontend Data Set Cell Renderer YAML Reference You can define a Frontend Data Set cell renderer client extension with a client-extension.yaml file. Usage Details The client-extension.yaml file...
Using a CSS Client Extension
Using a CSS Client Extension Liferay 7.4+ CSS client extensions introduce new CSS styling to pages. A deployed CSS client extension on a page adds to the page's existing styling, including theme...
JavaScript YAML Configuration Reference
JavaScript YAML Configuration Reference You can define a JavaScript client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a JavaScript client...
Using a Theme Favicon Client Extension
Using a Theme Favicon Client Extension Liferay 7.4+ With a theme favicon client extension, you can override the theme's favicon on the selected page. Start with the sample workspace to build and...
Using a Theme CSS Client Extension
Using a Theme CSS Client Extension Liferay 7.4+ With a theme CSS client extension, you can override the current theme's CSS files (main.css and clay.css) to change the look and feel of a page....
Using a Theme Sprite Map Client Extension
Using a Theme Sprite Map Client Extension Liferay DXP 2023.Q4+/Portal GA100+ With a theme sprite map client extension, you can override the default Clay sprite map used for icons on a page. Start...
Theme CSS YAML Configuration Reference
Theme CSS YAML Configuration Reference You can define a theme CSS client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a theme CSS client...
Theme Favicon YAML Configuration Reference
Theme Favicon YAML Configuration Reference You can define a theme favicon client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a theme favicon...
Theme Sprite Map YAML Configuration Reference
Theme Sprite Map YAML Configuration Reference You can define a theme sprite map client extension with a client-extension.yaml file. Usage Details This client-extension.yaml defines a theme sprite...
Using an Editor Config Contributor Client Extension
Using an Editor Config Contributor Client Extension Liferay DXP 2024.Q2+/Portal GA120+ Editor Config Contributor client extensions override existing CKEditor configuration in a...
Auto-Deploying Fragments
Auto-Deploying Fragments Liferay Portal 7.3 GA1+ or Liferay DXP 7.3+ If you're developing page fragments with your own tooling, you can deploy them by packaging them in ZIP files for importing via...
Adding Configuration Options to Fragments
Adding Configuration Options to Fragments Liferay DXP 7.2 SP1 Configurable options make your fragments flexible, minimizing the maintenance of similar fragments. For example, instead of creating...
Best Practices for Using Fragment Configurations
Best Practices for Using Fragment Configurations When you are creating page fragments for your site with your own configurations, it's your responsibility to use them in their HTML presentation...
Applying Styles to Fragments
Applying Styles to Fragments When you add a fragment to a page, you can use the sidebar menu to configure the fragment, including the Styles configuration tab. Use the Styles tab in the sidebar...
Editor Config Contributor YAML Configuration Reference
Editor Config Contributor YAML Configuration Reference Liferay DXP 2024.Q1+/Portal GA112+ This feature is currently behind a release feature flag (LPS-186870). Read Release Feature Flags for more...
Developing Page Fragments
Developing Page Fragments Page fragments are the building blocks for content pages. They're made from the three components of web pages: CSS, HTML, and JavaScript. To create a page you combine...
Creating a Contributed Fragment Set
Creating a Contributed Fragment Set Contributed fragment sets are deployable modules containing page fragments. Fragments in a contributed set can be used like regular fragments, but aren't...
Fragment Configuration Types Reference
Fragment Configuration Types Reference Below are the available configuration types for fragments. See Adding Configuration Options to Fragments for more on how to make a fragment configurable. ...
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions Along with standard HTML, CSS, and JavaScript, you can use Liferay-specific tags and attributes to define...
Fragment Specific Tags and Attributes Reference
Fragment Specific Tags and Attributes Reference Along with standard HTML, CSS, and JavaScript, you can use Liferay-specific tags and attributes to define editable sections, embed widgets, and more....
Fragments Toolkit Command Reference
Fragments Toolkit Command Reference The Fragments Toolkit is deprecated as of Liferay 2024.Q1+/Portal GA112+. See Alternatives for the Fragments Toolkit for more information. The Fragments...
Developing Page Fragments Reference
Developing Page Fragments Reference The Developing Fragments Reference provides essential information on key aspects of fragment development in Liferay. It covers command references, configuration...
Defining Fragment Drop Zones
Defining Fragment Drop Zones Drop zones are integral to building your content pages. With them, you can create unique page layouts and dynamic displays by defining areas within fragments where...
Including Default Resources in Fragments
Including Default Resources in Fragments You can include images files (e.g. .gif, .jpg, .jpeg, or .png) direct in your fragment sets. Keeping images with your fragments, rather than in other...