# The Streamlit Roadmap: Big Plans for 2020!

**URL:** <https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054>\
**Category:** Official Announcements\
**Tags:** cache\
**Created:** [February 27, 2020, 7:13pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054 "2020-02-27T19:13:12Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adrien\_Treuille](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/adrien_treuille/32/8_2.png) [@Adrien\_Treuille](https://discuss.streamlit.io/u/Adrien_Treuille)\
**Post date:** [February 27, 2020, 7:13pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/1 "2020-02-27T19:13:12Z")

</div>

**We created Streamlit to give the Python data community a new superpower: the ability to create beautiful apps as easily as writing Python scripts.** [We launched](https://towardsdatascience.com/coding-ml-tools-like-you-code-ml-models-ddba3357eace) a minimal version of Streamlit in October with only basic output and interaction primitives. Despite these limitations, the response has been overwhelming: almost 7,000 Github stars and 13,000 monthly active users in less than four months! Most exciting has been to see the emergence of an intricate archipelago of [Streamlit apps](https://www.streamlit.io/gallery), from simple, fun [demos of open-source projects](https://gist.github.com/ines/b320cb8441b590eedf19137599ce6685), to [community-spanning infrastructure](http://awesome-streamlit.org/) and complex internal tooling at major companies used in production by hundreds of employees.

Inspired by your energy and creativity, **we’re devoting 2020 to giving the Streamlit community a vastly expanded new set of superpowers**. Our goal is to make Streamlit not only the most productive (and fun!) app building experience in the Python ecosystem, but also the most powerful by adding:

- Improved **caching** that’s easier to use and understand
- A **custom component** system to extend Streamlit’s capabilities in the browser
- **Layout** primitives to customize layout and other visual elements
- User-programmable **state** , especially for multi-page apps
- Enabling you to easily **deploy** apps from Streamlit (closed source)

A detailed [feature list is on GitHub](https://github.com/streamlit/streamlit/wiki/Roadmap), and it’s really just a distillation of the ideas coming from Streamlit’s amazingly smart and creative community. Please help us understand what to build by [submitting issues](https://github.com/streamlit/streamlit/issues/new/choose) and [pull requests](https://github.com/streamlit/streamlit/compare), and by sharing your thoughts in the comments below.

## Caching

Caching enables you to reuse data and computation in your apps, allowing scripts to run quickly by saving the results of expensive functions. We recently released [hash\_funcs](https://docs.streamlit.io/advanced_caching.html#the-hash-funcs-parameter) so that you can set your own hash function for specific data types like TensorFlow sessions or live database connections. And we added more documentation on [basic](https://docs.streamlit.io/caching.html) and [advanced caching](https://docs.streamlit.io/advanced_caching.html#advanced-caching). Coming up are even more improvements to caching for other function types and some added magic to make everything around caching even more straightforward. [Please share thoughts here](https://discuss.streamlit.io/t/help-us-stress-test-streamlit-s-latest-caching-update/1944) about how you’d like to see caching work.

## Custom Components

The Streamlit custom components system will give you the ability to write arbitrary React or Javascript code and insert it into your app. This opens the door for a lot of possibilities for custom solutions to visualization, interactivity with chart/maps/tables, and other unique needs of your app. [Please share thoughts here](https://github.com/streamlit/streamlit/issues/327) about how you’d like to see custom components work.

## Customizable Layout

Our community has already created [some great style and layout](https://pmbaumgartner.github.io/streamlitopedia/front/introduction.html) resources (and we have **[no plans](https://discuss.streamlit.io/t/are-you-using-html-in-markdown-tell-us-why/96/69) to deprecate html, unsafe\_allow\_html=True!**), but Streamlit in its current form doesn’t make layout nearly as easy as we think it should be. We’ll be adding style and customization options to Streamlit, and also building new layout primitives: [horizontal](https://github.com/streamlit/streamlit/issues/241), [grid](https://github.com/streamlit/streamlit/issues/309), scroll views, and more. This is a tricky one to get right because layouts make up some of the most complex parts of display logic like CSS, not to mention it’s really easy to make these layouts look ugly. What are your thoughts? What are your favorite layout systems in other languages? [Please share thoughts here](https://discuss.streamlit.io/t/customizable-layout-for-streamlit/2053) about how you’d like to see layout work.

## Programmable State

Right now, getting a Streamlit app to store internal state, like information a user entered in a form, is simply too tricky. There are some [workarounds](https://gist.github.com/tvst/036da038ab3e999a64497f42de966a92) for [session state](https://gist.github.com/tvst/0899a5cdc9f0467f7622750896e6bd7f), but we want to give you a baked-in and elegant version of programmable state so you can build apps with sequential logic, apps with multiple pages, apps that incrementally ask users for input, and so on. [Please share thoughts here](https://discuss.streamlit.io/t/programmable-state-for-streamlit/2052) about the use cases you’d like to see supported.

## Deploy

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](https://www.streamlit.io/for-teams) soon, apologies if we haven’t gotten back to you yet!).

For now, you can check out some great community resources about deploying on [AWS](https://mlwhiz.com/blog/2020/02/22/streamlitec2/), [GCP](https://blog.jcharistech.com/2020/01/14/how-to-deploy-streamlit-apps-to-google-cloud-platformgcp-app-engine/), [Heroku](https://towardsdatascience.com/quickly-build-and-deploy-an-application-with-streamlit-988ca08c7e83), and [Azure](https://towardsdatascience.com/deploying-a-streamlit-web-app-with-azure-app-service-1f09a2159743), and you help us by [providing feedback](https://discuss.streamlit.io/t/how-does-your-team-use-streamlit/2051) on how you’d like to use Streamlit in your company.

We’ve been tinkering with and refining these features over at Streamlit HQ. We’re so excited to share these new superpowers and iterate on them with the community!

Thank you for your part in the Streamlit journey and here’s to a great 2020 ❤

## Resources

[Roadmap  
 ](https://github.com/streamlit/streamlit/wiki/Roadmap)[Documentation  
 ](https://docs.streamlit.io/)[GitHub  
 ](https://github.com/streamlit/streamlit)[Changelog](https://docs.streamlit.io/changelog.html)

---

<div class="post-metadata">

**Author:** ![Adrien\_Treuille](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/adrien_treuille/32/8_2.png) [@Adrien\_Treuille](https://discuss.streamlit.io/u/Adrien_Treuille)\
**Post date:** [February 27, 2020, 7:14pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/2 "2020-02-27T19:14:46Z")

</div>



---

<div class="post-metadata">

**Author:** ![ogahozy](https://avatars.discourse-cdn.com/v4/letter/o/59ef9b/32.png) [@ogahozy](https://discuss.streamlit.io/u/ogahozy)\
**Post date:** [April 6, 2020, 3:00pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/3 "2020-04-06T15:00:45Z")

</div>

this is great

---

<div class="post-metadata">

**Author:** ![mariusgarbowski](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/mariusgarbowski/32/2450_2.png) [@mariusgarbowski](https://discuss.streamlit.io/u/mariusgarbowski)\
**Post date:** [April 15, 2020, 11:58am UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/4 "2020-04-15T11:58:05Z")

</div>

This sounds great! Do you hava any fixed time plan/dead lines or priorities (e.g. Layouts vs. Caching)?

Best,  
Marius

---

<div class="post-metadata">

**Author:** ![tc1](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/tc1/32/70_2.png) [@tc1](https://discuss.streamlit.io/u/tc1)\
**Post date:** [April 17, 2020, 5:10pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/5 "2020-04-17T17:10:04Z")

</div>

Hey @mariusgarbowski and welcome to the community,

Our two next big pushes are going to be around Custom Components [our new working name for Plugins] and deployment! We should have more info coming soon for both ❤

---

<div class="post-metadata">

**Author:** ![Gopinathts](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/gopinathts/32/2369_2.png) [@Gopinathts](https://discuss.streamlit.io/u/Gopinathts)\
**Post date:** [June 22, 2020, 5:41am UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/6 "2020-06-22T05:41:59Z")

</div>

Hi,

Great…! , really look forward for all the new stuff @ streamlit.  
Though my idea mentioned below is very vague, I feel there is a strong need to use the ML concepts in component coding or language specifics. What I mean is that there should be a ML engine for each session that can learn and improve the aspect of component coding and development.

---

<div class="post-metadata">

**Author:** ![cedwards](https://avatars.discourse-cdn.com/v4/letter/c/d6d6ee/32.png) [@cedwards](https://discuss.streamlit.io/u/cedwards)\
**Post date:** [January 2, 2021, 4:04am UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/7 "2021-01-02T04:04:09Z")

</div>

This priorities seem exciting, especially cache and multi-page functionality. One area I don’t see prioritized is adding functionality / ease of use for geospatial mapping. Happy new year

---

<div class="post-metadata">

**Author:** ![patylu001](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/patylu001/32/5178_2.png) [@patylu001](https://discuss.streamlit.io/u/patylu001)\
**Post date:** [January 14, 2021, 2:44am UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/8 "2021-01-14T02:44:30Z")

</div>

Sounds great! I just discovered streamlit and I think is exactly what I needed to create something really fast and nice… great job!

---

<div class="post-metadata">

**Author:** ![zsz00](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/zsz00/32/6158_2.png) [@zsz00](https://discuss.streamlit.io/u/zsz00)\
**Post date:** [March 1, 2021, 5:30am UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/9 "2021-03-01T05:30:36Z")

</div>

where is The Streamlit Roadmap: Big Plans for 2021 ??

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/randyzwitch/32/58772_2.png) [@randyzwitch](https://discuss.streamlit.io/u/randyzwitch)\
**Post date:** [March 3, 2021, 5:25pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/10 "2021-03-03T17:25:31Z")

</div>



---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/thiago/32/22_2.png) [@thiago](https://discuss.streamlit.io/u/thiago)\
**Post date:** [March 18, 2021, 9:47pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/11 "2021-03-18T21:47:15Z")

</div>

Great point! If you’re looking for a list of larger projects with their statuses, you can find it [in our Github wiki](https://github.com/streamlit/streamlit/wiki/Roadmap).

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea2.discourse-cdn.com/streamlit/user_avatar/discuss.streamlit.io/randyzwitch/32/58772_2.png) [@randyzwitch](https://discuss.streamlit.io/u/randyzwitch)\
**Post date:** [July 14, 2021, 6:30pm UTC](https://discuss.streamlit.io/t/the-streamlit-roadmap-big-plans-for-2020/2054/12 "2021-07-14T18:30:56Z")

</div>


