Hi @jbednar
Here are my few cents and experimences
- The Streamlit approach is not a single file approach only.
- You can do a single file approach and for getting started that is perfect and simple. But as your app grows you can refactor into any structure you would like folders/ file/ modules/packages. You just import whatever your need in your main app.py file.
- So it’s just as Panel or Voila. They are not more suitable in that sense.
- Hotreloading on deeply nested modules is not currently working though. See issue 366
- The Streamlit Workflow is much, much more efficient than a Notebook based.
- You work in an efficient editor
- The iteration cycle of change-run-evaluate is so fast and automated in Streamlit.
- You get (a) quality code file(s) and an app as end result,
- When working together with my colleagues they say after having tried Streamlit that they will never use a Notebook again. It’s so much easier, efficient and productive.
- Streamlit solves all the problems of Notebooks pointed out by Joel Gruss in I don’t like notebooks
- The only reasons for staying in the notebook is the larger community, larger library of widgets and export to pdf functionality.
- If you have other arguments for staying in the notebook please let me know as I cannot see them.
-
The product produced by Streamlit is much nicer than a Notebook.
- You can control the output of your code, markdown and results.
- You don’t have those clonky code cells.
- You don’t spend tons of time googling and trying out how to use nbformatter.
I have not used Panel or Voila. I will try them out soon. But Streamlit is not only for Dashboards and Data Science. Streamlit is actually a very, very efficient way of building high performant, reactive apps in Python using a very simple, intuitive and declarative api.
You can see an example of a multifile app structured into models, services, components/ widgets etc. here
https://github.com/marcskovmadsen/awesome-streamlit. The main app.py file is here https://github.com/MarcSkovMadsen/awesome-streamlit/blob/master/app.py. It produces https://awesome-streamlit.org
