When deploying a data app, you can select a backend version from a dropdown in the deployment wizard. Each backend version defines the runtime environment your app runs in, including the Python version, Streamlit version, and a set of pre-installed packages.
Each backend version is displayed in the following format:
<backend_version> - Python <python_version> + Streamlit <streamlit_version>
For example: 1.15.2 - Python 3.13 + Streamlit 1.51
This means:
1.15.2): The release version of the base Docker image that powers your data app. Newer backend versions may include updated pre-installed packages, bug fixes, and infrastructure improvements.3.13): The version of the Python interpreter. Different Python versions offer different language features and performance characteristics.1.51): The version of the Streamlit framework used to run your app.Starting with backend version 1.15.0, each release is available in multiple Python variants. Currently, the following Python versions are offered:
| Python Version | Notes |
|---|---|
| 3.10 | Default. Most widely compatible with third-party packages. Recommended if you are unsure. |
| 3.11 | Faster execution in many workloads (10–60% speedup over 3.10). Good balance of compatibility and performance. |
| 3.13 | Latest stable Python release. Best performance and newest language features, but some packages may not yet support it. |
Recommendations:
All backend versions ship with the same set of pre-installed packages regardless of the Python variant.
These packages are available immediately without adding them to the Packages field or requirements.txt:
streamlitpandasnumpymatplotlibplotlyscikit-learnseaborngraphvizdeepmergepython-dotenvkeboola.componentstreamlit-aggridstreamlit-keboola-apistreamlit_authenticator (pinned to 0.3.1)tomlTo add packages beyond this list, specify them in the Packages field (for code deployment) or in a requirements.txt file (for Git repository deployment). Custom packages are installed on top of the pre-installed set and will not conflict with it.
ⓘ Tip
If you need to pin a specific version of a pre-installed package, you can override it by specifying the desired version in the Packages field or in your requirements.txt.
Below is a summary of changes in each backend version. This information is published here because the source repository is private.
Released: February 9, 2026
Released: February 4, 2026
Released: February 4, 2026
Released: January 6, 2026
Released: December 18, 2025
Released: December 16, 2025
uv package manager.Released: December 10, 2025
Released: November 28, 2025
uv package manager.Released: November 26, 2025
KBC_URL and KBC_TOKEN are now automatically injected into secrets.toml, making them accessible via st.secrets["kbc_url"] and st.secrets["kbc_token"].config.json.Released: November 2025
Released: November 2025
pip with uv for significantly faster package installation and dependency resolution.