Three more insights from Use Cases, then reorder and retitle the series - #207
Merged
Conversation
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
There was a problem hiding this comment.
🟡 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:
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" }, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #204. Three commits.
Three articles from the Use Cases page, and the page removed
advanced/use_cases.mdis cut into one claim each, reusing the six diagrams it already ships rather than drawing new ones:SELECT, and there is a second system to run.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.mdpoints 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.mdandlow_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:
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 siblingabap2UI5/samplescheckout here — CI checks outsamples@mainand it passed on #204.Renumbering broke the two links
about.mdhad into the series;docs:buildcaught 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