Supported frameworks
Apptrope runs R and Python web apps in a real native window, and it works with a wide range of popular app frameworks out of the box. You don’t have to tell Apptrope which framework an app uses or how to start it. When you point Apptrope at an app, it inspects the app’s entry file and the packages it imports, figures out the framework, and picks the right launcher automatically. This page lists every framework Apptrope supports and explains how that automatic detection works.
The frameworks
Apptrope supports 11 frameworks across R and Python, plus bare Python web apps.
| Framework | Language |
|---|---|
| Shiny | R |
| Shiny | Python |
| Streamlit | Python |
| Gradio | Python |
| Flask | Python |
| Panel | Python |
| Voilà | Python |
| Marimo | Python |
| Dash | Python |
| Bokeh | Python |
| Solara | Python |
| Bare Python web app | Python |
Shiny is supported in both of its flavors, the original R version and Shiny for Python, so the same viewer handles apps written in either language. Everything else in the list is Python.
Bare Python web apps
Not every Python web app is built on one of the named frameworks. “Bare Python web apps” covers apps that serve a web interface without a framework Apptrope recognizes by name. These run too. Apptrope launches the app and shows it in a native window like any other.
How framework detection works
When you load an app, Apptrope looks at two things:
- The entry file is the file that starts the app.
- The imports are the packages the app actually pulls in.
From those signals, Apptrope determines which framework the app uses and selects the matching launcher. That means the right server is started the right way, whether the app is R Shiny, Python Shiny, Streamlit, or anything else in the table above. You get a working app in a native window without configuring commands, ports, or start-up flags yourself.
This detection runs the same way no matter how you loaded the app: a local folder, an archive, a Git repo, a direct archive URL, or a shareable .apptrope bundle.
Both R and Python, side by side
Because Apptrope supports both languages, you can keep R and Python apps together in the same Library and run them in the same Workbench. Each app runs in its own tab with its own isolated environment, so an R Shiny app and a Python Streamlit app can be open at the same time without interfering with each other.
Dependency resolution follows the app’s language automatically:
- R apps: Apptrope uses
rvto resolve and lock the app’s R packages. If no system R is present, a portable R toolchain is provisioned via micromamba so the app can still run. - Python apps: Apptrope uses
uvto resolve the app’s Python packages.
Either way, the first run resolves the environment and later runs reuse it, so you only wait for setup once.
If an app doesn’t launch as expected
If a supported app doesn’t start the way you expect, the per-run logs capture the app’s full output live. Open the app’s ⋯ menu and choose View logs to see exactly what happened during launch. That’s the fastest way to understand a framework-specific start-up issue.