building-streamlit-multipage-apps

Structure multi-page Streamlit apps with st.navigation and shared state.

1|1|Updated Nov 9, 2025
One-click install
npx skills add https://github.com/Paldom/databricks-apps-streamlit-vibe-coding-starter --skill building-streamlit-multipage-apps-paldom
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: building-streamlit-multipage-apps
Source: https://github.com/Paldom/databricks-apps-streamlit-vibe-coding-starter/tree/main/.agents/skills/developing-with-streamlit/skills/building-streamlit-multipage-apps
Command: npx skills add https://github.com/Paldom/databricks-apps-streamlit-vibe-coding-starter --skill building-streamlit-multipage-apps-paldom

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a clear structure and navigation system for building Streamlit applications that consist of multiple distinct pages, ensuring a cohesive user experience.

Core Features & Use Cases

  • Multi-page App Structure: Organizes your Streamlit app into multiple Python files for better modularity.
  • Navigation Management: Implements both top navigation and sidebar navigation using st.navigation.
  • State Management: Facilitates sharing global state across different pages and managing page-specific state.
  • Conditional Page Display: Allows for dynamic rendering of pages based on user roles or application state.
  • Use Case: Develop a complex analytics dashboard with separate pages for overview, detailed reports, user management, and settings, all accessible through a clean, intuitive navigation menu.

Quick Start

Organize your Streamlit app into multiple pages by creating an app_pages/ directory and defining navigation in your main streamlit_app.py file.

Frequently Asked Questions about building-streamlit-multipage-apps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a multi-page Streamlit app with navigation?▼

Structure a multi-page Streamlit app by organizing code into distinct page modules within an `app_pages/` directory and managing navigation through `st.navigation` in your main `streamlit_app.py` file. This approach ensures a cohesive, scalable application architecture.

Can I share global state across multiple pages in Streamlit?▼

Yes, you can share global state across multiple pages in Streamlit. This Skill facilitates both sharing global state across different pages and managing page-specific state to maintain data continuity throughout the user experience.

Does Streamlit support conditional page display based on user roles?▼

Yes, Streamlit supports conditional page display. You can dynamically render pages based on user roles or application state, allowing for role-based access control and tailored navigation menus within your multi-page application.

What is the best way to organize a complex Streamlit analytics dashboard?▼

The best way to organize a complex Streamlit analytics dashboard is using a multi-page app structure. Separate your app into distinct Python files for overview, detailed reports, and settings, utilizing `st.navigation` for intuitive top and sidebar navigation.

How does `st.navigation` work for managing top and sidebar navigation?▼

`st.navigation` works by allowing you to define and manage both top navigation and sidebar navigation menus dynamically. It routes users between distinct page modules, ensuring seamless transitions and a cohesive user experience across the application.