Liferay Workspace

AI Tools in Workspace Examples

In these examples, you prompt an AI agent in Liferay Workspace to build a site for an annual tech conference. The finished site features an event list visitors can browse and a registration form, routing each submission to a workflow requiring administrator approval. Use these examples to test several of the workspace’s developer skills on one project.

Set up the workspace once, then build the site using four iterative prompts: the data model, the pages, the brand, and the registration flow. Submit each prompt to the agent and verify the result on your running server.

Prompt the agent again to fix any missing details before moving on to the next example, as agent output varies between runs and between models. The first two prompts automatically instruct the agent to commit its work to the workspace’s Git repository. Ask the agent to commit manually after you finish the third and fourth examples.

For information about the workspace’s rules and skills, see AI Tools in Workspace.

Beta

The developer skills are in beta. An agent’s performance depends on several variables, including but not limited to harness setup, model selection, and effort level.

Setting Up the Workspace

Before you start, install an AI agent as described in AI Tools in Workspace, Git, and Blade 8.0.2+. Skip the workspace creation steps in that guide, as step 1 below creates the workspace for this scenario.

  1. Create a workspace named events-workspace and change into its folder. This example uses Liferay DXP 2026.Q3.9:

    blade init -v dxp-2026.q3.9 events-workspace
    
    cd events-workspace
    
  2. Initialize a Git repository in the workspace and commit its starting files:

    git init
    git add .
    git commit -m "Initialize workspace"
    

    The workspace’s .gitignore excludes /bundles and build output to keep them out of your commits.

  3. Download the Liferay DXP bundle:

    blade server init
    
  4. Copy your Liferay DXP activation key (XML file) into the workspace’s bundles/deploy folder. If you don’t have a key, see How to Get a Free Tier Key.

    Don’t start the server yourself. The agent starts it.

  5. Start your agent at the workspace root. For Claude Code, run claude. For any other agent, point it to the .agents folder as described in AI Rules. Confirm the agent found the skills by prompting:

    What Liferay skills are available in this workspace?
    

    Checkpoint: The agent lists the workspace’s Liferay skills, such as manage-objects and manage-pages.

Before it starts the server, the agent may set up the Liferay MCP server and ask you to restart the agent. If it does, restart the agent at the workspace root and resubmit your prompt.

The default administrator login is test@liferay.com with the password test. For a bundle that has never started, the agent writes development-only properties that skip the Terms of Use and password change screens. For a previously started bundle, the agent prompts you to sign in, accept the Terms of Use, and change the password. Provide a new password to the agent when asked for updated credentials, as Liferay rejects reusing the current password.

Creating the Data Model

Submit the first prompt to describe the information the site stores:

I'm planning our annual tech conference and I want to put together a site for it, showing what events are happening and letting people sign up for individual events.

Start with the information we need to store. For each event: a name, a description, when it starts and ends, where it is, and how many people we can fit. For everyone who signs up: their name, email, company, any dietary requirement picked from a set list. Create multiple sample events, with every signup belonging to one event.

I also want a way to see the current list of signups in the control panel.

Set that up, commit it, and show me it's working. I want to see an event and a signup saved.

Verify the agent generated two published objects in a one-to-many relationship: one for events and one for sign-ups. Check that the sign-up object’s dietary requirement field uses a picklist. Also verify it saved an event and a sign-up and committed its work.

Checkpoint: Sign in at http://localhost:8080, open the Global Menu (Global Menu), and navigate to Control Panel → Objects. Find the event and sign-up objects. Open the sign-ups list the agent added to the Control Panel to view the saved sign-up. Run git log in the workspace to confirm the agent’s commit.

Creating the Pages

Submit the second prompt to generate public-facing pages:

Now create the pages people will actually see.

A home page that opens with something eye-catching about the conference and then shows the events coming up. A page listing every event with its date, where it is, and how many places are left. And a signup page with a form asking for everything we need, where the person picks which event they want.

Build the pieces so my team can rearrange them or reuse them on other pages later. Then commit and show me the pages working.

Verify the agent generated three pages built from reusable fragments. Check that the home page opens with a banner followed by the upcoming events. Confirm the events page lists each event with its date, location, and remaining capacity, and the sign-up page’s form maps visitor input to the sign-up object.

Checkpoint: If the agent created a site for the pages, go to that site. Open the Site Menu (Site Menu), expand Site Builder, and go to Pages. Open each of the three pages and compare them against the expected descriptions.

Applying the Brand

Submit the third prompt to set the site’s colors, heading typeface, header, and footer:

The site still looks like the software it was built with. Give it a look of its own: deep navy with amber accents, and a bold, heavy typeface for the headings.

Every page should carry the same branded header with the conference name and the menu, and a footer with our contact details.

Verify the agent applied the navy and amber palette and the heavy heading typeface across the site using a style book and site-level CSS. Confirm each page shows the same shared header with the conference name and the menu, and a footer with contact details.

Checkpoint: Open each page and confirm it shows the new colors, the heading typeface, and the shared header and footer.

The finished event registration site's home page shows the navy and amber brand, the shared header, and the upcoming events.

Building the Registration Flow

Submit the fourth prompt to connect the sign-up form to workflow and instruct the agent to test the flow:

Now make the signup form actually work.

When someone fills it in, their details should be saved against the event they picked and start out as pending, and they should land on a dedicated thank-you page. Don't build anything for sending email, we'll connect our mailing tool later. However, this sign up should end up in the platform's workflow system for review and approval of sign up by the Admin user.

Then run through it yourself from start to finish and tell me what worked and what didn't, including the workflow approval.

Verify the form saves each submission against the chosen event with a pending status and redirects the visitor to a thank-you page. Confirm each sign-up routes to My Workflow Tasks for administrator approval. Check that the agent runs the flow end to end and reports its results.

Checkpoint: Submit the sign-up form and confirm you land on the thank-you page. Click your avatar and select My Workflow Tasks to locate the pending sign-up in the Assigned to My Roles tab. Assign the task to yourself, then approve it from the Assigned to Me tab. For information about reviewing workflow tasks, see Reviewing Assets.

A pending sign-up waits in My Workflow Tasks for the administrator to approve.