September 11, 2023
3 min read
Are you a Data Scientist/Analyst/Engineer and have always wanted to learn web development technologies like Django or Flask? Do you primarily use Python but want to build scalable Data Web Apps without having to learn yet-another framework or language like React.js, Angular, HTML, JavaScript, jQuery, PowerBI...? Read on to see if you can use the Streamlit framework to create Data Web Apps using only Python.
Streamlit is a very popular open source framework that pitches itself as a pure python framework to build and share Data Web Apps in minutes with no front-end experience needed.
Snowflake - a popular cloud computing company acquired Streamlit in March of 2022 for $800 million. A closer look at this acquisition gives us some insights about the merits of the framework, the future direction of the product and some clues as to why this framework commanded such a steep acquisition price of $800 million.
Benoît Dageville, co-founder and president of products at Snowflake had the following to say:
"We have both the same vision — Streamlit and Snowflake — which is all about democratizing access to data. I would describe it very simply as making it super easy to interact with data."
"Streamlit fills in a big missing piece in the platform by allowing data scientists and others to interact with the data and build apps that bring the data to life for non-technical users."
"Snowflake has all the technical pieces for accessing and managing the data in the cloud, but we lacked a native data visualization piece, and that’s what we’re getting with Streamlit."
"Our mission is to mobilize the entire world’s data, and there are millions of data scientists and developers who don’t have access to full-stack engineering teams. We found ourselves wondering how we could enable individual developers, data scientists, and machine learning engineers to build and share world-class data apps, all by themselves."
"iPhone along with the App Store provides a platform to build and run applications. Likewise, Snowflake is going to be a platform to run data applications built using Streamlit."
Adrien Treuille, co-founder of Streamlit had the following to say:
"I think that Streamlit actually has, I would say, a unique position in this market. While most companies are basically trying to systemize some part of the machine learning workflow, we’re giving engineers these sort of Lego blocks to build whatever they want."
"There are millions of insights that are not yet found that we hope the future generation of Streamlit apps are going to discover."
Streamlit App Gallery has hundreds of examples of beautiful Data Web Apps which gives you a quick glimpse into the endless possibilities with this framework.
Streamlit provides several widgets that makes it extremely easy to create pluggable graphical UI elements that can be used in any Data App using pure Python.
import streamlit as st
import pandas as pd
df = pd.read_csv("my_data.csv")
st.altair_chart(my_chart)
file = st.file_uploader("Pick a file")
You can build Apps locally or deploy it to the Snowflake Cloud.
Another powerful feature of Streamlit is Components which are re-usable third-party modules contributed by Streamlit's community.
If you interested in building a Generative AI App, Streamlit has some great resources and an active community.
Note
: By default Streamlit collects usage statistics a.k.a telemetry. You can turn this off via the config file.
Of course, like any framework Streamlit also has its limitations. If your use case does not fall under the features that Streamlit supports e.g. you need fine-tuned customizations then foundational frameworks like Django or Flask might be what you need.
For further reading, see Streamlit's Getting Started Guide and Cheat Sheet.