Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
3e40d6d
Rewrite the page for a reader who gives it three minutes
claude Oct 29, 2026
799757f
Date the project from January 2023
claude Oct 29, 2026
79e71d2
Drop Nuve Platform, and the word partner
claude Oct 29, 2026
cc91b2f
Show the Boring Enterprise Nerdletter among the first references
claude Oct 29, 2026
56ab0ef
Keep the case of abap2UI5 in the table headers
claude Oct 29, 2026
d9e17c9
Name offline as the limit, not real time
claude Oct 29, 2026
bf8b9d1
Three company cards in three columns
claude Oct 29, 2026
baaddbc
Support in the open, and a Try it out button
claude Oct 29, 2026
c3597e4
A quieter palette for a business reader
claude Oct 29, 2026
48fc416
Slack first, wherever support is named
claude Oct 29, 2026
cba186e
Publish under /why/, the repository's new name
claude Oct 29, 2026
ec30725
Merge main (the squashed first commit) into the branch
claude Oct 29, 2026
cc69776
Screenshots from the playground: a sales-orders hero, legible cards
claude Oct 29, 2026
7c7300e
Answer the pain points readers voice most
claude Oct 29, 2026
c4617fa
Performance: one plain request per click, nothing in the browser
claude Oct 29, 2026
f396207
Trim the page back under its word limit
claude Oct 29, 2026
fa13eb8
Join the community, and an open row under Who runs it
claude Oct 29, 2026
5c6d90a
Slack in the footer
claude Oct 29, 2026
d51e90d
Who runs it moves down, after the FAQ
claude Oct 29, 2026
991f866
Drop the note under the hero buttons
claude Oct 29, 2026
bc8beb0
Merge main (the squashed #6) into the branch
claude Oct 29, 2026
cd88f74
Drop the cost calculator, and lighten the price card
claude Oct 29, 2026
1be6f4a
Quieter cost and community blocks
claude Oct 29, 2026
641bb43
Governance and AI as plain lists, like cost and community
claude Oct 29, 2026
cf26dff
Merge main (the squashed #7) into the branch
claude Oct 29, 2026
d77947c
Tab title: abap2UI5 - why
claude Oct 29, 2026
d0097bb
Merge remote-tracking branch 'origin/main' into claude/friendly-wrigh…
claude Oct 29, 2026
2ec2251
Logic in ABAP, security and performance up front; the familiar class
claude Oct 29, 2026
2339085
Merge remote-tracking branch 'origin/main' into claude/friendly-wrigh…
claude Oct 29, 2026
02bce66
FAQ: when abap2UI5, and when a custom SAPUI5 app
claude Oct 29, 2026
eefe925
FAQ: upgrade-stable and cloud-ready, on the ABAP side and the UI5 side
claude Oct 29, 2026
61ddcdd
Merge main (the squashed #10) into the branch
claude Oct 29, 2026
372432c
FAQ: six more questions, the pain points of the ABAP world
claude Oct 29, 2026
3a117b8
Headline: UI5 apps for ABAP, built by the team you already have
claude Oct 30, 2026
93de1e8
Merge remote-tracking branch 'origin/main' into claude/friendly-wrigh…
claude Oct 30, 2026
4798574
Tile: cloud ready
claude Oct 30, 2026
8176c27
Two pages: Home, and About with support and the community
claude Oct 30, 2026
3ddd42c
The class behind the phone, every device, every operating model
claude Oct 30, 2026
3610c59
The hero scene in ADT style, full width under the headline
claude Oct 30, 2026
9c0985a
Minutes to the first screen, hours to the first app
claude Oct 30, 2026
e7c1829
Hours, not weeks, in the team FAQ too
claude Oct 30, 2026
d282f6f
Community & Support in one place, the sections as a second header row…
claude Oct 30, 2026
6b3846a
Merge main (the squashed #12) into the branch
claude Oct 30, 2026
fd083f1
Drop about.astro, which the merge brought back; it is community.astro…
claude Oct 30, 2026
f4a837e
Drop the two hero buttons
claude Oct 30, 2026
d5757ca
Merge main (the squashed #13) into the branch
claude Oct 30, 2026
e307a14
The FAQ as a page of its own
claude Oct 30, 2026
aba6b4a
Operating models in two groups, and the two ways to deploy
claude Oct 30, 2026
522d30c
Support, step three: we hope it never comes to this
claude Oct 30, 2026
461ffb2
Merge remote-tracking branch 'origin/main' into claude/friendly-wrigh…
claude Oct 30, 2026
de5ee24
Support: five channels, independent, and the write-to-us box below
claude Oct 30, 2026
53c9171
Pull requests belong to giving back, not to support
claude Oct 30, 2026
f23debd
Two sections: what it stands on, what you can give back
claude Oct 30, 2026
b275b07
Merge remote-tracking branch 'origin/main' into claude/friendly-wrigh…
claude Oct 30, 2026
751caaa
Enterprise readiness, by name
claude Oct 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ npm run check # build + test, what CI runs
check is cut, not softened. Three things a reader asks first stay visible without scrolling into a
section: the business logic stays in ABAP (hero, tile, a comparison row, the
security heading), performance (a comparison row, a reason, a FAQ) and
security (a section of its own, named in the navigation). Add-ons, Basis
enterprise readiness (a section of its own at `#what-you-keep`, named in the navigation, with the review pack linked). Add-ons, Basis
steps and other developer topics
are links into the manual, not sections.
- **Every table cell carries its column.** `data-th` on each `<td>`: under
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/Page.astro
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const CSP = [
export const sections: [string, string][] = [
["the-problem-it-answers", "Use cases"],
["when-to-use-it-and-when-not", "Where it fits"],
["what-you-keep", "Security"],
["what-you-keep", "Enterprise ready"],
["what-it-costs", "Cost"],
["where-it-runs", "Where it runs"],
["ai", "AI"],
Expand Down
11 changes: 7 additions & 4 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ const governance = [
["key", "Authorizations are SAP's", "The authorization on the service endpoint, and the app's own checks in its code, as a transaction does them."],
["db", "Data changes are your code's", "An app posts through the same BAPIs, function modules or RAP actions as any program, so change documents and application logs apply unchanged."],
["log", "Every request can be logged", "A monitor records, per request, user, app, event, timings and any error. Off until an installation switches it on."],
["check", "Tested on every release", "Every change runs against Standard ABAP and ABAP Cloud, is downported to NetWeaver 7.02 and opened in the browser on UI5 1.71 and the current release. An upgrade of the system or of UI5 does not break an app."],
["form", "Security reviewed in the open", "A strict Content Security Policy without unsafe-eval or inline script, CodeQL and a weekly dependency audit, an SBOM with every release, and a published security model a review starts from."],
["monitor", "Accessible", "Views are standard UI5 views, so every control is as accessible as UI5 makes it. Focus survives a roundtrip, a change can be announced to a screen reader, a high-contrast theme is one switch away."],
["leaf", "Clean core", "Released APIs only, passes the ABAP Cloud checks, runs on S/4HANA, BTP and NetWeaver 7.02 from one source. Modifies nothing in the standard."],
];

Expand Down Expand Up @@ -238,9 +241,9 @@ const doors = [

<section class="section" id="what-you-keep" aria-labelledby="h-keep">
<div class="wrap">
<p class="kicker">Security and governance</p>
<h2 id="h-keep">The logic stays in ABAP; logon, authorizations and data stay SAP's</h2>
<p class="intro">One ABAP class per app, the business logic in it, no generated artifacts, no tables that describe a screen. Nothing of the app runs in the browser, so there is no client logic to secure. Every rule that applies to ABAP, from code review to the four-eyes principle on transports, applies to an app unchanged.</p>
<p class="kicker">Enterprise readiness</p>
<h2 id="h-keep">Ready for your enterprise: inside the security, the process and the release cycle you already have</h2>
<p class="intro">The logic stays in ABAP; logon, authorizations and data stay SAP's. One ABAP class per app, the business logic in it, no generated artifacts, no tables that describe a screen. Nothing of the app runs in the browser, so there is no client logic to secure. Every rule that applies to ABAP, from code review to the four-eyes principle on transports, applies to an app unchanged.</p>
<div class="table">
<table>
<thead><tr><th scope="col"></th><th scope="col" class="us">abap2UI5</th><th scope="col">A tool that stores apps as configuration</th></tr></thead>
Expand All @@ -251,7 +254,7 @@ const doors = [
{governance.map(([icon, h, t]) => <li><Icon name={icon} /><div><b>{h}</b><span>{t}</span></div></li>)}
</ul>
<p class="callout"><b>No shadow IT.</b> No click-together designer bypasses your development process: every app is a class, under the rules you already have.</p>
<p class="more">→ <a href={`${DOCS}configuration/security`}>Security</a>, <a href={`${DOCS}configuration/authorization`}>Authorization</a>, and the <a href={`${GITHUB}/blob/main/docs/security.md`}>security model</a> a security review starts from.</p>
<p class="more">→ <a href={`${GITHUB}/blob/main/docs/review.md`}>The review pack</a>: everything a review board asks for, in one list, each line with the place that proves it. And in detail: <a href={`${DOCS}configuration/security`}>Security</a>, <a href={`${DOCS}configuration/authorization`}>Authorization</a>, the <a href={`${GITHUB}/blob/main/docs/security.md`}>security model</a>, <a href={`${GITHUB}/blob/main/docs/accessibility.md`}>Accessibility</a> and <a href={`${GITHUB}/blob/main/docs/verified-on.md`}>Verified on</a>.</p>
</div>
</section>

Expand Down
Loading