🤔 Problem

This pitch is a continuing from Renku Apps, so the problem statement is the same:

Renku users like using Renku to “host” dashboards- they can build a dashboard in an interactive session, and then share that session or project link with a collaborator to easily share their work.

However, people expect “apps” on Renku to be ready on demand- they don’t want to wait for the session to launch.

In addition, one brand new piece of functionality we’d like to offer is the ability to serve model endpoints with Renku “apps”. Currently, our URL stuff does not support that, and our concept of an interactive session does not support on-demand API requests (a session must already be running in order to respond to something).

And on the infrastructure side, if there are many people using an “app”, we don’t want to be running as many sessions as there are users running copies of the same app. That’s an unnecessarily expensive use of resources. Instead, we’d like to have a system that autoscales the app based on demand, including down to 0 when no one is using it.

🍴 Appetite

🎯 Solution

In ‣, we built the backend for apps, including deploying knative and implementing the APIs. We also worked out some of the new UX interactions. The remaining work needed to ship this feature is to build the UI and to finish out a few pieces of backend functionality, namely implement data connectors for Apps and and make Code Based Environments work for Apps.

Apps UI

For the user flows and UI description, see the original pitch Renku Apps. Also see Jimena’s Figma file https://www.figma.com/design/V0QsRi0MqORT1MtcVhjM7k/Apps?node-id=58-387&p=f&t=mXfQXs87NDrRchtc-0, which contains the design for the new UX around starting Apps.

Data Connectors

Make data connectors available in apps (so the app has some data to show!).

<aside> <img src="/icons/question-mark_orange.svg" alt="/icons/question-mark_orange.svg" width="40px" />

Also code repos? do we need this?

</aside>

Make code based environments work

Apps currently only work via external environments, in order to set the command. Remaining work is to make code based environments work for apps, where the user sets the command for running the app via a procfile.

🎀 When an app is off, serve a nicer page that doesn’t look like a total error