building-streamlit-multipage-apps

Organize Streamlit projects into navigable multi-page apps with shared state.

Updated Feb 19, 2026
One-click install
npx skills add https://github.com/guihousun/NTL-GPT-Clone --skill building-streamlit-multipage-apps-guihousun
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: building-streamlit-multipage-apps
Source: https://github.com/guihousun/NTL-GPT-Clone/tree/main/skills/developing-with-streamlit/skills/building-streamlit-multipage-apps
Command: npx skills add https://github.com/guihousun/NTL-GPT-Clone --skill building-streamlit-multipage-apps-guihousun

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Multi-page Streamlit apps are hard to organize and maintain; this Skill provides structure for scalable navigation and shared state.

Core Features & Use Cases

  • Structured multi-page navigation using a dedicated app_pages directory
  • Global and page-specific state management in a single entry module
  • Guidance for top navigation, sidebar layouts, and conditional pages

Quick Start

Create an app_pages directory with your pages, wire navigation in streamlit_app.py, and run the app.

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 Streamlit multipage app with shared state?

Build a Streamlit multipage app by creating a dedicated app_pages directory for page modules and wiring navigation through a main entry module to coordinate global and page-specific state.

What is the best way to organize navigation in a Streamlit multipage web app?

Organize Streamlit multipage navigation by placing page modules in an app_pages directory and using the main module to configure top or sidebar layouts for conditional page loading.

Can I use sidebar and top navigation layouts in Streamlit multipage apps?

Yes, Streamlit multipage apps support both top navigation and sidebar layouts, allowing you to configure conditional page loading within 3 to 7 pages using a central entry module.

How do I manage global and page-specific state in a Streamlit web app?

Manage Streamlit state by centralizing global and page-specific variables in a single main entry module, ensuring consistent state synchronization across all modules in the app_pages directory.

Does this Streamlit multipage approach work for apps with conditional page loading?

Yes, this approach supports conditional page loading within Streamlit apps, managing 3 to 7 pages effectively by routing logic through a main module and dedicated app_pages directory.