Demo applications for Renku Apps. Each subdirectory is a self-contained app that Renku can build from code and serve on-demand as a Knative Service.
| App | Stack | What it is |
|---|---|---|
frogs-explorer/ |
Streamlit | Dashboard over a bundled synthetic frog-morphometrics dataset. The reference "publish a dashboard from your project" demo, and the only one that ships its own data. |
zurich-air-quality/ |
Streamlit | 40+ years of Zurich air-quality measurements, read from a mounted data connector. Turns the record into findings (Theil–Sen trends, Mann–Kendall significance, the NOₓ–O₃ ozone paradox). |
zurich-air-quality-rshiny/ |
R Shiny | The same dataset in R, built by the renv buildpack — the second language path, and the app that proves the buildpack story is not Python-only. |
zurich-air-quality-marimo/ |
marimo | An exploratory notebook published as an app, from learning-renku/air-quality-analysis. Exercises a different serving model: per-session kernels over websockets. |
connector-probe/ |
Streamlit | Diagnostic app that verifies the platform mounted a project's public, credential-free data connectors into the app container. Inspects /proc/mounts and walks the filesystem. |
Three of the four dashboards read the same Zurich open data from a mounted connector, in three different stacks. That is deliberate: holding the dataset and the analysis constant makes build time, cold start, and serving behaviour comparable across buildpacks, instead of confounding them with four unrelated apps.
.
├── frogs-explorer/ # bundled-dataset dashboard (Streamlit)
├── zurich-air-quality/ # connector-backed dashboard (Streamlit)
├── zurich-air-quality-rshiny/ # the same, in R (renv buildpack)
├── zurich-air-quality-marimo/ # a published notebook (marimo)
└── connector-probe/ # data-connector mount tester
Each app directory carries its own Procfile, pinned dependency manifest
(requirements.txt, or renv.lock for R), and README.md; most also carry a
Dockerfile for building the image directly. Point Renku at the subdirectory to
build that app.
The connector-backed apps expect a public, credential-free data connector
with target path zurich-air-quality-data, and fail loudly if it is not
mounted — see each app's README.