How does your team use Streamlit?

We know that building a great app is only half of the equation. You also want to deploy and share your app with others. We want Streamlit’s deployment workflow to be as elegant and awesome as its app-building workflow. That’s why we’re creating Streamlit for Teams: a single-click deployment solution for Streamlit apps with built-in enterprise-grade features like auth, logging, and auto-scaling. The first version of this will be rolled out for free to the community in a few months (and we’re expanding the beta soon!).

We’re also thinking beyond deployment to how to better manage your apps and collaborate with your colleagues — and we’d love to hear how you are thinking about Streamlit in your company:

  • What are your use cases for sharing apps?
  • How are you sharing apps today?
  • Who are you sharing them with? Are there different groups of people that should have different permissions?
  • How would you ideally like sharing, management, and collaboration to work?
  • Are there other tools you use that you’d like to be integrated?
  • Do you use a VCS (like Git)? Which one? Do you have a monorepo with multiple Streamlit apps?

Thank you for sharing your ideas and we will share more information about the beta soon!

If you’re looking to deploy today, here are some great resources from the community on deploying on AWS, GCP, Heroku, and Azure.

HI @thiago,

My use case of sharing apps is that I want users to be able to run them without them having any technical knowledge. At the same time, the apps should be run locally or on a private server.

Currently sharing the apps using Pyinstaller, see link. It would be nice to have a more elegant solution or some more documentation for this.

I am sharing them with other departments within the company. In the future I can see them being distributed to clients as well. One major advantage that I see for Streamlit is that it is easy to send different versions back and forth.

For me collaboration using Git works fine. In that sense I treat it like a regular Python project. One feature that would be nice is if management or clients could give feedback directly in the Streamlit app.

I am curious what the Streamlit team have come up with Streamlit for Teams!

We have a variety of streamlit apps, all running on a GCP virtual instance. We use an NGINX reverse proxy to terminate https and host four different streamlit instances on the one server - this seems to be the most that can reasonably run on a free tier server.

We use NGINX basic auth, and then username and password fields within a streamlit app to control access.

We are currently running scripts to provide:

A fairly basic CR(ud) database (see the CRUD discussion thread for a link to our demo database)
A script that allows a CSV to be uploaded and returns a series of specialist graphs via matplotlib
A script that takes a series of patient referrals and plots them on a map of the country to provide geographical distribution data of referrals, using st.map() and a postcode lookup database.
A live calculator that we use for the trainees giving drug doses and fluid volumes for different sizes of patient.

For the database and drug dosing, we use NGINX source ip filtering to restrict access to our institutional network only. For the database, we find that the data entry works surprisingly well on mobile browsers.

We use fossil as a version control system for the source code - this is also hosted on the same server and allows easy updating of the code from anywhere.

The only issue that we have with this is the moderate background idle CPU use of the streamlit app - with 4 instances running, we are essentially maxing out the (free tier) CPU on the virtual GCP instance, but responsiveness with sensible nice settings remains excellent.

At the moment, we don’t actually need any changes from a team distribution perspective!