What I love about streamlit is the ease of creating commonly required widgets:
- text input
- number input
all these are awesome. these allow the Python programmer without any frontend skills to take user input in a nice-looking GUI way.
Streamlit is primarily focused on catering to data science and machine learning apps. Some of these apps require multi-pages and complex state management. I am happy that streamlit is working on that (as per the announcement by @thiago)
Streamlit could also be used to build apps that have nothing to do with data science or machine learning.
Suppose I have a CLI tool that does something, I can use streamlit to build a frontend to it.
streamlit_app.py will be used to build a form to take user input. It’s just a few lines of python code. Once submit is pressed, the actual code will be triggered.
Most common (no dev) users are not comfortable with complex CLI options or configuration files to do the day-to-day jobs.
If one knows how to build a utility or tool as a script or CLI app that automates something, one can easily build a GUI with streamlit and host it on the cloud. Thus the python developer, without knowledge frontend, and worrying about handling requests, can build a powerful GUI to the client, which can run on the browser, without any installation required from the end-user.
Thus users can use the tool from their browsers(as the code runs in the cloud), without having to install lots of deps and go through editing complex config files.
for this generic purpose usage, along with data apps, it will be great if streamlit supports input of custom complex datatypes.
This issue explains what I mean by that Taking more complex user input · Issue #3202 · streamlit/streamlit · GitHub