Skip to content

Three more insights from Use Cases, then reorder and retitle the series - #207

Merged
oblomov-dev merged 3 commits into
mainfrom
claude/abap2ui5-blog-series-1ug3ep
Sep 2, 2026
Merged

Three more insights from Use Cases, then reorder and retitle the series#207
oblomov-dev merged 3 commits into
mainfrom
claude/abap2ui5-blog-series-1ug3ep

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

Follow-up to #204. Three commits.

Three articles from the Use Cases page, and the page removed

advanced/use_cases.md is cut into one claim each, reusing the six diagrams it already ships rather than drawing new ones:

  • New #19 When the API Is Not Released — the four clean core levels as a table, and the wrapper as the move when the API you need is not released. It ends on why that is worth doing: a wrapper does not make the dependency clean, it makes it findable. Kept off update #18's ground — update #18 asks whether an app is cloud-ready, New #19 asks what to do when the API is not.
  • New #20 On-Stack or Side-by-Side — lifecycles rather than code, with the cost stated plainly: a remote call is slower, the released remote APIs are narrower than a local SELECT, and there is a second system to run.
  • Tree #21 One App, Many Systems — the SaaS shape, resting on what earlier articles established. Its limits paragraph names the genuinely new one: with several customers behind one app, the tenant boundary is the app's job.

The page is removed only after those three carry what it held — the level table, the note that nothing written under the three-tier model has to be migrated, SAP's own sources, and all six diagrams; three were still unused and the deletion would have orphaned them. about.md points at the two articles instead.

Numbered sidebar, and the comparison tables back

The sidebar reads #1 … to #28 …, generated from the file prefix so it cannot drift.

Articles 26–28 lost their tables when the source pages were cut into prose. They are back, built from the architecture rows of the old technology/rap.md, ui5.md and low_code.md: backend, frontend, UI definition, data model, communication, deployment. The verdict rows those pages also had — Learning Curve, Use Case Fit, the tick-and-cross columns — stay out: a table that scores one side against the other says less than the two recommendation paragraphs each article already ends on, and ages worse.

Reading all 28 in order

The order had grown by accretion. The limits article sat at 19 with nine articles after it, though it is written as a closer. The two clean-core articles were six apart. And the neutral "Where the View Lives" was separated from the three when-to-use-which articles it introduces. The arc now runs: what it is (1–4), how it works (5–13), what it is like to work with (14–16), where it runs (17–21), how much of it you have to trust (22), where it sits historically (23), what it cannot do (24), which to choose (25–28). Limits immediately before the decisions is where that article earns its keep. Free to do now and only now — nothing past #1 is published.

Four titles were wrong, not merely weak:

was now why
One Service for Every App The Same Service for Every App read as one service per app, the opposite of the point
Twenty-Five Years of ABAP on the Web From ITS to abap2UI5 ITS 2000 to abap2UI5 2023 is 23, and the number would rot every January
Where the Line Is What It Does Not Do third "Where …" title, and it said nothing
The Frontend That Does Not Know What It Shows The Frontend Knows Nothing wrapped to three lines in the sidebar

Two leftovers went with them: article 1 still carried "scheduled for Tuesday, 25 August 2026" from its drafting, on a published page; and the limits article opened by counting the articles before it, which breaks every time the series grows.

Gates

All nine green locally except check:samples, which fails only against a stale sibling abap2UI5/samples checkout here — CI checks out samples@main and it passed on #204.

Renumbering broke the two links about.md had into the series; docs:build caught them, which is exactly the failure mode that gate exists for.

🤖 Generated with Claude Code

https://claude.ai/code/session_01N5aUUqLaxN6kxKxsHhuicp


Generated by Claude Code

26 "When the API Is Not Released", 27 "On-Stack or Side-by-Side" and 28
"One App, Many Systems" cut advanced/use_cases.md into one claim each, and
reuse the diagrams that page already ships rather than drawing new ones.

26 is the wrapper: the four clean core levels exist, abap2UI5 is Level A,
and an app's level is decided by what the app calls. The point it ends on
is not the grade — a wrapper gives the part that is not upgrade-stable a
name, a size and a boundary. It is kept off article 20's ground: 20 asks
whether an app is cloud-ready, 26 asks what to do when the API it needs is
not released.

27 is lifecycles rather than code, and says the cost plainly: a remote call
is slower, the released remote APIs are narrower than a local SELECT, and
there is a second system to run.

28 is the SaaS shape, and it earns its place by resting on what earlier
articles established — a shell that renders whatever arrives, one class
with no artefacts beside it, state that travels in the request. Its limits
paragraph names the one that is genuinely new: with several customers
behind one app, the tenant boundary is the app's job.

The Use Cases page itself stays. Unlike the pages removed in #202 its
diagrams are in this repository, it was reworked two pull requests ago, and
it is reference — a table of levels — as much as narrative. Removing it was
not asked for and is a separate decision.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N5aUUqLaxN6kxKxsHhuicp
…bles back

The sidebar now reads "#1 …" to "#28 …". The series is written to be read
in order and the numbers are how it is referred to everywhere else; a
sidebar that dropped them made a list of 28 titles with no sequence in it.

Articles 23, 24 and 25 lost the comparison tables when the source pages
were cut into prose. They are back, built from the architecture rows of
technology/rap.md, technology/ui5.md and technology/low_code.md: what each
side uses for the backend, the frontend, the UI definition, the data model,
communication and deployment.

The verdict rows those pages also had — Learning Curve, Use Case Fit, the
tick-and-cross columns — stay out. Not out of the earlier no-comparison
rule, which the owner has since narrowed, but because a table that scores
one side against the other says less than the two paragraphs of
recommendation each article already ends on, and ages worse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N5aUUqLaxN6kxKxsHhuicp
Reading all 28 in order turned up more than the numbering.

ORDER. The arc had grown by accretion: the limits article sat at 19 with
nine articles after it, the two clean-core articles were six apart, and the
neutral "where the view lives" was separated from the three
when-to-use-which articles it introduces. The arc now runs what it is
(1-4), how it works (5-13), what it is like to work with (14-16), where it
runs (17-21), how much of it you have to trust (22), where it sits
historically (23), what it cannot do (24), and which to choose (25-28).
Limits immediately before the decisions is where that article earns its
keep. Free to do now, and only now: nothing past #1 is published.

TITLES. Four were wrong rather than merely weak. "One Service for Every
App" reads as one service per app, which is the opposite of the article's
point — now "The Same Service for Every App". "Twenty-Five Years of ABAP on
the Web" counts wrong (ITS 2000 to abap2UI5 2023 is 23) and would rot every
January — now "From ITS to abap2UI5". "Where the Line Is" was the third
"Where …" title and said nothing — now "What It Does Not Do". "The Frontend
That Does Not Know What It Shows" wrapped to three lines in the sidebar —
now "The Frontend Knows Nothing".

Also: article 1 still carried "scheduled for Tuesday, 25 August 2026" from
its drafting, on a published page. And the limits article opened by
counting the articles before it, which breaks every time the series grows.

USE CASES. The page is removed as requested, but only after the three
articles cut from it carry what it held: the four clean core levels as a
table, the note that nothing written under the three-tier model has to be
migrated, SAP's own sources for the levels, and all six of its diagrams —
three were still unused and would have been orphaned by the deletion.
about.md now points at the two articles instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N5aUUqLaxN6kxKxsHhuicp
Copilot AI lite review requested due to automatic review settings September 2, 2026 11:45
@oblomov-dev
oblomov-dev merged commit 752702c into main Sep 2, 2026
2 checks passed
@oblomov-dev
oblomov-dev deleted the claude/abap2ui5-blog-series-1ug3ep branch September 2, 2026 11:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The PR description claims the numbered sidebar is generated from file prefixes to prevent drift, but the sidebar numbering is still manually hard-coded in config.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR refactors and extends the “Technical Insights” documentation series by extracting the former Use Cases page into dedicated numbered articles, restoring comparison tables in the “when to use which” articles, and updating navigation and cross-links to match the new structure.

Changes:

  • Split advanced/use_cases.md into three new insight articles (#19#21) and remove the original page.
  • Reorder/retitle the insights series and update the VitePress sidebar to show #1#28.
  • Restore architecture comparison tables in articles #26#28 and update related headings/teasers.
File summaries
File Description
docs/get_started/about.md Updates the “deployment scenarios” pointer to the new insights articles instead of the removed Use Cases page.
docs/advanced/use_cases.md Removes the old Use Cases page after content is split into dedicated articles.
docs/advanced/insights/28-low-code-or-abap2ui5.md Reintroduces the Low-code vs abap2UI5 comparison table.
docs/advanced/insights/27-freestyle-or-abap2ui5.md Reintroduces the UI5 Freestyle vs abap2UI5 comparison table.
docs/advanced/insights/26-rap-or-abap2ui5.md Reintroduces the RAP vs abap2UI5 comparison table.
docs/advanced/insights/25-where-the-view-lives.md Adds the “Where the View Lives” bridging article and diagram.
docs/advanced/insights/24-where-the-line-is.md Retitles/reframes the “limits” article (“What It Does Not Do”).
docs/advanced/insights/23-abap-on-the-web.md Retitles the historical context article (“From ITS to abap2UI5”).
docs/advanced/insights/22-2300-lines.md Adds the “2,300 Lines” footprint/auditability article.
docs/advanced/insights/21-one-app-many-systems.md Adds the “One App, Many Systems” (SaaS shape/tenant boundary) article.
docs/advanced/insights/20-on-stack-or-side-by-side.md Adds the lifecycle-focused on-stack vs side-by-side article.
docs/advanced/insights/19-when-the-api-is-not-released.md Adds the clean-core levels + wrapper pattern article.
docs/advanced/insights/18-cloud-ready-is-a-property-of-your-app.md Adds the “cloud-ready depends on what your app reads/writes” article.
docs/advanced/insights/07-one-service-for-every-app.md Retitles article #7 to remove ambiguity (“The Same Service for Every App”).
docs/advanced/insights/06-the-frontend-that-does-not-know.md Retitles article #6 for a shorter sidebar-friendly title (“The Frontend Knows Nothing”).
docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md Removes a future-dated drafting note from a published page.
docs/.vitepress/config.mjs Updates sidebar order/titles and removes the Use Cases entry; adds #n prefixes in the sidebar labels.
blog/teaser-posts.md Keeps teaser headings aligned with the retitled articles.
Review details
  • Files reviewed: 15/18 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 587 to +591
text: "Technical Insights",
link: "/advanced/insights/01-somewhere-on-the-way-to-ui5",
collapsed: true,
items: [
{ text: "Somewhere on the Way to UI5, We Lost RTTS", link: "/advanced/insights/01-somewhere-on-the-way-to-ui5" },
{ text: "abap2UI5 is not a Programming Model", link: "/advanced/insights/02-not-a-programming-model" },
{ text: "The Cost of a Screen", link: "/advanced/insights/03-the-cost-of-a-screen" },
{ text: "No Annotation in Between", link: "/advanced/insights/04-no-annotation-in-between" },
{ text: "UI5 Over-the-Wire", link: "/advanced/insights/05-ui5-over-the-wire" },
{ text: "The Frontend That Does Not Know What It Shows", link: "/advanced/insights/06-the-frontend-that-does-not-know" },
{ text: "One Service for Every App", link: "/advanced/insights/07-one-service-for-every-app" },
{ text: "Only the Changed Part", link: "/advanced/insights/08-only-the-changed-part" },
{ text: "PUBLIC Means Persisted", link: "/advanced/insights/09-public-means-persisted" },
{ text: "Swapping the View at Runtime", link: "/advanced/insights/10-swapping-the-view-at-runtime" },
{ text: "index.html Lives in a String", link: "/advanced/insights/11-index-html-lives-in-a-string" },
{ text: "Where Your Own JavaScript Goes", link: "/advanced/insights/12-where-your-own-javascript-goes" },
{ text: "Four Verbs", link: "/advanced/insights/13-four-verbs" },
{ text: "The Class That Runs", link: "/advanced/insights/14-the-class-that-runs" },
{ text: "Where the Selection Screen Went", link: "/advanced/insights/15-where-the-selection-screen-went" },
{ text: "No Cache, No Deploy, Any IDE", link: "/advanced/insights/16-no-cache-no-deploy-any-ide" },
{ text: "One Codebase, 7.02 to ABAP Cloud", link: "/advanced/insights/17-one-codebase-702-to-abap-cloud" },
{ text: "2,300 Lines", link: "/advanced/insights/18-2300-lines" },
{ text: "Where the Line Is", link: "/advanced/insights/19-where-the-line-is" },
{ text: "Cloud-Ready Is a Property of Your App", link: "/advanced/insights/20-cloud-ready-is-a-property-of-your-app" },
{ text: "Twenty-Five Years of ABAP on the Web", link: "/advanced/insights/21-abap-on-the-web" },
{ text: "Where the View Lives", link: "/advanced/insights/22-where-the-view-lives" },
{ text: "RAP or abap2UI5 — When to Use Which", link: "/advanced/insights/23-rap-or-abap2ui5" },
{ text: "UI5 Freestyle or abap2UI5 — When to Use Which", link: "/advanced/insights/24-freestyle-or-abap2ui5" },
{ text: "Low-Code or abap2UI5 — When to Use Which", link: "/advanced/insights/25-low-code-or-abap2ui5" },
{ text: "#1 Somewhere on the Way to UI5, We Lost RTTS", link: "/advanced/insights/01-somewhere-on-the-way-to-ui5" },
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants