building-streamlit-multipage-apps

Organize Streamlit projects into modular multi-page apps with st.navigation.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/n-elia/barbarapp --skill building-streamlit-multipage-apps
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: building-streamlit-multipage-apps
Source: https://github.com/n-elia/barbarapp/tree/main/.skills/developing-with-streamlit/skills/building-streamlit-multipage-apps
Command: npx skills add https://github.com/n-elia/barbarapp --skill building-streamlit-multipage-apps

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps developers organize Streamlit projects into modular, multi-page applications with coherent navigation and shared state.

Core Features & Use Cases

  • Structured navigation: Use top or sidebar navigation to manage multiple pages in a Streamlit app.
  • Global state sharing: Centralized initialization of shared state across pages for consistency.
  • Modular pages: Place page definitions under app_pages/ and wire them with a main runner (streamlit_app.py).

Quick Start

Set up a basic multi-page app by organizing pages under app_pages/ and creating a main module (streamlit_app.py) that initializes state and defines navigation. Then run the app with the command: streamlit run streamlit_app.py.

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

To build a multi-page Streamlit app, organize page definitions under a dedicated app_pages/ directory and create a main entry script that initializes shared state and defines navigation using st.navigation. Run the app with streamlit run streamlit_app.py.

What is the best way to share global state across multiple pages in Streamlit?

The best way to share global state across Streamlit pages is to centralize state initialization in your main runner script. This ensures all modular pages under app_pages/ access consistent shared data through the established st.navigation flow.

Does Streamlit support sidebar and top menu navigation for multi-page apps?

Yes, Streamlit supports both sidebar and top menu navigation for multi-page apps. This Skill structures your project to use st.navigation, allowing you to manage multiple modular pages through either a top or sidebar menu layout.

How do I structure a Streamlit project for modular app_pages?

Structure a Streamlit project for modular app_pages by creating a dedicated app_pages/ directory for individual page modules and a main streamlit_app.py script. The main script wires the pages together using a page registry and st.navigation.

When should I use st.navigation instead of basic Streamlit page routing?

You should use st.navigation instead of basic routing when your Streamlit app requires structured navigation, a centralized page registry, or shared global state initialization across multiple modular pages to maintain consistency.