{"ref":"artifact:lemaiwo-ui5-cap-serverside-rendering-demo","page":"/artifacts/lemaiwo-ui5-cap-serverside-rendering-demo","json":"/artifacts/lemaiwo-ui5-cap-serverside-rendering-demo.json","generated":"2026-10-30","drafted_with_ai":true,"entity":{"id":"lemaiwo-ui5-cap-serverside-rendering-demo","name":"ui5-cap-serverside-rendering-demo","artifact_type":"sample","ecosystem":"cap","serves_ecosystems":["ui5"],"flavors":[{"key":"freestyle","source":{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/app/serverside-rendering/README.md","title":"ui5-cap-serverside-rendering-demo — app/serverside-rendering README, application details","checked":"2026-10-18","quote":"|**App Generator**<br>@sap/generator-fiori-freestyle|"}}],"domain":"ui-and-frontend-bridge","origin_ring":"independent","use_as":"reference","description":{"one_line":"The demo project the [ui5-cap-serverside-rendering-plugin](artifact:lemaiwo-ui5-cap-serverside-rendering-plugin) README points to: a CAP bookshop whose Books list and detail views sit in `srv/views` and reach the browser already filled with data.","short":"Demo CAP bookshop with server-rendered UI5 views","what_it_solves":"`db/schema.cds` extends `Books` with the plugin's `ServerSideRendering` aspect and annotates it `@(ServerSideRenderingType:'view')`, and `srv/cat-service.cds` exposes it read-only through `CatalogService`. The two files under `srv/views` are ordinary UI5 XML with Handlebars where the bindings would be: `{{#each Books}}` around a `StandardListItem` titled `{{title}} - {{ID}}`, so what the server returns is the markup itself. On the app side, a TypeScript freestyle app under `app/serverside-rendering` ships no list or detail view of its own: its manifest sets `routerClass` to `be.wl.serversiderendering.library.ServerSideRouter` and gives each route a `url` such as `/odata/v4/catalog/Books({id})/content`, and the controller navigates by reading the ID the list item wrote into the DOM as `CustomData`. That router class is not in the repository: the app's `package.json` depends on the npm package [be.wl.serversiderendering.library](https://www.npmjs.com/package/be.wl.serversiderendering.library) for it.","when_not_to_use":"As a deployment template it stops at the service: the `mta.yaml` has one module, `gen/srv` on the Node.js buildpack, and no HTML5 repository or router module for the app.","to_build_on_it":"Another screen means another Handlebars view under `srv/views` and another route whose `url` points at that entity's `content`; the app's own `view` folder holds only `App.view.xml`. The root README is still the generated CAP getting-started text, so the setup has to be read from the files."},"links":{"repo":"https://github.com/lemaiwo/ui5-cap-serverside-rendering-demo"},"compat":{"runtimes":["node"],"deployment":["cf"],"typed":true},"requires":[{"ref":"artifact:lemaiwo-ui5-cap-serverside-rendering-plugin","for":"The server half of what the project shows: the `ServerSideRendering` aspect applied to `Books` and the handler that fills the views kept in `srv/views`.","requirement":"required","basis":"binding","sources":[{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/db/schema.cds","title":"ui5-cap-serverside-rendering-demo — db/schema.cds","checked":"2026-10-18","quote":"using { ServerSideRendering } from 'ui5-cap-serverside-rendering-plugin';"},{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/package.json","title":"ui5-cap-serverside-rendering-demo — package.json, dependencies","checked":"2026-10-18","quote":"\"ui5-cap-serverside-rendering-plugin\": \"^1.0.2\""},{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-plugin/main/README.md","title":"ui5-cap-serverside-rendering-plugin — README, Example","checked":"2026-10-18","quote":"You can find a demo project here: [https://github.com/lemaiwo/ui5-cap-serverside-rendering-demo](https://github.com/lemaiwo/ui5-cap-serverside-rendering-demo)"}]},{"ref":"artifact:sap-cds","for":"The CAP Node.js runtime the project's service runs on.","requirement":"required","basis":"binding","role":"framework","sources":[{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/package.json","title":"ui5-cap-serverside-rendering-demo — package.json, dependencies","checked":"2026-10-18","quote":"\"@sap/cds\": \"^8\""}]},{"ref":"artifact:ui5-community-cds-plugin-ui5","for":"Serves the UI5 CLI project under `app/`, an npm workspace of the CAP project, from the CDS server's own port — the address the app README gives for opening it.","requirement":"required","basis":"binding","sources":[{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/package.json","title":"ui5-cap-serverside-rendering-demo — package.json, devDependencies","checked":"2026-10-18","quote":"\"cds-plugin-ui5\": \"^0.11.1\""},{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/app/serverside-rendering/README.md","title":"ui5-cap-serverside-rendering-demo — app/serverside-rendering README, starting the app","checked":"2026-10-18","quote":"In order to launch the generated app, simply start your CAP project and navigate to the following location in your browser:"}]},{"ref":"artifact:sap-cds-dk","for":"`cds watch`, the command the README gives for running the project.","requirement":"required","basis":"binding","sources":[{"url":"https://github.com/lemaiwo/ui5-cap-serverside-rendering-demo","title":"ui5-cap-serverside-rendering-demo — README, Next Steps","checked":"2026-10-18","quote":"Open a new terminal and run `cds watch`"},{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/package.json","title":"ui5-cap-serverside-rendering-demo — package.json, devDependencies","checked":"2026-10-18","quote":"\"@sap/cds-dk\": \"^8\""}]},{"ref":"artifact:cap-js-sqlite","for":"The database the project reads `db/data/my.bookshop-Books.csv` into while it is run locally.","requirement":"conditional","condition":"the project is run locally rather than deployed","basis":"binding","sources":[{"url":"https://raw.githubusercontent.com/lemaiwo/ui5-cap-serverside-rendering-demo/main/package.json","title":"ui5-cap-serverside-rendering-demo — package.json, devDependencies","checked":"2026-10-18","quote":"\"@cap-js/sqlite\": \"^1\""}]}],"maintainers":["actor:lemaiwo"],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-18"},"drafted_with_ai":true,"contributors":["actor:lemaiwo"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"poor","evidence":"pushed 2024-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"2 test files"},{"label":"Docs","tier":"poor","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":4,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-29","npm":"not published under this name","stars":4,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2024-10-20","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2024-10-16T20:11:07Z","open_prs":0,"tree_truncated":false,"test_files":2,"workflows":0,"other_ci":false,"readme_bytes":674,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2024-10-16","last_commit":"2024-10-20","commits":2,"contributors":1,"readme_path":"README.md","readme_sha":"dbac29eb1594d1dd9e9cd90a11879f1495caa4b6","repo_read":"2026-10-29"},"edges":{"maintainers":[{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"contributors":[{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"},"add_ons":[],"answered_through_parts":[]}}