building-streamlit-multipage-apps

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

Updated Apr 4, 2026
One-click install
npx skills add https://github.com/mberetvas/blauw_zwart_pipeline --skill building-streamlit-multipage-apps-mberetvas
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: building-streamlit-multipage-apps
Source: https://github.com/mberetvas/blauw_zwart_pipeline/tree/main/.agents/skills/developing-with-streamlit/skills/building-streamlit-multipage-apps
Command: npx skills add https://github.com/mberetvas/blauw_zwart_pipeline --skill building-streamlit-multipage-apps-mberetvas

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Organizes Streamlit projects into a clean, scalable structure that enables multi-page apps with centralized navigation and shared state.

Core Features & Use Cases

  • Multi-page navigation with a main entry point (streamlit_app.py) and per-page modules inside app_pages/
  • Shared global state management across pages to maintain user context and preferences
  • Clear separation of concerns for page components (home.py, analytics.py, settings.py) and easy extension to add more pages

Quick Start

Create a multipage Streamlit app by adding a streamlit_app.py as the main module and an app_pages/ directory with page modules (for example, home.py, analytics.py, and settings.py), then configure a navigation flow using st.navigation to switch between pages and initialize shared state.

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 create a multi-page Streamlit app with centralized navigation?

Setting up a multi-page Streamlit app requires a main entry point file and a directory containing per-page modules. You configure the app using st.navigation and st.Page to wire pages and switch between them.

How does state management work across multiple pages in a Streamlit app?

State management across pages uses shared global state initialized in the main entry point. This maintains consistent user context and preferences as users navigate between different page modules.

What is the recommended project structure for a scalable Streamlit multipage app?

A scalable Streamlit multipage app uses a main entry point file alongside an app_pages directory containing separate modules like home.py, analytics.py, and settings.py, ensuring clear separation of concerns.

Can I use st.navigation to build dashboards and admin panels in Streamlit?

Yes, st.navigation is designed for building dashboards and admin panels in Streamlit. It provides a scalable page architecture and consistent user experience by wiring together per-page modules through a central entry point.

How do I add a new page to an existing Streamlit multipage app?

To add a new page to a Streamlit multipage app, create a new page module inside the app_pages directory and register it in the main entry point using st.Page and st.navigation to include it in the navigation flow.