Blog
Artículos técnicos sobre desarrollo en Liferay DXP, extensiones de cliente y herramientas.
Migrating Liferay to PostgreSQL: A More Reliable Alternative to Liferay's Beta Tool
Liferay's own database migration tool is still Beta and unreliable in practice. Here's a third-party alternative, the exact 8-step migration procedure, and links to the tool and its docs.
When a CVE Isn't a Liferay Vulnerability: Presence vs. Reachability
A security scanner finding a CVE in a bundled library isn't proof that Liferay DXP is exploitable through it. Here's how Liferay's security team tells the difference — and why an unnecessary dependency upgrade isn't automatically the safer choice.
DXP Free Tier Licenses: Why the Product Version Doesn't Have to Match Your Runtime
A DXP Free Tier activation key stamped with a quarterly release that hadn't shipped yet looked like a bug. It wasn't — here's what the product-version field in a Liferay license actually means, and why it isn't a strict compatibility gate.
No More Guesswork: A Gradle Plugin That Deploys Liferay OSGi Modules in the Right Order
A Gradle plugin that maps your Liferay workspace's module dependencies, deploys them in dependency-safe waves, and confirms each one reaches Active in the Gogo shell before moving on — so you stop hand-ordering deployments.
Beyond GET: What HTTP QUERY (RFC 10008) Could Mean for Liferay's Headless APIs
RFC 10008 gives HTTP a QUERY method — safe and idempotent like GET, but with a request body like POST. Here's what it actually specifies, and where it would fit into Liferay's Headless REST APIs.
Installing Liferay DXP 2026.Q1 on Red Hat JBoss Web Server 6.2.3: Filling the Gaps in the Tomcat Guide
Liferay's official Tomcat installation guide gets you most of the way to a JBoss Web Server 6.2.3 deployment — but three assumptions (Java version, JVM module flags, and Liferay Home) will break a 2026.Q1 install if you follow it literally.
Instant Hot Reload for Liferay React Client Extensions
How the liferay-cx-hmr-setup CLI replaces Liferay DXP's 20-30 second Gradle rebuild-and-redeploy loop with sub-second, state-preserving Vite HMR for React client extensions.
KDXP: One Kotlin Codebase for Liferay Apps on Android, iOS, Desktop, and Web
KDXP is a new Kotlin Multiplatform and Compose Multiplatform SDK for building client apps on top of Liferay — one shared codebase targeting Android, iOS, desktop, and web, filling a gap left since Liferay retired its mobile SDKs.
A First Look at Liferay's AI Content Site Generator
Liferay AI Hub's Content Site Generator turns a single prompt into a multi-page site — pages, navigation, layout, and imagery — built from standard fragments and Style Books rather than throwaway generated code.
Structuring Liferay AI Hub: When to Build an Agent vs. Write an Instruction
Practical design guidance for Liferay AI Hub — when a task needs its own agent versus a reusable instruction, why several small agents route better than one big branching workflow, and how guardrails actually enforce limits a prompt can't.
Liferay Batch Imports Audit: Knowing What Happened to Your Data
A Control Panel tool that surfaces Liferay's Batch Engine task and error tables as a filterable, searchable UI — turning batch import troubleshooting from a support ticket and a database query into a few clicks.
What Liferay's Cloud Native Experience Actually Is
Cloud Native Experience (CNE) is Liferay's middle ground between fully self-hosted DXP and a fully managed cloud platform — GitOps, Terraform, and Kubernetes automation, with infrastructure ownership staying with you.
Why There's Almost No 'Liferay + Kotlin' Content Yet — and the KDXP Demo Changing That
Liferay has a mature backend but no modern cross-platform client story. A search for 'Liferay Kotlin' turns up almost nothing except a KDXP setup demo — here's what that demo actually shows.
Liferay's Database Upgrade Tool Gets Earlier Validation and Smarter Defaults
DXP 2026.Q1 reworks the database upgrade tool's rough edges: unsupported databases and bad paths are now caught before the run starts, JDBC settings can be reused automatically, and batch-insert optimizations are applied by default.
What's New in Liferay DXP 2026.Q2
Liferay DXP 2026.Q2's headline additions: Digital Sales Rooms in beta, a private beta of Liferay Data Platform, Cloud Native Experience for AWS reaching general availability, faster search reindexing, Style Books improvements, and a new Global Menu.
What's New in Peter Richards' Liferay Fragments Repository: 2026 LTS, a Visual Gallery, and Drop-and-Go Deploys
An update on Peter Richards' open-source Liferay Fragments repository: fragments re-verified against 2026 LTS, a built-in visual gallery, version-specific packaged releases, and a zip-based drop-and-go deployment workflow.
A Human-in-the-Loop Content Moderation Agent Built on Liferay Workflow and Gemini
Instead of a keyword filter, a Liferay Kaleo Workflow wired to Gemini 2.5 Flash reads intent and sarcasm before flagging a comment — augmenting human moderators rather than replacing them.
Skip the Headless API: Calling Liferay Objects Directly with ObjectEntryManager
Liferay's Headless REST API is the right tool for frontend and external integrations — but inside an OSGi module, calling ObjectEntryManager directly skips the HTTP round-trip entirely. Here's when that trade is worth making.
Getting Useful ModSecurity Logs Out of Liferay PaaS
Liferay's docs cover turning ModSecurity on and routing its log to the Console — they don't cover the config combination that quietly floods your logging pipeline. Field-tested directives for audit scope, log parts, and format.
OIDC Back-Channel Logout in Liferay DXP: Closing the Single-Logout Gap
Liferay DXP 2026.Q1 ships OIDC Back-Channel Logout — a server-to-server way to end a Liferay session the moment the identity provider's session ends. Here's how it works, how to wire it up, and what it doesn't cover yet.
RAG on Liferay Objects: Building a Distributor-Network Chatbot with a Local LLM
A walkthrough of pairing a Liferay Object with a local Ollama model to answer natural-language questions about live distributor data — and why running the LLM locally, not in the cloud, was the right call for this kind of business data.
Liferay Service Builder Compatibility Matrix: Matching Plugin Version to Target Platform
Liferay's Service Builder Gradle plugin defaults to the latest version — which can silently generate the wrong service code for an older target platform. Here's the version-matching table and workflow to avoid that.
Is Service Builder Still the Default? Rethinking Backend Architecture in Liferay
Service Builder used to be the automatic starting point for every Liferay backend requirement. With Liferay Objects, Client Extensions, and headless APIs now available, that default no longer holds — here's when Service Builder still earns its place.