The next frontier for Streamlit

Our feature roadmap for 2023 and beyond

The next frontier for Streamlit

Dear Python developers and wonderful Streamlit community, ❤️

We come bearing exciting news about the future of Streamlit—amazing new superpowers, mind-bending new use cases, and powerful new technologies.

But first, let’s take a look at the last year.

In October 2021, we hit a big milestone and launched Streamlit 1.0. Then a few months later we announced we’d be growing our “baby” with new parents. Yup. If you missed the news—six months ago we joined Snowflake. Snowflake’s commitment to Streamlit and open source is deep, and it’s giving us even more support to build the Streamlit library and the community platforms for years to come. Yay!

So, what’s next?

We’re thinking bigger than ever, looking far into the future, and asking ourselves, “What will Streamlit be when it grows up?” In short, we want to see Streamlit become the essential UI layer for Python. We want to take our amazing dev experience and turn it up to 11—taking your daily pain points and turning them into magical moments. And we want these new superpowers to benefit the entire Python community—regardless of skill level, application domain, deployment platform, or ability to pay.

Without further ado, here are our plans for next year and beyond:

📀 The data trio: st.connection, st.dataframe, and st.database

We want to make the path from data to app as frictionless as possible. st.connection will let you connect to external databases and APIs with a single line of code. st.database will launch a small database alongside every Streamlit app, so you can permanently store data without any setup. Andst.dataframe will get a number of improvements—from filtering to sorting, editability, showing images, and much more.

🕹 Interactive everything: charts, tables, maps, and more!

One of the most upvoted feature requests is to make output elements interactive. Click on a chart datapoint, a map location, or a dataframe row, and the Python script will catch that event on the Python side and update your app. This allows extremely cool new use cases, e.g., showing the details for a selected dataframe row or running a prediction on some data selected in a chart.

🎨 Visual customization ++

Our focus has always been on making your app as beautiful out-of-the-box as possible. But if you want to customize it, the current options are limiting. Grid layout, more options for colors, logo positioning, and better themes are just some of the options we’re looking at. But we’re also wondering if we can go beyond that and better integrate with CSS or offer other ways to manipulate styling. Stay tuned!

🧩 Custom components v2

Today, you can extend Streamlit by building custom components, but this requires advanced JavaScript skills. Plus, it’s time-consuming (even for experts). We want to crack open this box to rethink how we’re doing extensibility, to make it easier to do more with less. Components should be able to interact with more elements in apps, it should be incredibly easy to publish Python- or HTML-only components, and it should be effortless to discover and use great community-built components.

🧠 ML is amazing in Streamlit

It feels like every day there is a new, amazing breakthrough in ML and AI. The boundaries of what’s possible are being pushed—and we want to push alongside it. We want to make it easier to connect to and work with models and pipelines, integrate with the machine learning tools you love, and create the visualization and widgets you need to show off your work.

🐞 Debugging is gosh darn delightful

Building a Streamlit app is pretty delightful, so we want to make debugging your code just as frictionless. We’re going back to the mat to think about what it means for you as a developer—including a better in-app display of exceptions and logs, built-in memory and runtime profilers, and improvements to how Streamlit works in the terminal and in your favorite editor.

🎈 Streamlit Community Cloud becomes a hub for community discovery

A huge part of developing Streamlit apps is sharing them with other developers for feedback, being inspired by the work of others in the community, and finding app examples and code snippets to use. Streamlit Community Cloud is (and will continue to be!) a free platform for sharing, but we see the potential for so much more. The potential to offer a true hub for you and everyone in the community. We want to continue to remove all barriers to easy development, sharing, and discovery—helping you to get started coding directly on the cloud, show off your work to a broader audience, save inspiring and useful bits of code, encounter trending and relevant apps, meet collaborators, and uncover amazing community-created components.

λ Towards stateless Streamlit…

We’re investigating how to expand the ways Streamlit can be hosted, including implementing a stateless model so it works well in a serverless computing environment. This is part of a broader effort to make it easy for you to run Streamlit on any infrastructure and to rethink how it runs—to open new possibilities for sharing, state, compute, and more.

🏁 Wrapping up

We want to make working in Streamlit your daily source of joy. What issues have we missed? What new features do we need to develop? Please come to the forum and tell us!

We hope you’ll keep sharing your apps, components, videos, and blog posts with us. Your work is an incredible source of inspiration, and it makes us want to build even more amazing things with you in the future. Thank you. 🙏

Love,

Amanda, Adrien, Thiago, Johannes, TC, and everyone at Streamlit. ❤️

P.S.: Streamlit in Snowflake is coming soon! ❄️ See a little preview here.

P.P.S.: Want to help with Streamlit full-time? We’re hiring!


Forward-Looking Statements

This post contains express and implied forwarding-looking statements, which are subject to a number of risks, uncertainties and assumptions, including those described under the heading “Risk Factors” in quarterly and annual reports that Snowflake files with the Securities and Exchange Commission. In light of these risks, uncertainties, and assumptions, actual results could differ materially and adversely from those anticipated or implied in the forward-looking statements. As a result, you should not rely on any forwarding-looking statements as predictions of future events.

© 2022 Snowflake Inc. All rights reserved. Snowflake, the Snowflake logo, and all other Snowflake product, feature and service names mentioned herein are registered trademarks or trademarks of Snowflake Inc. in the United States and other countries. All other brand names or logos mentioned or used herein are for identification purposes only and may be the trademarks of their respective holder(s). Snowflake may not be associated with, or be sponsored or endorsed by, any such holder(s).

Share this post

Comments

Continue the conversation in our forums →

Also in Product...

View even more →