Build UI5 Apps Purely in ABAP – no JavaScript, OData, or RAP needed.
Just like the good old days when Selection Screens and ALVs delivered full UIs from a few lines of ABAP. Designed with a minimal system footprint, it runs in both on-premise and cloud environments.
Documentation • Live Demo • Samples • Issues • LinkedIn • Slack • Sponsor
- User-Friendly – Implement a single interface to build a complete UI5 app, purely in ABAP
- Minimal Footprint – Needs only a simple HTTP handler – no BSP, OData, CDS, or RAP
- Cloud & On-Premise Ready – Runs in ABAP Cloud and Standard ABAP environments
- Broad Compatibility – Supports all ABAP releases from NW 7.02 to ABAP Cloud
- Easy Installation – Install via abapGit – no extra app deployment needed
Check out the Getting Started Guide and jump in:
CLASS zcl_my_app DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
ENDCLASS.
CLASS zcl_my_app IMPLEMENTATION.
METHOD z2ui5_if_app~main.
client->message_box_display( `Hello World` ).
ENDMETHOD.
ENDCLASS.That's it – your first UI5 app is ready and abap2UI5 handles the rest! 🎉
Next stop: the samples – hundreds of ready-to-run apps, from data binding basics to OData, RAP, and Launchpad integration – and the docs for everything else.
Your entire app is one ABAP class implementing z2ui5_if_app. The browser loads a generic UI5 shell once; after that, every user interaction is one HTTP/JSON roundtrip: the framework restores your app's state, calls main, and sends the view back:
%%{init: {"sequence": {"useMaxWidth": false}}}%%
sequenceDiagram
participant Browser
participant ABAP
Browser->>ABAP: GET
ABAP-->>Browser: UI5 shell (once)
loop each interaction
Browser->>ABAP: event + model
ABAP-->>Browser: view + model
end
Everything in between is handled for you:
- Data Binding –
client->_bind( var )connects an ABAP variable to a UI5 control; user input flows back beforemainruns - Events –
client->_event( |SAVE| )wires any UI5 event to a name you check withclient->get_event( ) - Rendering – views are plain UI5 XML built in ABAP with
z2ui5_cl_ui5_view_builder; every control, property, and aggregation is available 1:1 - State – your app object is serialized and restored on every request, so attributes simply keep their values
Popups, navigation, messages, and frontend actions travel the same protocol – you never touch JSON, HTTP, or JavaScript. The architecture is described in UI5 Over-the-Wire.
abap2UI5 apps are a perfect fit for AI assistants: one ABAP class and nothing else – no service, no frontend project, no deployment pipeline. One file to write, hundreds of samples to learn from, and the abap2UI5 linter to verify the result without an SAP system.
Paste this into ChatGPT, Claude, Copilot or any other assistant before asking for code:
Before writing any abap2UI5 code, fetch and follow these two files. They
describe the current APIs and take precedence over anything you already know:
https://raw.githubusercontent.com/abap2UI5/abap2UI5/main/docs/agents/building-apps.md
https://raw.githubusercontent.com/abap2UI5/abap2UI5/main/llms.txt
Build views with z2ui5_cl_ui5_view_builder, one ABAP class per app, and stay
inside the templates and APIs those files describe. If something is not
covered there, say so instead of inventing it.
Claude Code users can add the mcp-server — validate, deploy, and screenshot apps without an SAP system — with one line: claude mcp add abap2ui5 -- npx --yes @abap2ui5/mcp-server. The full setup is described in Building with AI.
- Field Service Management Mobile Logging using abap2UI5 (Decabase Blog - 22.08.2026)
- UI5 in ABAP Cloud (without RAP or Fiori Elements) (Decabase Blog - 17.08.2026)
- Fiori-type Apps built 100% with ABAP (Logali Group - 23.04.2026)
- Webinar on Launchpad Integration (YouTube - 30.07.2025)
- Featured on SAP Developer News (YouTube - 21.03.2025)
- Webinar on Creating UI5 UIs from ABAP with abap2UI5 (YouTube - 12.12.2024)
More talks, features & blog posts (2023–2024)
- Highlighted in the Boring Enterprise Nerdletter (YouTube) (Newsletter - 11.12.2024)
- Webinar on Developing UI5 Apps with abap2UI5 (YouTube - 07.11.2024)
- Featured on SAP Developer News (YouTube - 14.06.2024)
- Check out Cust&Code Videos with abap2UI5 (YouTube - 20.05.2024)
- Running abap2UI5 Backend in Browser (LinkedIn - 02.04.2024)
- Highlighted in the Boring Enterprise Nerdcast (YouTube - 29.01.2024)
- Featured on SAP Developer News (YouTube - 15.12.2023)
- Advent of Code 2023 with abap2UI5 (SAP Community - 27.11.2023)
- Showcased at SAP TechEd 2023 (YouTube - 02.11.2023)
- Part of the SAP Developer Code Challenge (SAP Community - 17.05.2023)
- Highlighted in the Boring Enterprise Nerdletter (YouTube) (Newsletter - 08.03.2023)
- Featured on SAP Developer News (YouTube - 26.01.2023)
This project thrives thanks to its contributors and these outstanding open-source projects:
- Code versioning & distribution via abapGit (contributors)
- Static Code Checks via abaplint (contributors)
- Unit Testing via open-abap (contributors)
- JSON handling through ajson (sbcgua)
- Runtime serialization using S-RTTI (sandrarossi)
- ABAP Cloud & Standard compatibility with Steampunkification (contributors)
- Syntax downporting via the downport branch by abaplint (larshp)
- Namespace renaming with abaplint (larshp)
- Browser testing with Playwright (contributors)
- Live demos built from web-abap2UI5 (larshp)
- Code cleanup with ABAP Cleaner (contributors)
- Documentation created with VitePress (contributors)
We welcome all contributions! Here's how you can help:
- Issues - Report issues and provide feedback
- Contribution - Contribute code and documentation
- LinkedIn - Follow abap2UI5 for updates and community highlights
- Sponsor - Sponsor our work to support ongoing innovation
Share your knowledge, hunt for bugs, submit a PR, give us a ⭐, or tell your colleagues about abap2UI5. Every contribution counts!