{"ref":"capability:server-side-rendering","page":"/capabilities/server-side-rendering","json":"/capabilities/server-side-rendering.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"server-side-rendering","name":"Server-side rendering","domain":"ui-and-frontend-bridge","ecosystems":["cap","ui5"],"universal":false,"description":"Rendering a UI on the server before it reaches the browser — first paint without waiting for a client framework to boot, and markup a crawler can read.","short":"Rendering a UI on the server before it reaches the browser","core_coverage":{"state":"community-only","assessed_at":"2026-09-22","what_core_does":"CAP ships no UI technology of its own. Its Node.js server mounts the project's `app` folder as static content and serves the CDS services for a client to read; what turns that into a screen is whatever framework the browser loads.","where_it_stops":"Rendering is left to the client. Neither capire's UI guide nor the documented bootstrap of the built-in server describes producing markup for a request, so a first response that already carries the data is not something the core answers.","community_adds":"[ui5-cap-serverside-rendering-plugin](artifact:lemaiwo-ui5-cap-serverside-rendering-plugin) substitutes entity data into a UI5 XML view or fragment on the CAP server through Handlebars and serves it as that entity's media content; a route of its own renders a Vue app to HTML.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/","title":"capire — Serving UIs","checked":"2026-09-22","quote":"CAP does not have its own UI technology, but can be used from a frontend built with any UI framework."},{"url":"https://cap.cloud.sap/docs/node.js/cds-server","title":"capire — cds.server","checked":"2026-09-22","quote":"if (o.static) app.use (express.static (o.static)) //> defaults to ./app"},{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-plugin/main/README.md","title":"ui5-cap-serverside-rendering-plugin — README","checked":"2026-09-22","quote":"CAP CDS Plugin that enables UI5 pre-rendering on a CAP server. Views or fragments can be developed/stored in the CAP service using handlebars for bindings."}]},"coverage_by_ecosystem":{"ui5":{"state":"unmapped","assessed_at":"2026-09-14","where_it_stops":"SAPUI5's own documentation says the framework is not involved in creating the HTML page sent to the client, so rendering happens entirely in the browser and the first paint is left to whatever technology sits in front of it.","sources":[{"url":"https://ui5.sap.com/docs/topics/91f0bd316f4d1014b6dd926db0e91070.html","title":"Cross-Site Scripting — SAPUI5 Documentation","checked":"2026-09-14","quote":"SAPUI5 is not involved in creating the HTML page which is sent to the client, so there is no way SAPUI5 can prevent XSS vulnerabilities which are contained in the HTML page itself."}],"note":"Unmapped on the ui5 door: [ui5-cap-serverside-rendering-plugin](artifact:lemaiwo-ui5-cap-serverside-rendering-plugin) is catalogued under the cap ecosystem, so it answers this capability's cap assessment and is not a ui5-door artifact."}},"coverage_by_flavor":{"web-components":{"state":"unmapped","assessed_at":"2026-09-14","where_it_stops":"[UI5 Web Components for React](https://github.com/UI5/webcomponents-react) has rendered only the outer markup of a component on the server since v1.17.0; the component itself still registers and renders on the client, so any client-only feature needs the `'use client'` boundary. The base [UI5 Web Components](https://github.com/UI5/webcomponents) library ships no server-rendered Shadow DOM of its own: declarative shadow DOM support sits in an open, unassigned feature request.","sources":[{"url":"https://raw.githubusercontent.com/SAP/ui5-webcomponents-react/main/docs/knowledge-base/SsrLimitations.tsx","title":"SSR limitations — UI5 Web Components for React documentation","checked":"2026-09-14","quote":"UI5 Web Components for React is only rendering the outer markup of the UI5 Web Component on the server. The rendering of the Web Component is still happening on the client."},{"url":"https://raw.githubusercontent.com/SAP/ui5-webcomponents-react/main/docs/knowledge-base/ServerSideRendering.mdx","title":"Server Side Rendering — UI5 Web Components for React documentation","checked":"2026-09-14","quote":"starting from v1.17.0, UI5 Web Components for React is supporting Server Side Rendering Frameworks like Next.js"},{"url":"https://github.com/UI5/webcomponents/issues/6626","title":"[framework][Feature Request] Server-Side Rendering of UI5 Web Components — Issue #6626, UI5/webcomponents","checked":"2026-09-14","quote":"Server-Side Rendering (SSR) is a technique in which the server generates the full HTML for a page on the server in response to navigation."}],"note":"Unmapped rather than not-applicable: server-side rendering is a live question in this layer, not an absent concern. The React wrapper documents partial support, and the base library tracks full support as an open, unassigned issue rather than a shipped feature (checked 2026-09-14, still open)."}},"history":[{"date":"2026-09-14","field":"coverage_by_ecosystem.ui5","from":null,"to":"unmapped","reason":"The ui5 map was borrowing core_coverage (community-only, a sentence about the cap primary) per docs/PROBE-FINDINGS.md §6. SAPUI5's own documentation disclaims involvement in producing the HTML page, and the graph's only provider for this capability is a cap-ecosystem artifact, so the ui5 door's own state is unmapped rather than the borrowed reading."},{"date":"2026-09-14","field":"coverage_by_flavor.web-components","from":null,"to":"unmapped","reason":"UI5 Web Components for React documents partial SSR support since v1.17.0 (outer markup only, client-rendered component) and the base UI5 Web Components library tracks full declarative-shadow-DOM SSR as an open, unassigned feature request. Neither is a catalogued artifact in this graph, so no ui5-door provider states web-components for this capability, but the concern plainly exists here — unmapped rather than not-applicable."},{"date":"2026-09-22","field":"core_coverage","from":null,"to":"what_core_does, where_it_stops, community_adds and sources on the cap reading","reason":"The state said community-only and nothing else, so the cap door carried no sentence a reader could use and no source for the claim. capire states that CAP has no UI technology of its own, and the documented bootstrap of the built-in server mounts the app folder as static content without a rendering step; the community sentence names the one provider the graph holds. State unchanged."},{"date":"2026-10-26","field":"coverage_by_ecosystem.ui5.note","from":"Unmapped rather than community-only: the one provider found, ..., is catalogued under the cap ecosystem, not ui5 ... No artifact with ecosystem ui5 was found for this capability.","to":"Unmapped on the ui5 door: the plugin is catalogued under the cap ecosystem, so it answers the cap assessment and is not a ui5-door artifact.","reason":"Reassessed against the graph (check:capabilities): the note counted providers and claimed an absence about the corpus."},{"date":"2026-10-26","field":"coverage_by_flavor.web-components.note","from":"... Neither the base library nor the React wrapper is catalogued as an artifact in this graph, so no ui5-door provider states web-components for this capability either way.","to":"The sentence about catalogued artifacts and ui5-door providers is removed; the note keeps the fact about the React wrapper and the base library.","reason":"Reassessed against the graph (check:capabilities): the sentence claimed an absence of providers, which goes stale when one arrives."}],"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":null,"by_flavor":{"node":null,"java":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:lemaiwo-ui5-cap-serverside-rendering-plugin","name":"ui5-cap-serverside-rendering-plugin","json":"/artifacts/lemaiwo-ui5-cap-serverside-rendering-plugin.json","ecosystem":"cap","origin_ring":"independent"}],"samples":[],"explained_by":[],"normative_context":[]}}