<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Liferay</title>
  <link rel="self" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856" />
  <subtitle>Liferay</subtitle>
  <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856</id>
  <updated>2026-09-12T23:01:59Z</updated>
  <dc:date>2026-09-12T23:01:59Z</dc:date>
  <entry>
    <title>Liferay DXP 2026.Q3 - Release Webinar - Replay</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126723763" />
    <author>
      <name>Ben Turner</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126723763</id>
    <updated>2026-09-02T01:01:24Z</updated>
    <published>2026-09-02T00:58:00Z</published>
    <summary type="html">Hi everyone! I'm pleased to announce that the recording of the 2026.Q3 Release Webinar is now available for you to replay at your leisure! The recording includes details on key new features in the Q3</summary>
    <dc:creator>Ben Turner</dc:creator>
    <dc:date>2026-09-02T00:58:00Z</dc:date>
  </entry>
  <entry>
    <title>Enabling ModSecurity in Liferay PaaS</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126640680" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126640680</id>
    <updated>2026-08-18T19:21:59Z</updated>
    <published>2026-08-18T18:45:00Z</published>
    <summary type="html">This post supplements Liferay’s ModSecurity documentation with practical lessons learned from a real PaaS implementation. It explains how to route ModSecurity logs through /dev/stdout, reduce</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-08-18T18:45:00Z</dc:date>
  </entry>
  <entry>
    <title>When a CVE Isn't a Liferay Vulnerability</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126625355" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126625355</id>
    <updated>2026-08-17T16:56:54Z</updated>
    <published>2026-08-16T19:22:00Z</published>
    <summary type="html">A security scanner can identify third-party libraries in Liferay DXP that are associated with known CVEs, but that does not automatically mean Liferay is vulnerable. This post explains how Liferay</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-08-16T19:22:00Z</dc:date>
  </entry>
  <entry>
    <title>Liferay DXP 2026.Q3 Release Webinar</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126531996" />
    <author>
      <name>Ben Turner</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126531996</id>
    <updated>2026-09-02T00:57:46Z</updated>
    <published>2026-08-11T05:32:00Z</published>
    <summary type="html">Hi everyone, I'm super excited to announce that the Release Webinar for the 2026.Q3 release of Liferay DXP is coming in just a couple of weeks - on Wednesday, August 26th. Register now to guarantee</summary>
    <dc:creator>Ben Turner</dc:creator>
    <dc:date>2026-08-11T05:32:00Z</dc:date>
  </entry>
  <entry>
    <title>OIDC SLO in Liferay DXP</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126438487" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126438487</id>
    <updated>2026-08-05T17:04:04Z</updated>
    <published>2026-08-05T16:26:00Z</published>
    <summary type="html">OpenID Connect Single Logout is often misunderstood in the context of Liferay DXP, with many assuming it isn't supported. Beginning with Liferay DXP 2026.Q1, that's no longer the case. This article</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-08-05T16:26:00Z</dc:date>
  </entry>
  <entry>
    <title>Bringing Liferay to Cross-platform Development</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126437387" />
    <author>
      <name>Nestor Ledon</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126437387</id>
    <updated>2026-08-05T14:11:00Z</updated>
    <published>2026-08-05T13:37:00Z</published>
    <summary type="html">Liferay already provides a mature platform for content, permissions, users, sites, workflows, and headless APIs. What has been missing is a practical way to use that platform as the backend for a</summary>
    <dc:creator>Nestor Ledon</dc:creator>
    <dc:date>2026-08-05T13:37:00Z</dc:date>
  </entry>
  <entry>
    <title>No More Rebuild-and-Redeploy: Instant Hot Reload for Liferay React Client Extensions</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126396924" />
    <author>
      <name>Ankit Hadiyal</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126396924</id>
    <updated>2026-08-02T23:42:05Z</updated>
    <published>2026-08-01T10:10:00Z</published>
    <summary type="html">The Rebuild-and-Redeploy Loop Every Client Extension Developer Knows If you've built a React-based client extension (CX) for Liferay DXP, you know this rhythm well. You tweak a component - adjust some</summary>
    <dc:creator>Ankit Hadiyal</dc:creator>
    <dc:date>2026-08-01T10:10:00Z</dc:date>
  </entry>
  <entry>
    <title>Service Builder Compatibility Matrix</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126389560" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126389560</id>
    <updated>2026-07-31T18:51:50Z</updated>
    <published>2026-07-30T17:54:00Z</published>
    <summary type="html">Service Builder generates code based on the Liferay APIs it expects to target, so the newest Service Builder plugin is not always the right fit for every Liferay DXP version. This article explains how</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-07-30T17:54:00Z</dc:date>
  </entry>
  <entry>
    <title>Batch Imports Audit</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126385336" />
    <author>
      <name>Vitalii Koshelenko</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126385336</id>
    <updated>2026-07-29T12:05:29Z</updated>
    <published>2026-07-29T09:07:00Z</published>
    <summary type="html">Introduction Liferay's Batch Engine is the workhorse behind bulk data movement into Liferay. Instead of creating records one REST call at a time, you POST (or PUT, or DELETE) an array of items to a</summary>
    <dc:creator>Vitalii Koshelenko</dc:creator>
    <dc:date>2026-07-29T09:07:00Z</dc:date>
  </entry>
  <entry>
    <title>Installing Liferay DXP 2026.Q1 on Red Hat JBoss Web Server 6.2.3</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126381472" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126381472</id>
    <updated>2026-07-30T16:59:19Z</updated>
    <published>2026-07-28T19:28:00Z</published>
    <summary type="html">This post walks through installing Liferay DXP 2026.Q1 on Red Hat JBoss Web Server 6.2.3, using RHEL 10 as the reference environment. It focuses on the details that are easy to miss when adapting</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-07-28T19:28:00Z</dc:date>
  </entry>
  <entry>
    <title>Beyond the Prototype: What’s New in the Liferay Fragments Repository</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126355026" />
    <author>
      <name>Peter Richards</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126355026</id>
    <updated>2026-07-23T13:49:00Z</updated>
    <published>2026-07-23T07:12:00Z</published>
    <summary type="html">The Evolution of the Library When I wrote about scaling Liferay fragments with AI and automation earlier this year, the repository was already transitioning from a experimental lab into a structured</summary>
    <dc:creator>Peter Richards</dc:creator>
    <dc:date>2026-07-23T07:12:00Z</dc:date>
  </entry>
  <entry>
    <title>Liferay AI Hub Practical Recommendations: Agents, Instructions, Prompts &amp; Guardrails</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126354004" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126354004</id>
    <updated>2026-07-22T16:23:41Z</updated>
    <published>2026-07-22T15:14:00Z</published>
    <summary type="html">Building a useful chatbot with Liferay AI Hub involves more than wiring a model into a page. This post walks through the practical design decisions that matter when working with AI Hub agents,</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-07-22T15:14:00Z</dc:date>
  </entry>
  <entry>
    <title>KDXP: One Kotlin Codebase for Liferay Apps Everywhere</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126323612" />
    <author>
      <name>Nestor Ledon</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126323612</id>
    <updated>2026-07-16T01:28:45Z</updated>
    <published>2026-07-15T16:58:00Z</published>
    <summary type="html">Liferay already provides an impressive enterprise backend: authentication, users, roles, sites, documents, content, custom Objects, permissions, workflows, and headless APIs. What it has lacked is a</summary>
    <dc:creator>Nestor Ledon</dc:creator>
    <dc:date>2026-07-15T16:58:00Z</dc:date>
  </entry>
  <entry>
    <title>No More Guesswork: Deploy Your Liferay OSGi Modules in the Right Order, Automatically</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126295475" />
    <author>
      <name>Ankit Hadiyal</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126295475</id>
    <updated>2026-07-06T22:06:22Z</updated>
    <published>2026-07-06T17:40:00Z</published>
    <summary type="html">A Problem Every Liferay Developer Has Faced If you have worked on a Liferay DXP project with more than a few custom modules, this scene will feel familiar. You deploy all your modules together. Most</summary>
    <dc:creator>Ankit Hadiyal</dc:creator>
    <dc:date>2026-07-06T17:40:00Z</dc:date>
  </entry>
  <entry>
    <title>Beyond GET: Could HTTP QUERY (RFC 10008) Improve Liferay Headless APIs?</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126213193" />
    <author>
      <name>Laxit Khanpara</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126213193</id>
    <updated>2026-07-06T22:16:39Z</updated>
    <published>2026-07-03T09:27:00Z</published>
    <summary type="html">Introduction One of the biggest strengths of Liferay DXP is its Headless API ecosystem. Whether we're working with Custom Objects, Web Content, Documents, Commerce, or custom REST Builder APIs,</summary>
    <dc:creator>Laxit Khanpara</dc:creator>
    <dc:date>2026-07-03T09:27:00Z</dc:date>
  </entry>
  <entry>
    <title>Smooth Sailing: Migrating Liferay DXP from 7.2 to 7.4 (2026 Q1)</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126136896" />
    <author>
      <name>Madhukar Kumar</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126136896</id>
    <updated>2026-06-20T22:26:10Z</updated>
    <published>2026-06-20T12:47:00Z</published>
    <summary type="html">If you are planning this upgrade, here is your definitive, step-by-step technical playbook to take your local environment, database, and codebase from 7.2 to 7.4. Phase 1: Environment &amp; Local 7.2</summary>
    <dc:creator>Madhukar Kumar</dc:creator>
    <dc:date>2026-06-20T12:47:00Z</dc:date>
  </entry>
  <entry>
    <title>CE is sunsetted. What's your next move?</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126120230" />
    <author>
      <name>Ben Turner</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126120230</id>
    <updated>2026-06-19T06:12:02Z</updated>
    <published>2026-06-19T05:36:00Z</published>
    <summary type="html">If you're using Liferay Community Edition (CE), or are an SI that has customers who do, you probably know (well, if you've been anywhere near this site this year you definitely know!) that the final</summary>
    <dc:creator>Ben Turner</dc:creator>
    <dc:date>2026-06-19T05:36:00Z</dc:date>
  </entry>
  <entry>
    <title>Mission-Critical Email Delivery in Liferay</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126045225" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126045225</id>
    <updated>2026-06-20T22:25:47Z</updated>
    <published>2026-06-17T17:51:00Z</published>
    <summary type="html">A customer asked a simple question after a six-hour mail server outage: how can email delivery from Liferay be guaranteed? The answer led to an interesting architectural exploration involving JMS,</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2026-06-17T17:51:00Z</dc:date>
  </entry>
  <entry>
    <title>Call for Papers for DevCon - two weeks to go!</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126022454" />
    <author>
      <name>Ben Turner</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126022454</id>
    <updated>2026-06-15T05:27:38Z</updated>
    <published>2026-06-15T05:10:00Z</published>
    <summary type="html">If you've been paying attention recently on liferay.dev you have probably noticed the new banner promoting DevCon. It may still be a few months until our biggest event of the year takes place in</summary>
    <dc:creator>Ben Turner</dc:creator>
    <dc:date>2026-06-15T05:10:00Z</dc:date>
  </entry>
  <entry>
    <title>Alternative tool for migrating Liferay to PostgreSQL</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126015368" />
    <author>
      <name>Carlos Durán</name>
    </author>
    <id>https://liferay.dev/sv/c/blogs/find_entry?p_l_id=119785856&amp;entryId=126015368</id>
    <updated>2026-06-14T23:51:27Z</updated>
    <published>2026-06-13T22:37:00Z</published>
    <summary type="html">For some time now, PostgreSQL has been gaining so much ground that even Liferay itself has made the decision to replace MySQL with PostgreSQL. At this point, many of us are faced with the non-trivial</summary>
    <dc:creator>Carlos Durán</dc:creator>
    <dc:date>2026-06-13T22:37:00Z</dc:date>
  </entry>
</feed>
