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.