Our team is considering using Streamlit to build an internal analytics dashboard. The plan is to connect to our Firestore database, perform complicated queries, read/write data, make visualizations, do some statistical analyses, and allow all team members to access this. I used Streamlit sometime around last year, and as far as I remember, there were some limitations with regards to performance and concurrent usage. I’m not sure how much things have changed now
The prevalent use case for Streamlit appears to be for building quick ML prototypes with static csv files. Since that’s not exactly our plan, I’m curious to learn if anyone else in the community has used Streamlit to connect to other databases, track internal metrics, customer journeys, etc.
If so, what things would you suggest we keep in mind before we start building this, and what limitations should we be aware of?
The reason we’re considering using Streamlit for this is because it’s fast and easy to set up; We’re a small dev team at a small startup so dev speed is important; Google Analytics is helpful but only in a limited scope; non-tech team members can also use it for analyses.
I’ve set up a couple streamlit dashboards that get their data from databases. I host the dashboards inside JupyterHub using ContainDS Dashboards. Works really well and never have had a problem with concurrent users. Perhaps @danlester can advise a bit on the concurrency aspect?
Further I would advice to cache the read/GET operations on the database/API where possible as this can slow your dashboard down. Don’t have a lot of experience with costumer journey’s, so perhaps someone else can share their experience, if any.
As you point out the development with Streamlit is very fast and you can have a proof of concept within a few hours. So you could quickly check if you are happy with the performance and how the other items you mentioned would work in a streamlit dashboard .
I remember a couple of bugs a while ago about concurrent users, but I’m sure things have improved since then.
In general, I agree Streamlit could be great for an internal dashboard that you want to develop quickly. If you are basically just slicing data based on UI controls, Streamlit will do that well.
In any case, connecting to the database shouldn’t worry you - if you can do it in Python, then you should be able to bring that into Streamlit code.
For performance, you will certainly need some tricks such as st.cache, and Python in itself isn’t top of the list for speed - but it should be good enough for an internal analytics dashboard.
But I would also love to hear from anyone who’s used it exactly for this kind of purpose!
I hope those examples were helpful. Since you stated your looking to build dashboards with your team for a business role, the coming Streamlit for Teams might be something that’s useful for you.
It’s currently in closed beta and the plan is to launch it this year. But if you are looking to get updates you can sign up here: For teams • Streamlit
or if your looking for more detailed info now, feel free to email me and we can chat about your specific use cases! marisa@streamlit.io
there’s also an article on the Streamlit blog about connecting to a Firstore database, maybe that’s helpful for you, since you mentioned you have a Firstore database: Streamlit ❤️ Firestore
@mali13 Thank you for creating the awesome tool of streamlit analytics. I do get an error when viewing my analytics page on the latest version of streamlit (I think 84 or 85). It shows the features that recently came out of beta an an error. Is this a known issue?
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.