Creating an Application with APEXlang

Learn how to create an application with APEXlang.

About APEXlang

APEXlang is a new open application specification language.

APEXlang and Generative Development

The open application specification language, APEXlang, allows for AI agent-based generative development of APEX apps. Using Codex, Claude, and other AI agents, you can perform spec-to-app, conversational, and vibe-coded app development.

Oracle distributes skills to help AI agents generate correct APEXlang syntax. Get skills from github.com/oracle/skills. You can sync skills using the built-in skills sync command in the Oracle APEX command line tool, SQLcl. SQLcl is distributed in SQL Develper and SQL Developer for VS Code.

APEXlang File Structure

Instead of exporting apps as large SQL scripts, APEXlang packages apps as human-readable, Git-friendly files. APEXlang exports are specifically designed to let AI systems, like ChatGPT and Claude, generate, read, and edit application code. An APEXlang package is a ZIP archive that contains:

Diagnosing APEXlang Import Errors

During application import and instance upgrade, Oracle APEX automatically repairs many known metadata inconsistencies when the correct fix can be determined unambiguously. Mature applications, especially those copied or upgraded over many releases, may still contain legacy metadata mismatches that do not affect runtime behavior but are reported by the stricter validation performed by apex validate.

To check an application, export it in APEXlang format and use SQLcl with the /nolog option to run apex validate -input against the exported directory or zip file. In SQLcl, use spool before validating to save the validation output for review. Alternatively, export and re-import the application in App Builder, then download the validation error CSV if errors are reported.

For each error or warning, review the referenced .apx file, line number, component, and message type, and review in VS Code or your favorite editor. Then, inspect the page/component in App Builder for additional context. Fix the issue either in App Builder and re-export, or directly in the APEXlang files, then validate again. Remaining issues usually require a manual decision, such as correcting stale references, removing unused or orphaned metadata, recreating a missing component, or replacing an invalid property value with one allowed by the current metadata model. Only errors require a fix. Warnings are only for informational purposes, but do not prevent a successful import.

APEXlang Deployment File

Use an APEXlang JSON deployment file to configure important deployment-related values related to application, workspace, subscription, and theme. This separates deployment details from the core app definition .apx files. For more information on APEXlang deployment files, see Understanding APEXlang Deployment Files in Oracle APEX Developer’s Companion.

Upgrading APEXlang Source with a New APEX Release

If your team stores APEXlang files in a Git repository and treats them as the definitive copy of your apps, see Upgrading APEXlang Source with a New APEX Release in Oracle APEX Developer’s Companion for details on how to import and re-export each application after upgrading APEX.

APEXlang Resources

For more information on working with APEXlang, see the following resources: