Hi Guys,
I have to say that I am impressed by the python module you have developed. It is so easy to set up an app, so thanks for that and keep up the good work! It took me a few hours and less than 200 lines to create an simple app, which would take me days with for instance Dash. Especially the magic functions work amazing and is a big plus to other python modules for web development. In this post I would like to share some ideas for further development.
The plans look good and well thought out. However, as development of Streamlit continuous it’s scope will as well. In the list below I propose the following functionalities as a must and in the next paragraphs I’ve explained each functionality :
- Multipage apps, customizing visuals and allowing more interactivity in app;
- Database synchronization and automatic caching;
- Allowing logged in users only, revisions and allowing the control apps by other users.
Multipage apps, customizing visuals and allowing more interactivity in app
Very basic functionality are allowed in Streamlit which is fine at this moment. However, creating larger apps with multiple pages is a must, good to see that it is right on the development list. Customizing visuals is needed for everyone, not only page metadata. Changing the complete appearance of the app can be very useful, especially a logo and a top bar with a title should be in the mix. However changing the complete appearance of the app must not be a high priority, just facilitate it to start with. Last but not least, interactivity in apps should be able facilitated. For instance, changing a value in table should be automatically be changed in the plot of the table or selecting a cell in a table and highlighting the point in the graph should be basics. More advanced things (i.e. a scatter plot colored by type and changing the type) should be facilitated by Streamlit, but it should not be a basic functionality.
Database synchronization and automatic caching
Currently everything is done in memory or cache, creating a link to a database can be very useful (and faster with large amounts of data). Just facilitate one type of database and make sure the functionality is standardly turned off. Then caching; currently the programmer has to think to cache or not to cache and I think the should be done automatically.
Allowing logged in users only, revisions and allowing the control apps by other users
Making Streamlit a platform is in my opinion much more powerful for business applications. To clarify, this should most definitely not be the standard setting, but it should be able to be facilitated. ISO certified companies will employers to use verified apps and it is possible for Streamlit to facilitate this process.
Python modules like this have a huge potential and the way Streamlit is allowing programmers to develop apps is spot on. So keep up the good work and keep the focus on easy to program and understandable app development.
Those are just ideas that came up while testing Streamlit, feel free to do whatever you want with it. Some ideas might all ready be under development You have an user extra for sure, I am exited about this module and will use it from now on!
Cheers from the Netherlands,
Bart