In a Nutshell
Build UI5 Apps Purely in ABAP
abap2UI5 is an open-source framework that brings the simplicity of classic ABAP development to modern UI5 apps. Just as Selection Screens and ALV grids let you build working UIs with only a few lines of ABAP, abap2UI5 brings that same simplicity to modern web apps:
CLASS zcl_my_app DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
PROTECTED SECTION.
PRIVATE SECTION.
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. (client is the single parameter of main, passed in by the framework — explained on the Hello World page.)
A finished app looks like any other UI5 app, because it is one — a selection screen, a table, a dialog, all of it built from the same single class:

→ The Tutorial grows exactly this app in ten steps, each one a complete class you can run in the browser — then takes it to production, and under unit tests
Background
Since launching in 2023, abap2UI5 has grown from a small side project into a community-driven framework used by ABAP developers worldwide. The framework absorbs frontend complexity, so you can focus on business logic with your existing ABAP skills.
→ See the Getting Started Guide for step-by-step setup
→ See Sample Apps to watch abap2UI5 in action
Why abap2UI5?
Traditional UI5 development needs JavaScript expertise, frontend deployment, and OData service setup. abap2UI5 cuts out those complexities:
- Use your existing ABAP skills — do what you do best; no frontend expertise needed
- Broad compatibility — build apps that run on legacy R/3 systems and modern S/4 Cloud environments
- Extend beyond RAP — build UIs for cases RAP does not cover, such as free-style screens, custom flows, or non-CDS data
- Prototype fast — iterate rapidly on business apps
Each app ships as an abapGit project, so installation across systems needs no separate frontend deployment.
How It Works
The frontend is a UI5 shell that only renders. Your ABAP class builds a UI5 XML view, the framework sends it to the browser with the data already embedded in it, and every user interaction comes back as a fresh call into main( ). No OData service sits in between.
Nothing survives on the server between two clicks, and that is deliberate: z2ui5_if_app inherits if_serializable_object, so the app's state travels with the roundtrip and is restored before main( ) runs again. Each request is a new ABAP session holding your app exactly as the user left it — stateless like any other UI5 app, which is what makes it scale. For the few cases that need a pinned session — a classic enqueue, an open RFC connection — a stateful mode exists.
Outside the SAP world this pattern has a name — HTML Over-the-Wire, the idea behind htmx, Hotwire and Phoenix LiveView. abap2UI5 applies it to UI5.
Overview
Architecture
abap2UI5 takes a "thin frontend" approach — all processing, logic, and data handling stay in the backend. This design simplifies configuration, cuts client-side complexity (no more cache-clearing headaches), and keeps business logic and sensitive data safely on the server.
Performance
abap2UI5 is fast. The frontend focuses only on UI rendering via the UI5 framework, while the ABAP backend handles all processing. Unlike traditional UI5 apps that need separate OData calls for each view, abap2UI5 embeds data directly in XML views — cutting network roundtrips and speeding up the response.
→ See Performance for what to measure and what to tune
Security
abap2UI5 is secure by design. All business logic stays in the ABAP backend. The frontend receives only the data the backend embeds directly in XML views. Unlike traditional UI5 apps that expose OData endpoints, abap2UI5 delivers only what users need — no access to raw services or database queries from external tools.
Authentication is the ICF node's job, exactly as for any other service on your system, and the framework ships a Content-Security-Policy by default. Authorization stays yours: whatever the user sends still arrives from a browser, so check it in the app or on the service node, as you would in any other program.
→ See Security for the endpoint, the CSP and what the framework does not do for you, and Authorization for setting up checks
System Footprint
The framework has a small system footprint — essentially classes, interfaces, and a single draft table. The core stays minimal; optional add-ons provide extra functionality only when you need it.
→ See Add-ons for the ecosystem around the core — layout variants, table maintenance, charts
Transparency
All source code lives publicly on GitHub. We discuss features and issues openly, publish technical blog posts that explain key concepts, and ship fixes quickly via abapGit. You'll always understand how the framework works and can confirm its behavior.
Where It Fits
abap2UI5 is built for business apps: worklists, forms, CRUD, dashboards, selection screens — the kind of thing you would otherwise write as a Selection Screen, an ALV report or a freestyle UI5 app.
It is deliberately not built for everything. Three cases are a poor fit, and knowing them up front saves a prototype:
- Heavily interactive or real-time collaborative apps. Every interaction that needs the server is a roundtrip.
- Offline use and complex client-side behaviour. The browser renders; it does not hold the application.
- Teams that work strictly separately. The app is one ABAP class — that is the point, and it means there is no frontend project for a frontend team to own.
→ See On-Stack or Side-by-Side and One App, Many Systems for the deployment scenarios
Compatibility
ABAP Cloud
abap2UI5 uses only released APIs, making it a strong fit for on-stack and side-by-side extensions on ABAP for Cloud. Use ABAP syntax features like CDS, ABAP SQL, and EML inside your apps.
Clean Core
By relying only on released APIs, abap2UI5 keeps your apps "cloud-ready" and "upgrade-stable," in line with SAP's clean-core principles. Your investment in abap2UI5 apps stays safe through future SAP system upgrades.
System Support
Works with both ABAP Cloud and Standard ABAP:
- S/4 Public Cloud and BTP ABAP Environment (ABAP for Cloud)
- S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP)
- R/3 NetWeaver AS ABAP 7.02 or later (Standard ABAP)
Below 7.50 you pull the 702 branch instead of main — same features, generated from it automatically. See Downporting.
UI5 Versions
The frontend is UI5 itself, loaded at bootstrap like it is for any other UI5 app. abap2UI5 bootstraps OpenUI5 from its public CDN by default; a single exit points it at SAPUI5, at a pinned version, or at the UI5 already delivered by your own system — which is what a system without internet access uses. 1.71 is the oldest supported release, and every change is tested against UI5 2.x as well.
→ See UI5 Versions for the distributions, and Bootstrapping for choosing the source
Enterprise Ready
abap2UI5 combines SAP's UI5 framework with ABAP's backend capabilities, shaped for enterprise SAP environments. It runs smoothly across S/4HANA Public/Private Cloud, BTP ABAP Environment, and NetWeaver systems.
Production Usage
Use abap2UI5 like any other UI5 app or ABAP program in production. Add the framework and your apps to a transport request to ship them. Updates ship as versioned releases with every change listed: see the Release Notes, and the Deprecations page for what is on its way out and what replaces it.
Licensing
Technically, abap2UI5 apps are standard UI5 freestyle apps. License them the same way you license other UI5 apps at your organization. abap2UI5 itself is MIT licensed (free for commercial use).
Launchpad Integration
Embed your apps into:
- Fiori Launchpads on S/4 On-Premise
- Tiles on S/4 Public Cloud
- Build Work Zone Websites on BTP
Installation
Getting started is easy:
- Import the project via abapGit
- Set up an HTTP service for browser communication
- Start building!
No system at hand? The Quickstart opens with two ways to try abap2UI5 in the browser — the playground and the live demo — before anything is installed.
→ See the Quickstart Guide for full instructions
Tooling
None of it is required — an app is one class in your system, and ADT is enough. What exists is worth the ten minutes: a linter that reconstructs the UI5 view out of the ABAP that builds it and reports what UI5 does not have, without an SAP system; a VS Code extension that runs the app next to the code on F9; and an MCP server that lets an AI assistant build an app and look at the result.
That last point is not a novelty: an app is a single ABAP class, in one language, that an assistant can also verify — which makes abap2UI5 unusually well suited to being written with one.
→ See Tooling for the setup, and Developing with AI for the assistant workflow
Community
Support
The community offers support. Open an issue on GitHub or join the abap2UI5 Slack channel to get help.
→ See the Support page for more options
Contribution
Contributions are always welcome. Whether you fix bugs, build features, or improve the docs, every contribution helps the project thrive.
→ See the Contribution Guide to learn how to get involved
Sponsor
Volunteers maintain abap2UI5. If you or your company benefits from the project, please consider sponsoring it.
→ Read more about sponsorship opportunities
In Production Elsewhere
Companies, workshops and open-source projects already run on abap2UI5, with the system release and the use case named.
→ See Who Uses abap2UI5? — and add your own scenario
