Examples of Streamlit’s capabilities
Here are some useful examples of Streamlit’s capabilities:
- Interactive data exploration: Streamlit is great for building dashboards that allow users to explore datasets interactively. Users can filter, sort, pivot, search, select features, and analyze data from multiple perspectives.
- Prototyping minimum viable products (MVPs): Streamlit’s ease of use makes it perfect for building quick prototypes and MVPs. New ideas can be converted into shareable web apps in no time without any complex setup. This “code-first” approach speeds up iteration and feedback.
- Model deployment: Streamlit apps can expose trained machine learning (ML) models as web services. This allows other apps, scripts, or users to interact with and make predictions from the models. Apps become deployable, productive ML applications and platforms.
- Embeddings: Streamlit code and widgets can be embedded into Jupyter notebooks, JupyterLab, and the Jupyter Notebook interface. This close integration with the data science ecosystem streamlines the process of building apps from notebooks and vice versa.
- Collaborative editing: Streamlit streams edits in real time, enabling the co-editing of code bases seamlessly. Multiple developers can work together simultaneously on one Streamlit app, with changes appearing instantly. Conflicts are avoided, and productive collaboration is possible.
- Automated testing: Streamlit includes tools for writing automated tests in the form of test suites, individual test functions, fixtures, stubs, mocks, and more. Test coverage reports ensure new features do not break existing functionality. Continuous integration workflows run tests on each commit, leading to stable, high-quality code.
- User interfaces (UIs) as code: The Streamlit syntax is based on Python, treating UIs as code. This “UI as code” approach provides many benefits over graphical tools, including version control, reproducibility, collaboration, and integration with the rest of an application’s code base. Streamlit UIs are flexible, programmatic, and build-time optimized.
- Reproducible research: Streamlit’s apps are executed line by line, building up a complete, interactive, and shareable environment. All inputs, code, outputs, and widget values are recorded, allowing anyone to reproduce analysis and results. Apps can be packaged and archived, then re-opened and resumed later. Streamlit facilitates transparent and reproducible data science.
- Automating experiments: Streamlit’s support for modular functions, classes, loops, conditionals, and more allows you to automate experiment workflows. Infrastructure can be scaled up and down programmatically, different models and hyperparameters can be tested systematically, and A/B testing of features and UX elements becomes possible. Automation reduces manual effort and leads to discovering the combinations that work best faster.
Streamlit is incredibly versatile and can help us create more or less any kind of application we have in mind in quite a short time and with an affordable effort. Considering this enormous point of strength, let’s understand why turning our ideas into working prototypes in a short time can be the most useful weapon in our hands.