2021 required registration

2021's /dev/24 was again free of charge, but due to the interactive nature at Workadventure, it required registration.
That was up until hour 20 of the 24h event though, and we can't take any more registration now. Sorry.

Looking for 2020 content?

While we're preparing the 2021 event (and long after we're done with it) you can find the full 2020 content on its own archived page.

2021 was great

/dev/24 2021 is and was for you, to get on track with all of the new features that are to be found and discovered in Liferay Portal and Liferay DXP 7.4. And if you've either created or discovered them, this is and was a place to brag about your creations and findings.
/dev/24 is organized as a grass roots event, from and for developers and other people working with Liferay on a technical basis.
Here is what you have seen (or missed) on 3. + 4. November 2021​​​​​​​

2021 was sponsored

Thank you, USU, for your support!

​​​​​​​Please visit them and check them out.


Escape the entrance: Enter early

profile picture

There is no presenter.

2021-11-03 10:00 UTC

Our interactive world opens at 10:50am UTC, but you can come early, solve a few fun puzzles to get into the event space before everybody else. You can also talk to someone, or collaborate with them to enter together. Or just see what happens behind the scenes, before the venue opens.

Yes, this is a reverse escape game where you don't want to get out, but in. Be the first one to see the world while it's being prepared for massive exchange of information during the coming 2 days

Opening, Agenda and Structure


2021-11-03 11:00 UTC

We're opening the doors for 2021 and let you into this year's world.

2021 will be interactive, and you'll have a lot more opportunities to get your own message heard than last year.

InfoListProviders: Beyond Liferay entities

profile picture

Fabian Bouché

2021-11-03 11:15 UTC

Liferay has recently introduced InfoListProviders.
Most of the examples describe how you can map Liferay entities to InfoLists.
But you can also write InfoListProviders that integrate with third party data providers.
During this session, we'll demonstrate how we can integrate with a music / discography metadata provider.

The power of Collection Providers

profile picture

Daniel de Francisco

2021-11-03 11:51 UTC

Did you ever find the asset selection capabilities of the Asset Publisher not enough for your use case? Do you wonder how you could leverage Liferay commerce data to create a custom collection of Liferay assets? Let me show you how to use Collection Providers to have your own custom asset selection based on Liferay Commerce data and how to use it in an Asset Publisher or directly on a Content Page with the Collection Display fragments.

Automation of Liferay customization. Can a simple functionality test save your neck?

profile picture profile picture

David Gutiérrez & Meg Jedraszak

2021-11-03 12:17 UTC

When building customized Liferay solutions, teams often deal with very specific requirements. It may be even more challenging to secure the quality of the core functionality in these custom components when working in an agile way. In order to make a workflow of continuous integration easier and less stressful, we want to show an example of automation tests implementation that can be easily introduced in every based-on-Liferay project.

What's new in Commerce

profile picture

Jeff Handa

2021-11-03 12:53 UTC

A lot has happened during one year - and we'll see what it was:

What new features are being introduced in Commerce 4.0? Let's find out.

Ask Dave and Stian anything

profile picture

Dave Nebinger and Stian Sigvartsen

2021-11-03 13:31 UTC

You might know Dave, you might know Stian - and if you want to know what they know: Here's your opportunity to ask.

Please check Community Slack, so that they can prepare. And be there to refine your question.

Live Coding Session Warm-up

profile picture

Louis-Guillaume Durand

2021-11-03 14:07 UTC

It's time to prepare a live coding session! Pay attention to the #event-devlife Slack channel to help Louis-Guillaume defining what we are going to see on this session. 

Things might go wrong, things might go well. It's live! So stick around and see for yourself.

Let’s revive the Liferay Marketplace together

profile picture

Sébastien Le Marchand

2021-11-03 14:43 UTC

Since its launch more ten years ago, Liferay Marketplace seems to have lost some attention, both from the community and from Liferay Inc. In this session I will discuss 10 propositions to reawaken the “hype” and interese around the Liferay Marketplace, and make it more impactful on the Liferay ecosystem.

These 10 propositions aims to be  simple, quick to deploy,  pragmatic and above all inexpensive. There is 5 propositions addressed to the whole Liferay community, as users or potential users of the Liferay Marketplace,  and 5 concrete, well-defined and affordable requests to Liferay Inc.

The last but not the least, you will be able to give your feedback about these propositions.

Beyond these 10 particular propositions, this session is the opportunity to start a more global  discussion all together about the future of Liferay Marketplace, about the expectation of the community and about the intentions of Liferay Inc.

Fantastic Liferay API features and where to find them

profile picture

Luis Miguel Barcos

2021-11-03 15:21 UTC

In this talk, we will show some not-so-well-known API tricks and features hidden in Liferay APIs. Features that can be very useful for you and maybe you were missing. Some of them are:

  • Nested fields
  • API multi-language support
  • Aggregations
  • Field restrictions on responses
  • Unauthenticated requests
  • Existing APIs extensions
  • GraphQL namespaces
  • and more tricks

Join us to know these fantastic API features and where to find them

Improving TreeFilter component performance in Content Dashboard

profile picture profile picture

Beltrán Rengifo & Clara Izquierdo

2021-11-03 15:58 UTC

The audience will learn about how to detect, analyze and solve performance problems in a React JS component:

  • Detect by performing heavy tests
  • Analyze by concluding over the metrics
  • Solve by implementing the most efficient and affordable tasks

We considered the necessity to audit the performance of our React TreeFilter component and we want to share the results we achieved.
In this path, we’ll show some JS implementation inside React components, how we tested the performance using the React’s OOTB Profiler component, and the final fixes we implemented in master.

Clara will present the component, it's main duties and the drawbacks we detected along the way. Beltrán will show the performance test, the results and the implementation of the improvements.

Publications: A New Way to Stage Content

profile picture

David Truong

2021-11-03 16:25 UTC

Users will learn how to use Publications and discover the benefits.

Creating a Liferay User Group (LUG)

profile picture

Louis-Guillaume Durand, Anne Durey, Fernando Fernandez, Álvaro Saugar, Sébastien Le Marchand and more!

2021-11-03 17:03 UTC

Is there a Liferay User Group next to you? Did you know you can create one in your city/country?

Come and learn how to do it from experiences in Portugal, France, Spain and Brazil. Help the community around you gather and learn from each other. 

Check out the existing LUGs and sign up to become a member.

Live Coding Session

profile picture

Louis-Guillaume Durand

2021-11-03 17:38 UTC

It's live coding time! In this session you will learn something new, teach someone something new or at least have fun seeing how things turn out. 

Liferay 7.4 “Code-Less” Site Implementation

profile picture

Vitaliy Koshelenko

2021-11-03 19:01 UTC

Liferay 7.4 site creation without a custom theme, but with leveraging master pages, page templates, fragments, widget templates and style books.

  1. Overview of different approaches for site creation (with custom theme or not, +/-);
  2. Target site overview (content site, like learn.liferay.com);
  3. Site creation
  4. Implement a “header” fragment:
    1. Header structure/styling;
    2. Editable fields (logo/sitename/etc.);
    3. Add built-in widgets to the header fragment (available with lfr-widget-xxx, and not): navigation, search, language, personal bar.
  5. Implement a “footer” fragment:
    1. Editable fields;
    2. Links/navigation;
  6. Create a Master Page template:
    1. Define the page structure;
    2. Place/configure header/footer;
    3. Configure DropZone;
  7. Add “Left navigation” to master page (navigation widget);
  8. Implement a custom widget template for the left navigation;
  9. Create a Page Template from Master Page;
  10. Create pages from Page Template;
  11. Fill pages with demo content;
  12. Setup a search page;
  13. Implement a widget template for Search Results;
  14. Create a custom StyleBook and adjust styling;
  15. Overview created site;
  16. Conclusions;
  17. Questions/answers.

Liferay Objects, what are they good for

profile picture

Neil Yashinsky

2021-11-03 19:52 UTC

We will begin with an introduction to the new Liferay Objects capability, and the parts that make it work.  We'll compare Liferay Objects with alternative approaches like Forms and Service Builder, so you can understand the nature of the overlap, and understand which approach best fits your business and technology needs.  I will build out a simple example to demonstrate how one can build a working application in a few minutes.  I will then show a more sophisticated example built by a colleague to better illustrate the power of a fully operational Liferay Object app.  This topic is aimed at Architects and developers.

Form your form fields in Forms: From 'hard to say' to 'easy to do'!

profile picture

Martín Domínguez

2021-11-03 20:28 UTC

The main target of this session is letting know what are the keys when you want to leverage all the power of forms and create your own custom fields. No matter what, if it can be done with React you can use it in your forms.

Although actually the Forms and Docs teams are working hard to document this feature and provide examples with great snippets of code trying to shed some light about the different pieces that you can use.

Modern Applications using Liferay 7.4

profile picture

Wes Kempa

2021-11-03 21:20 UTC

"Liferay continues to invest in features that make low-code development possible. Using Liferay Objects, Collections, Forms, and Fragments, teams can quickly make fully functional systems that are more powerful and require less customization than ever before!

Since App Builder is deprecated (and fully removed) within the 7.4 release, Liferay Objects is intended to fill that gap. Through the use of this slick new feature, we will be investigating what we can do in the low-code to deliver both powerful functionality and the great user experience that you would expect from Liferay’s modern UI experience.

In this session, we will build a functional application that demonstrates Liferay’s ability to deliver value quickly and overcome the historical need to spend days of development creating service builder entities, CRUD UIs, integration with Liferay’s asset frameworks, and creating custom rest endpoints. Liferay Objects are automatically integrated with other Liferay Frameworks like Workflow, Permissions, Asset so that they can be immediately used alongside any out-of-the-box capabilities. It seems unbelievable to many! The great news is that it is not only possible in 7.4, but you can do it too!

Let’s build great things together!"

Escape the entrance: Enter early, day 2

profile picture

there is no presenter

2021-11-04 10:00 UTC

Our interactive world opens at 10:50am UTC, but you can come early, solve a few fun puzzles to get into the event space before everybody else. You can also talk to someone, or collaborate with them to enter together. Or just see what happens behind the scenes, before the venue opens.

Yes, this is a reverse escape game where you don't want to get out, but in. Be the first one to see the world while we freshen everything up from yesterday's event, to be prepared for the second day.

Opening of Day 2, Agenda and Welcome Back


2021-11-04 11:00 UTC

We're opening the doors for 2021's second day and let you into this year's world.

What have you learned yesterday? Who did you meet? What went well, what could we work on?

2021 will be interactive, and more so on the second day, hopefully after a refreshing sleep.

The Frontend Developer's Guide to the Galaxy: Remote Apps in DXP

profile picture

Carlos Lancha

2021-11-04 11:15 UTC

Participants will learn what a Remote App is, why they are useful, how to create one in DXP and place it as a widget in a Page. How to communicate with DXP from the Remote App with DXP using the SDK we've created.

I'm planning to present what all of it is in theory and create a custom Remote App from scratch, explaining liferay's SDK and what can be done with it.

How to cook your custom theme with stylebooks

profile picture profile picture

Francisco García and Roselaine Marques

2021-11-04 11:52 UTC

In this session the audience will learn about how to create stylebooks for their custom themes and also how to use them to edit any element they want within their platform. This session is applicable for anyone who wants to learn about a new way to customize their platform!

Live Coding Session Part 2

profile picture

Louis-Guillaume Durand

2021-11-04 12:28 UTC

It's live coding time! In this session you will learn something new, teach someone something new or at least have fun seeing how things turn out. 

Building Your First Liferay Custom Application With Angular UI

profile picture

Mahmoud Hussein Tayem

2021-11-04 13:02 UTC

Demonstrate the ease of building a whole new business application using Liferay Service Builder along with PWA Apps for the User Interface.
The target audience can be front end developer or backend developer who would like to explore how to extend Liferay, Business user can attend this session to understand the flexibility of Liferay and see where they can employ Liferay for their new business requirements.

Increase portlet development productivity with Liferay code generator

profile picture

Aristide Cittadino

2021-11-04 14:00 UTC

The audience will learn how to automate the repetitive work of every developer thanks to the Liferay-Gen. So, we will teach how to generate code automatically and constructs the whole necessary infrastructure: The Liferay Workspace, the Service Builder modules, and the corresponding Liferay MVC portlet modules. They will learn how to optimize the Liferay development process by doing more portlets in less time according to Liferay compliance standards

Make Collections shine with the Collection Display fragment

profile picture

Ruben Pulido

2021-11-04 14:36 UTC

Liferay 7.3 introduced functionality to display Collections on Content Pages through Collection Display Fragments.

Liferay 7.4 has brought along multiple improvements around displaying Collections in Content Pages.

In this session you will learn how easy it is now not only to display your collection items using the Collection Display Fragment but also how to:
- Enable pagination and choose between different pagination types
- Pre filter the items returned by collection providers
- Use Collection Filter fragments to allow end users to filter collection items themselves
- Display items related to one specific item using Related Items Collection Providers

This session is targeted at developers using Liferay who want to be knowledgeable about displaying collections in Liferay.

APIs, this is the way

profile picture

Javier de Arcos Velilla

2021-11-04 15:12 UTC

In this presentation, we will go back to the fundamentals and talk about APIs best practices that will help you design and develop your API into Liferay to create great API experiences. Some of them will be: how to define your URIs, use the HTTP methods and response status code correctly, design your representations, add hypermedia capabilities, provide advanced features and apply them to GraphQL as well as REST.

In Liferay, we rely heavily on good practices, and following them will ease your development experience as well as the user experience. We will go from theory to practice to see how following good practices affect the usage of Liferay tools as REST Builder to create your custom API.

Join in to know a little more about API design and Liferay API development tools

React/VueJS in Remote Apps, Objects, REST... to CRUD something.

profile picture

Brian Chan

2021-11-04 15:47 UTC

Brian will demonstrate how a backend developer who only knows Java can still demo how to use React and VueJS in Remote Apps, using Objects and REST... to make a quick CRUD app in 7.4.

Ask Brian anything

profile picture

Brian Chan

2021-11-04 16:25 UTC

If you ever had an open question about Liferay, or that famous story with the Toyota and the helicopter - this is the time to ask. Liferay's original author, company founder and Chief Software Architect answers everything.

Save the Thread pool, use Async HTTP clients

profile picture

Fabian Bouché

2021-11-04 17:01 UTC

Developers frequently have to integrate with backend web services (REST, SOAP...).
But beware of slow web services as they are going to block your worker threads while they wait for a response. And the pool of threads has a limited head count.

I've written two blog posts on the topic :

The objective of the session is to raise awareness about the Thread pool and to give one possible solution to this issue: taking advantage of HTTP client libraries able to implement non blocking processing, relying on promises rather than sync HTTP calls.

Unraveling Liferay Objects: What is the magic behind it?

profile picture

Gabriel Albuquerque

2021-11-04 17:36 UTC

In this presentation, you will see an overview of the Objects architecture and code, going through the following topics:

  • How is a custom object created?
  • How is this custom object stored in the DB?
  • How can I publish and extend my custom object?
  • How can I deal with custom object permissions?
  • What is a system object?
  • What is the future of System Objects?

Including some other architecture details.
It’s time to go beyond code and reach experiences.

Boosting your application with Site Initializer

profile picture profile picture

Keven Leone, Jose Abelenda

2021-11-04 18:01 UTC

You will learn how to build resources to be processed by Site Initializer that creates an entire site using documents, fragments, pages, remote apps, Liferay objects, web content, and other assets. Also how to use Remote Apps to create React applications quickly and flexible hosted in anywhere.

How to make it possible to run BPMN process in Liferay

profile picture

Alexey Kakunin

2021-11-04 18:52 UTC

In this presentation Alexey is going to:

  • Explain default workflow implementation in Liferay - how Liferay using workflow and how it is integrated (through Workflow API and Liferay Service Bus)
  • Default Workflow Engine - Kaleo - why it is good and why it is not always good
  • How technically it is possible to replace Kaleo by some other implementation
  • Demonstrate how it is working (to show some "magic"!)

Liferay User Groups Brainstorming Session

profile picture


2021-11-04 20:10 UTC

You are part of the community, so come and help us brainstorm ideas for what's to come to Liferay User Groups in 2021. If you are organizing a LUG, join us on stage. If you attend meetings, join us giving feedback of what you want to see. If you're not still a LUG member, come and find out how to participate and connect with members.

The 7.4 Tour

profile picture

Ben Turner

2021-11-04 21:00 UTC

You've made it here, you got to know the ins and outs of the 7.4 new features, now it's time for a full official tour to show you the big picture. 

Reducing complexity by using pure CKEditor 4 in Rich Text experiences

profile picture

Diego Nascimento

2021-11-04 21:31 UTC

The goal of this presentation is to:

  • Introduce why We're deprecating AlloyEditor and migrating to a strategy using directly CKEditor 4
  • Show the process(challenges, methodology) involved in migrating internal use cases of AlloyEditor in pure CKEditor 4
  • Discover opportunities for the future of Rich Text Content editing in Liferay DXP



2021-11-04 22:30 UTC

Let's reflect on what we have seen, and collect some feedback already.

Looking for 2020 content?

While we're preparing the 2021 event (and long after we're done with it) you can find the full 2020 content on its own archived page.