Developing with Streamlit
A collection of skills for building production-grade Streamlit apps. Each skill focuses on a specific aspect of Streamlit development.
When to activate
Activate these skills when:
-
Creating new Streamlit apps from scratch
-
Adding features to existing apps
-
Debugging performance issues
-
Improving app design and UX
-
Setting up project structure and environments
-
Connecting to data sources like Snowflake
Quick routing
Performance issues or slow apps? → optimizing-streamlit-performance
Building a new UI? → choosing-streamlit-selection-widgets
- using-streamlit-layouts
Building a dashboard? → building-streamlit-dashboards
- displaying-streamlit-data
Making it look good? → improving-streamlit-design
Formatting text with markdown? → using-streamlit-markdown
Multi-page architecture? → building-streamlit-multipage-apps
Customizing appearance or creating a custom theme? → creating-streamlit-themes
Setting up a project? → setting-up-streamlit-environment
App getting complex? → organizing-streamlit-code
Connecting to Snowflake? → connecting-streamlit-to-snowflake
Building a chatbot or AI assistant? → building-streamlit-chat-ui
Building your own custom component? → building-streamlit-custom-components-v2
Need features not in core Streamlit? → using-streamlit-custom-components
Using the Streamlit CLI? → using-streamlit-cli
State management and session state? → using-streamlit-session-state
Skill map
Skill Covers
building-streamlit-chat-ui Chat interfaces, streaming responses, message history
building-streamlit-dashboards KPI cards, metrics, dashboard layouts
building-streamlit-multipage-apps Page structure, navigation, shared state
building-streamlit-custom-components-v2 Streamlit Custom Components v2 (inline and template-based packaged), bidirectional state/trigger callbacks, bundling, theme CSS variables
choosing-streamlit-selection-widgets Selectbox vs radio vs segmented control vs pills vs multiselect
connecting-streamlit-to-snowflake st.connection, query caching, credentials
creating-streamlit-themes Theme configuration, colors, fonts, light/dark modes, professional brand alignment, CSS avoidance
displaying-streamlit-data Dataframes, column config, charts
improving-streamlit-design Icons, badges, colored text, visual polish
optimizing-streamlit-performance Caching, fragments, forms, static vs dynamic widgets
organizing-streamlit-code When to split into modules, separating UI from logic
setting-up-streamlit-environment Python environment, dependency management
using-streamlit-custom-components Third-party components from the community
using-streamlit-cli CLI commands, running apps
using-streamlit-layouts Sidebar, columns, containers, tabs, expanders, dialogs, alignment, spacing
using-streamlit-markdown Colored text, badges, icons, LaTeX, and all markdown features
using-streamlit-session-state Session state, widget keys, callbacks, state persistence
Resources
- Streamlit documentation